Tom's Homepage > Articles

2023-06-16: IFTTT as a Push Notification Service


(This article is also available via the short link tomrei.ch/ifttt)

Update

This solution works great for iOS but I ran into some issues with Android. See this updated article for more details on that solution.

The Problem

I use HomeSeer as my Home Automation platform of choice, and I appreciate its combination of powerful features and simplicity. Unfortunately, one thing that it's missing is an integrated way to push notifications. This seems like it would be a simple gap to close given their nice Android and iOS apps, but I digress. The unfortunate truth is that, as of today, the feature isn't there.

To close this gap, I used SMS for many years, utilizing the e-mail-to-SMS gateway of the provider I was on. Both AT&T and Verizon provided this service and it worked pretty well. However, in the last year or so, the Verizon gateway has started to break down, with some messages coming through very delayed (sometimes hours later) while other times completely dropping messages on the floor and not delivering them at all. After dealing with this unpredictability for about a year, I decided there must be a better way...

IFTTT to the Rescue

To be honest, I didn't do a lot of research into a solution (more on that later) before jumping into IFTTT as an attempt at a solution. I first checked to see if IFTTT supports push notification to its app (it does) and then checked to see if there as an API available to trigger an event (there is) along with some kind of custom data so I could pass on some info from HomeSeer on to the notification. Now it was just a matter of putting it all together.

Fortunately, the API supports both GET and POST parameters, which makes things pretty easy to configure with HomeSeer, as kicking off an HTTP GET from a HomeSeer Event is relatively simple. The only pre-configuration left was to sign in and generate the WebHooks key.

Setting up the IFTTT Recipe

To get started, you'll need an IFTTT account. Log in and select the option to create a new Applet. Note that, as of the date of this writing, IFTTT only supports two Applets on the free tier. Once you've created your new applet, there's only two steps (a single 'if' and 'then')...

The trigger ('if' step) should look something like this. You can choose whatever name you like.

The action ('then' step) should look something like this. Note that EventName and Value are passed through the GET parameters and will show up in the notification that gets pushed. You don't need these but it's a good way to allow you to re-use this applet for multiple purposes.

When you're all done, it'll look something like this.

Configuring the HomeSeer

Making a call to the IFTTT applet first requires a generated key that gets used for authentication purposes. You can get that by visiting the documentation here, then clicking on Documentation. At the top you'll see your key, followed by documentation on how to use the service.

Once you have your key, you can plug into HomeSeer. To push a notification, add a new "THEN" inside an event, select the Run a script or Script Command option, then have it execute the following command:

&hs.URLAction("https://maker.ifttt.com/trigger/paste-your-trigger-name-here/with/key/paste-your-key-here?value1=Custom_Notification_Message", "GET", "", "")

Configuring the Mobile Clients

I've had success configuring both iOS and Android with IFTTT push notifications. The process is a little different for both.

iOS:
Configuring iOS is dead simple. Install the IFTTT app, log in, and make sure notifications are enabled. That's basically all that was involved, in my experience.

Android:
Start by installing the IFTTT app, logging in, and making sure that notifications are enabled. Verify everything is working by trigging an event in HomeSeer. Next, in the IFTTT app, tap Profile at the bottom, then select Sync Options, then Run Location, Android Battery, and WiFi connections faster . This will put a persistent notification in your notification tray, but you can hide this using Android settings. You'll also need to go into your System Settings on your device and make sure that IFTTT is set to never sleep so that the app can stay persistent in the background. In my experience, this hasn't affected battery life in any noticeable way.

Conclusion and Alternatives

And there you have it, push notifications from HomeSeer:

After a few weeks of testing and working out the kinks in the Android app, IFTTT seems to be working great as a push notification platform. While it would be nice to have a bit more customization options, like perhaps changing the Android notification icon, or allowing for different sounds depending on the notification type, this solution serves my needs for the time being and, at the very least, replicates the SMS functionality I had been using previously.

When dealing with the Android notification delivery issues, I did come across some alternative apps that seem to serve a similar purpose. One that caught my attention was Pushover. I suspect a dedicated-purpose app would not have the issues I encountered with IFTTT and would likely deliver notifications more reliably. The one-time $5 cost for personal use is also a fair price to pay for the functionality you're getting, and I'm more than happy to support the app developers, especially considering their ongoing service costs. One negative, though, is that it appears their API only supports HTTP POST, which would complicate things slightly. Still, should I encounter additional issues with IFTTT, I may switch to this platform.