Widget: Maker

You'll find the widget here... https://apps.garmin.com/en-US/apps/f...2-7178a9da1985

Maker is a simple widget 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 (using SmartThings, Garagio, ...)
  • Turn on or turn off a fan or other device (using SmartThings, Wemo, ...)
  • Control a programmable thermostat (using Nest, Honeywell, ...)
  • Change lighting, open/close blinds (using SmartThings, Hue, ...)
  • Text a brief message (using SMS, e-mail, ...)


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

To use this app, you must use Garmin Express or Garmin Connect Mobile to configure your IFTTT secret key. If you don't set these attributes, you will get an error when you try to submit.

Setup

Configure the IFTTT trigger
  • Go to https://ifttt.com, click the Account link (your user profile icon) in the top-right corner of the page.
  • Click My Applets from the top of the page. You should be presented with the list of your applets (assuming you have some).
  • Click New Applet from the top-right of the page. You should be presented with the Applet Maker.
  • Click the +this link
  • Search for WebHooks, and click the WebHooks channel icon from the channel list
  • If you haven't already configured the WebHookschannel, click the connect button.
  • Click the Receive a web request link
  • Enter an Event Name, and click Create Trigger. Note that the name you choose here will be the trigger name in the Maker app (see step 5 below).
  • Click the +that link
  • Click the IF Notifications channel icon from the channel list (you could choose any channel; in this example we're generating a message on your iOS device).
  • Click the Send a notification link
  • Click inside the Notification box.
  • Set the Notification text as you wish, being sure to use the {{EventName}}, {{Value1}}, {{Value2}} and {{Value3}} special values as necessary.
  • Click the Create Action button
  • Edit the Recipe Title as you see fit.
  • Click the Create Recipe button


Configure the Maker app
  • Go to https://ifttt.com/channels/maker, and click the settings icon near the top-right corner, below your profile icon.
  • Note the URL shown in the Account Info section. Select the secret key part of the url and copy it to the clipboard (CTRL+C). Note that the secret key is the alphanumeric bit following the last slash in the URL. e.g., if URL is https://maker.ifttt.com/use/AnaweiNO91NWDUIna, then AnaweiNO91NWDUIna is the secret key.
  • In Garmin Express, click the ellipsis icon next to the Maker app icon to configure the app
  • Paste the key into the IFTTT secret key field (CTRL+V)
  • Set the Name field to the Event Name you entered in the IFTTT trigger configuration (see step 7 above)
  • Set the other fields for the first trigger as you see fit. See notes below about special trigger values
  • Click the Save button
  • Eject the device, and start the Maker widget. The procedure to do this depends on device; see your device documentation for details.
  • Tap the screen or press the enter key to trigger the event being sent to the IFTTT service
  • If you have multiple events enabled in the app settings, you can use the menu button to select from the list of enabled events.


Special Trigger Values

If you specify a trigger value, the system will gather the appropriate data from the device and send it along with the request. The special values are listed below, along with a brief description of the what they will be replaced with.
  • Altitude will be replaced with the current altitude in meters (e.g., 72)
  • Latitude will be replaced with the current latitude in decimal degrees (e.g., 44.565198)
  • Longitude will be replaced with the current longitude in decimal degrees (e.g., -123.280963)
  • Position will be replaced with the current latitude and longitude in decimal degrees (e.g., 44.565198,-123.280963)
  • Timestamp will be replaced with the current date and time in ISO8601 extended date and time format (e.g., 2016-05-24T23:20:17-0700)
  • Time of Day will be replaced with the current time of day in 24-hour clock mode (e.g., 23:20:17)


Release History:

1.2.0
* Completely revised the UI.
* Added support for up to 8 triggers, selectable via the menu instead of swiping or using the arrow keys.
* Fixed a bug that sometimes resulted in position data not being sent with requests.
* Added support for all devices that support Widgets on ConnectIQ 1.2.
* Removed the ability to specify arbitrary strings to be sent with requests. This can be worked around by creating additional triggers in IFTTT.

1.1.4
* Fixed a bug that prevented the progress view from being discarded with a back button press.
* Built with the 1.2.10 SDK.

1.1.2
* Fixed a bug that caused the app to crash when using a last known gps solution.

1.1.1
* Reduced number of triggers to 3 to work around issues with Garmin Express.
* Fixed :location trigger to format values as expected.
* Fixed :location, :altitude, :latitude, and :longitude replacements to only take effect if a recent or decent GPS solution is found.

1.1.0
* Add value replacement so data from the watch can be forwarded to the IFTTT service.

1.0.9
* Add support for two trigger values.

1.0.8
* Initial Revision
  • Former Member
    Former Member over 9 years ago
    Can't get values for :datetime OR :location

    I've made changes to all reported issues.

    To avoid the Garmin Express failure to save settings, I've temporarily reduced the number of triggers to three and I've removed limits on the lengths of the strings you can enter. I expect that I'll limit the Display Name to something short, but the other fields don't really need to be limited.

    I fixed the 500 error when using the :location special value. It is now replaced with a string of the correct format, which avoids the error.

    To avoid sending garbage when using the :latitude, :longitude, :altitude, and :location special values, I've added checks to validate the position data. If the GPS solution is more than 60 seconds old, or it is otherwise not usable (poor quality), the values will not be sent. Right now there is no indication of the GPS signal quality, so I need to add something to the UI for it. I'll also need to add code to check the quality (only for triggers that need it), and prompt to see if you'd rather wait for a better GPS solution before sending.

    Again, these changes are just quick fixes to get it working for those that were having trouble. I'll be improving this as time goes on.

    Travis


    I can't seem to get it working. I've setup the widget Value1 and Value2 as ":datetime" and ":location" (respectively) in the settings. I used Send an SMS for the Action and setup the message as shown bellow (see screenshot) . However, although I get the SMS, it only reads "datetime, location", literaly...I don't get the actual values.

    The event named "{{EventName}}" occurred on the Maker Channel {{Value1}}, {{Value2}}


    Is this a bug or user error? I would love to setup a google location link like on your example.

    Also, although minor...is it possible to center the Maker logo. It's really off-center on the Epix.

    Thanks!
  • Not sure how to get GPS Data

    First time poster so please excuse any non-conformities with forum protocol.
    I love this implementation! Works superbly for triggering WEMO.
    However, I am trying to implement a recipe that posts GPS location to Google Calendar. I am able to get the calendar entry but instead of the location values I end up with ":location".
    I thought it might be due to invalid GPS position, but I use the RUN App and initialise it getting a valid (green) GPS position then quickly go to Maker and send the details. I receive a 200 OK indication when sent.
    Any help in this implementation would be appreciated.
  • Former Member
    Former Member over 9 years ago
    The request is sent but "sending..." remains a long time

    Hello, I'm a happy owner of a forerunner 235,

    I have the IFFT app that you created which works just fine. I have installed the maker widget which makes it even more perfect but I have one little bug :

    When I click on a trigger the request is sent and works, but 9 times out of 10 the "sending..." message remains, even if the request is already sent. And I can't use the home button, it is freezing. It doesn't show the "200 ok", it just leaves the widget after a minute or so.

    Is it a known issue ? Is there a workaround ?

    Thank you in advance and thank you very much for this awesome widget which unleashes our watches :).

    Michaël
  • When I click on a trigger the request is sent and works, but 9 times out of 10 the "sending..." message remains, even if the request is already sent. And I can't use the home button, it is freezing. It doesn't show the "200 ok", it just leaves the widget after a minute or so.


    I found the bug and I have a fix. Pressing the back button should cancel the request and pop the progress screen, but it is only cancelling the request. I need to find a good way to test it (I think disabling wifi and cellular on the phone, but leaving bluetooth on might be sufficient) and then I need to verify the fix. I should be able to post a fix this week.

    Travis
  • I am trying to implement a recipe that posts GPS location to Google Calendar. I am able to get the calendar entry but instead of the location values I end up with ":location".

    You might try deleting the app from your device and installing it again. If you are using the version that supports value replacement, you should get an empty string for :location if the GPS position is not valid.
  • Former Member
    Former Member over 9 years ago
    I found the bug and I have a fix. Pressing the back button should cancel the request and pop the progress screen, but it is only cancelling the request. I need to find a good way to test it (I think disabling wifi and cellular on the phone, but leaving bluetooth on might be sufficient) and then I need to verify the fix. I should be able to post a fix this week.

    Travis


    Thank you for your answer.

    It's not when I push the back button, it happens even if I don't do anything after selecting a trigger.
    I go to the widget, click on one of the 3 trigger, and the "sending..." screen never leaves. It keeps loading for a minute.
    But the trigger works, it's like the widget didn't noticed a response.

    Maybe that is what you found but I wasn't sure you found the same bug :p
  • Former Member
    Former Member over 9 years ago
    One Vote for UI Update

    It would be fewer clicks on average, so it has some advantages.

    This sounds a lot like the UI for the Dialer Widget by azya which is very nice to use in terms of being able to act immediately on the currently- (or last-) selected item and easily select from the others.
    It also features unobtrusive (thanks to color choice) prompts to "press START to make call" and "hold UP to select other" to assist the first time user.
    If you're up for the UI coding challenge, I'd vote for an upgrade. ;)
  • Former Member
    Former Member over 9 years ago
    Keep getting -300 timed out on watch

    Using iPhone 6s

    Trying to use maker event to turn ISmartAlarm on or off. Created the recipes in the the app. Put the names in connect. Have my secret key entered. Any thoughts?
  • What platform is your mobile device (iOS, Android, Windows, ...)? In the recent past, Garmin Connect Mobile on Windows phone didn't support the network proxy functionality to make it possible to do web requests. If you are on Windows Phone, this could be the cause. If you are on iOS and Android, are you able to verify that the bluetooth connection is working and that other apps are able to make web requests?

    Travis
  • Former Member
    Former Member over 9 years ago
    Setting Up to turn on lights

    Ok, so I am fairly lost on how all of this works to activate my lights hooked up to a wink hub. I have do buttons setup and working through IFTTT, but I have no idea how to get any of that process hooked up through this Maker app and development tool. Any and all support would be greatly appreciated. Thanks!