WatchApp: GIFTTT Alpha (Garmin device IFTTT trigger)

https://apps.garmin.com/en-US/apps/04890351-a25c-40ad-afae-f3c6907fe05f

GIFTTT is a simple application that allows Garmin devices to trigger IFTTT events via the IFTTT Maker channel (http://ifttt.com/maker). This may not sound all that interesting, but here are a few things it can allow you to do.

  • Open or close your garage door
  • Turn on or turn off a fan or other device
  • Control a programmable thermostat
  • Change the ambient lighting, open/close blinds
  • Text your wife a pre-written message


Anything you could control with IFTTT, you can control with GIFTTT. For actions may require purchase of additional hardware (to control ambient lighting, you'll need lights that are controllable similar to the Phillips Hue system, or to turn on/off a switch you might need to buy something like a Belkin Wemo Switch).

Instructions:
  • To use this app, you'll need to configure an IFTTT account, and activate the Maker channel (http://ifttt.com).
  • Once you've done this, you'll have to get into the application settings for GIFTTT and set the secret key you were given.
  • You will then need to create an IFTTT recipe to connect the services that you wish to use. For instance, if you wish to send your wife a pre-written text message, you would configure the Maker channel as the 'this' portion of the recipe, and iOS/Android Notification as the 'that'.
  • Now that you have a IFTTT recipe in place, you will need to configure one of the tasks in GIFTTT with the name and values you want to feed to the IFTTT recipe. You can do this from the GIFTTT menu for the task you want to modify.
  • To submit an action, you just have to pull it up on screen it and press enter.


Notes:
  • I don't currently have any logic in place to verify your key is correct and I don't check that you've entered one at all. I plan to fix this in the future.
  • The app currently does nothing to tell you that your device is not connected Garmin Connect Mobile. You will get errors when trying to submit requests, not before. I'd like to fix this so users see a not connected page.
  • The app currently displays a 404 error code. This does not mean that the send didn't work, it just means that the IFTTT server responded with data that couldn't be parsed by the devices JSON parser. I need to figure out how to tell IFTTT to send back JSON data.
  • There is currently no support for adding/deleting actions. You can rename and configure the existing ones, but you can't add or delete them. This will be addressed soon.
  • This is currently a watch-app, but I'd like it to be a widget. As soon as I can figure out how to get the widget to let me use the up/down arrows, I'll switch over. I'm considering adding a widget that has only one action (similar to the existing IFTTT Do channel).
  • The user interface is a little clunky. I'll work to refine it in the future.
  • I'd like to be able to send data from the device in place of the hard-coded value strings. For instance, you could send your current position and speed data to IFTTT.
  • If you have ideas on how to improve this app, please feel free to make requests.


Release History:

0.0.2
* Remove my secret key from the default settings.

0.0.1
* Initial Revision
* Supports 920XT with 4.20 firmware (ConnectIQ 1.1.2)
  • Great idea. This would open up a whole bunch of functionality for me. Would it be possible to add vivoactive support?
  • I need to provide some form user input so I can get the IFTTT secret key, event name, and values into the app properties. The vivoactive doesn't support text input, so it will be some work. As I see it, my options are to write up a custom text picker (ugh) or just wait until Garmin Connect Mobile allows users to change application properties from a mobile device.

    I suppose I could also write a web service to solve the problem... Have the app generate a random number, and display it for the user on the device. User goes to web page, types in that random number and their IFTTT secret key, storing their secret key for a short period. User taps screen on device, device makes request to web service with the random number as a query parameter, and the web service responds with their IFTTT secret key. Seems like a bit of work, but manageable. Still doesn't allow users to modify names/values though.

    Right now my inclination is to just wait until Garmin Connect Mobile comes around.
  • I suppose I could also write a web service to solve the problem... Have the app generate a random number, and display it for the user on the device. User goes to web page, types in that random number and their IFTTT secret key, storing their secret key for a short period. User taps screen on device, device makes request to web service with the random number as a query parameter, and the web service responds with their IFTTT secret key. Seems like a bit of work, but manageable. Still doesn't allow users to modify names/values


    Not sure if this is exact approach Note2watch app uses but sounds a little similar if you want to check it out.
  • This is an interesting development for sure - I have a Fēnix 3 which I hope you'll support in future (and I'm an IFTTT addict) so I'll be following this with interest.
  • I need to provide some form user input so I can get the IFTTT secret key, event name, and values into the app properties. The vivoactive doesn't support text input, so it will be some work. As I see it, my options are to write up a custom text picker (ugh) or just wait until Garmin Connect Mobile allows users to change application properties from a mobile device.

    I suppose I could also write a web service to solve the problem... Have the app generate a random number, and display it for the user on the device. User goes to web page, types in that random number and their IFTTT secret key, storing their secret key for a short period. User taps screen on device, device makes request to web service with the random number as a query parameter, and the web service responds with their IFTTT secret key. Seems like a bit of work, but manageable. Still doesn't allow users to modify names/values though.

    Right now my inclination is to just wait until Garmin Connect Mobile comes around.


    Hmm, guess it's time to learn Monkey C and just build a hard coded one for myself at this point. Been thinking about doing that to work with my smartthings system anyways even before IFTTT announced the maker channel.
  • This is an interesting development for sure - I have a Fēnix 3 which I hope you'll support in future (and I'm an IFTTT addict) so I'll be following this with interest.


    Yes, F3 support, please...
  • Been thinking about doing that to work with my smartthings system anyways even before IFTTT announced the maker channel.

    Yeah, I started looking into writing a SmartThings app a while ago. I can't recall why it wasn't possible at the time, but it wasn't. I think using IFTTT is better simply because of the vast array of input/output options.

    My wife has a vivoactive, so I'm interested in getting this to work. I think I'll probably make a simplified app that uses a web service to get the secret key and user-configurable set of colored inputs (maybe a single-page widget with up to 9 cells, each that makes a different IFTTT request).

    Travis
  • Former Member
    Former Member over 9 years ago
    Support for F3, please!

    This will make F3 a smart watch, finally!
  • I can build for the fenix3 pretty easily, but I can't test it. If you're an IFTTT user and are willing to test a beta version of this app, please let me know.

    Additionally, I'd like some feedback on the user interface. I'm not a UI designer by any stretch of the imagination, but I think there are enhancements that could be made. Perhaps some additional data that could be displayed or just a simpler way to present and prompt for the necessary information.
  • TRAVIS.VITEK has exceeded their stored private messages quota and cannot accept further messages until they clear some space.

    As soon as I get a chance, I will (away from a PC I can call my own for a while)