Limitations of Converting IFTTT Applets to Node Red Flows

So IFTTT is putting up a pay wall tomorrow. They'd been sending me emails for awhile, but only now did I comprehend that I'm going to lose 80 of my 83 applets. I haven't created much new in IFTTT since I started using Node Red, however I just reviewed what I have and I realized that there are a number of things I don't know how to do in node red that I have set up in IFTTT. Some are different types of triggering services. Some are on the fly config features provided by 3rd party apps that integrate IFTTT. IFTTT serves as a bridge between the iPhone(/iPhone apps) and Node red to allows a bunch of different types of triggers & config that I wouldn't otherwise know how to do. Perhaps you guys can help me figure these out... Each one could probably be an entirely separate thread, so for this thread, I simply want to know whether or not these things are possible (not how to do them in detail). If something is possible, and the explanation is involved, I'll start a separate thread.

IFTTT features (or app features that integrate IFTTT) that are not(?) possible in node red - please tell me I'm wrong where applicable...

  • Management of "groups of people" who install a 3rd party app (e.g. Life360's "Circles") from anywhere. Let me explain what I mean by example - Life360 can trigger IFTTT applets when the last group member leaves or the first group member arrives - which I can implement in Node Red, but to do that, not only do I have to enter each person manually in Node Red code and install an app on everyone's phone to make webhook calls to webhookrelay via geofence events, I must also configure their geofence app (e.g. Geofency) to add the location trigger and paste in the webhook URL with json data. In Life360, all I have to do is add or remove family members in the Life360 app (via invite) from anywhere and I don't have to mess with the settings in their phones to set locations and triggers. I just add them to my Life360 circle on my phone and all the places and triggers I configure for a place work - and now include that new circle member when determining "first/last" to "arrive/leave". I'm unaware of any app where I can send someone a webhook and attach it to a "place" to include someone whose location controls my stuff. For example, I use these first/last to arrive/leave to control HVAC and my security system.
  • Trigger by iOS Reminder Completion event - IFTTT has an iOS Reminders service that can trigger when a reminder is completed. I suppose I could write an AppleScript to run via cron job to look for completion status changes, but that's not really the same thing.
  • Trigger by receipt of a gmail account email that matches a search
  • Trigger by real time weather condition changes to rain in a specific location
  • Trigger by real time when pollen count rises above a threshold
  • iOS Push notifications when an applet/flow does something
  • Trigger by google calendar event creation whose content matches a term
  • Place phone call and speak text (I have this set once a month to keep my google voice account active)
  • Disable/enable a flow/applet from anywhere - (is there a way to set any settings (let alone the status of the "enabled" button) of a flow via a node?)
  • Create a button on my iPhone (home screen) to trigger a flow (like an IFTTT "Do" Button). I could create a Home app button, but that only works when I'm on my own WiFi. The alternative would be to create a Siri Shortcut that makes the webhook call to webhook relay and add that to the home screen, but it's definitely not as easy. What would be comparable is a node red or webhookrelay "app" that you could create buttons from and change the json parameters.

I have a bunch more legacy IFTTT applets I have to implement in node red, but I know how to implement them.

I'd say the 1st 2 are ones best kept in IFTTT (you get 3 on the free tier I believe).

GMail trigger should be possible if you can get a reliable connection working. I've not tried for a while. Not sure if any of the nodes support IMAP push which would make that real-time. If you can live with periodic, I run a couple of IMAPfilter jobs every 15 minutes to help with spam and regular email management and those jobs call a webhook in Node-RED so you could adapt that.

Weather shouldn't really be an issue. Though "realtime"? Not convinced that any weather services that you don't pay for offer anything better than hourly or less. Free tier access to weather API's is generally limited to a certain number per hour/day. There is a separate thread on this forum where I posted a detailed comparison table - can't remember whether I included limits in that table. But periodic weather updates and alerts are a well trodden path and you will find lots of discussions about that on this forum.

Some weather services provide pollen forecasts as well. Same restriction applies, doubt you will get better than hourly updates which is very easily handled in NR.

iOS Push is largely handled for most of us using a Telegram bot. Though there are other services as well, Telegram happens to be about the easiest and most reliable with decent security.

GCal - I think there are nodes for that, not tried them for a long time, I don't think they were very stable when I last used them but I know some people are using them.

Google Voice - is there an API?

Enable/Disable flows - you could easily do this via a "gate" so each flow checks a gate variable. Use a Telegram bot to remotely set/clear the gates.

iPhone button to trigger a flow - that isn't so easy unless you are prepared to expose a node-red instance to the internet with the associated security issues. If you are, you could use a webhook arrangement as you mention. I've not worked out a way to trigger a Telegram bot command from a Siri Shortcut. A long-winded way would be an email trigger. Another approach would be to make use of a Internet facing MQTT server, there are certainly iOS apps that can interact with MQTT via buttons. As always, security is challenging.

By the way, I decided to cough up the money - I have a number of IFTTT integrations between cloud services such as keeping an independent record of my Tweets, Likes, etc. I don't trust cloud services not to either loose things or arbitrarily turn off or block access to services. Seen it happen too often. I also auto-post to Twitter when I star something in Feedly. Twitter, Feedly and OneNote are the services I most use on IFTTT. I figure I've had good use out of the service for a long time, probably reasonable that I now pay some money towards its upkeep.

life360 & gvoice - I kept the first one (Life360 first/last to arrive/leave) and the phone calls for the google voice maintenance. I have tried writing my own scripts to place google voice calls automatically, but it was horribly unreliable. I think they actively discourage automated phone calls for obvious reasons.

gmail - I can definitely hack up an email trigger using any IMAP account and Apple Mail, by using my Node Red install on my Mac (as opposed to my main instance on an RPi 3) now that I think of it.

Weather/pollen - Yeah - the real time weather condition changes are actually pretty accurate/timely. I use it to trigger a notification to tell me to "Bring my bike in" and it has saved me from riding home with a wet bike seat and rusty chains more times than I'm willing to admit (because I never pay active attention to the weather). I have explored numerous alternatives and I have found none that do anything other than a time-based forecast. And I use the pollen trigger to control my air filter (which my wife complains is too loud).

iOS Push - I'll have to look into telegram. Thanks for the tip.

Enable/Disable flows - Oh! A gate! That's an excellent idea. I used one to prevent continuous looping in other flows. I totally see how it can be used and set via a global variable.

gcal - I'll have to do a node search. I hope they've improved.

iPhone button to trigger a flow - If there was just a webhook button app or website with an account, I could add those to the home screen, but they annoyingly open the app/web browser. Widgets would be a workaround. Someone on reddit (about a year ago) volunteered to make a webhook button app similar to Broadlink's e-Control app, but that went nowhere.

I would have paid for IFTTT if it didn't have so many issues for my use cases. Many of my automations became useless when they decided certain services didn't need to be immediate. A number of my automations, upon triggering, average around 24 hours from trigger to execution time. And a number of iOS services stopped triggering in the background after iOS 13 (or 12?) was released. So I largely abandoned IFTTT and started learning node red over a year ago because of all the IFTTT issues, but I do have these 83 legacy IFTTT applets that I need to replace.

You need one set up as offline capable that you can add to iOS so it looks like an app. It is a bit of a pain to set up initially but once done, it will just keep working. A very simple page with a touch-enabled button and set up as offline capable with a suitable manifest file and the appropriate apple <head> configuration. See the uibuilder default template which has most of the tags there. You can use a standard front-end library like VueJS to handle the visuals and user interaction. You just need somewhere on the Internet reasonably secure that can host the page and the hook. But there are apps that should do this for you as well. I'm trying to remember what I've used in the past - although I used it on the LAN with MQTT but it should be adaptable to work with a web hook over the Internet. Have a look in the store for home automation apps.

I've never had that problem, never worse than about 15min.

It is just that there are some integrations that require so much knowledge and programming to get a service API to do the simplest thing. Bots for Facebook are a case in point - should be easy but in reality its very hard. Also things like OneNote integration. I use OneNote constantly and have done since v1 but integration requires OAuth setup, registration of your app, .... too much to do and too little time.

I've also tried pretty much all of the alternatives over the years as well. Kept coming back to IFTTT. So given that I've reduced personal IT overheads in other areas over the years, I thought this was a minor price to pay.

Not sure I follow. When you say "one", what are you referring to? A widget?

Yes, I have a webhookrelay account. That's currently how I get from geofency, IFTTT, and Siri Shortcut triggers into node red.

I have looked extensively for a (well designed) webhook button app and have tried out a number of them. I have a reddit post where I delineate the features I'm looking for. An app with that feature set doesn't exist (or at least, didn't the last time I checked). Seems simple enough to implement, so I'm surprised no one has done it.

Oh yeah, that's the response time for certain services that IFTTT deemed necessary to implement quickly. But they de-prioritized some services at one point that made a number of my automations completely useless. For example, unless I pay $10/month to Chamberlain/LiftMaster (or buy extra hardware to hook in MQTT), the only way for me to reliably capture all garage door open/close events for free is to use chamberlain's email event notification. And with IFTTT, that used to happen within a minute or so. Now it's hours. I have other examples. That's just one.

But that's the sort of thing where IFTTT isn't necessary. I only have these things currently because they are "legacy" - before I got into Raspberry Pi. I can implement a local solution. I just have lots of them to do.

Same here. Honestly, if IFTTT was more reliable (e.g. they didn't arbitrarily slow down response times of certain triggers I set up as relying on an immediate response) and wasn't completely broken for some services (e.g. iOS service triggers like Reminders events), I'd have paid too. It just depends on what you're doing. If your usage doesn't include broken services and fits in with what IFTTT decides should happen immediately, then IFTTT is a good option. Me however, if I could completely get rid of it, I would. I've been bitten too many times. Too much overhead working around issues that pop up with regularity. With Node Red, I can get that dependability. I just need to figure out alternative triggers (and group-management), or figure out a way to use the free IFTTT codified applets.

It seems that these are the things that I cannot do on node red without an order of magnitude higher effort:

  • Group management (e.g. what Life360 does)
  • Real time weather condition changes (including pollen count)
  • Place scheduled phone calls (speaking text)

Everything else, I can implement with some reasonable amount of effort:

  • iOS Reminder Completion trigger (I can setup a cron to check for completions)
  • Email receipt matching a term trigger (I can set up Apple Mail to trigger a script upon rule match)
  • Push notification when a flow runs (I understand this is possible, but I need to look more into it)
  • Gcal event creation matching a term trigger (I'll have to try out available nodes)
  • Disable/enable flows (gates!)
  • Webhook buttons on iPhone (at the least, I can create Siri Shortcuts even though they're annoying because they open the shortcuts app)

A web page setup for offline working. You can "install" that to iOS and it looks like a native app but is just a collection of web resources that get cached to your device. When you open it, it looks like a native app but is a browser component without any of the surrounding "chrome" (no status or address bar, etc). Take a look at what the Node-RED Dashboard does and you will see that it uses the same features in order to speed up your Dashboard after the first run by leaving most of the components on your device. Web apps can do a lot more though.

Did you really look at Siri shortcuts? You can add them to your home screen and you can call a URL without having to show a browser. I think that the tool I used to use has gone now.

Sounds like that might be down to that vendor? In any case, I don't like home integrations via the cloud and try to avoid that as much as possible. I'd rather put my own sensor on the door and integrate direct to Node-RED.

Relying on cloud vendors to automate your home is a recipe for disaster.

Well that works because you've persuaded everyone to use the same cloud app. You could do similar things with you own cloud instance of OpenTracks. But of course, that is still harder because you have to set up and maintain your own cloud-facing server.

Life360 is clearly being accessed directly by people - https://www.startpage.com/sp/search?query=Life360+api

And there is a node for it (though it seems undocumented) and a node.js module so it is probably accessible directly from Node-RED. Again though, of course this will be more complex than IFTTT. Node-RED is not a direct replacement for IFTTT, it is not a zero-code platform, it is a low-code platform.

Define "real time"? The only realistic way to do that is with a local sensor. Node-RED can certainly help there. Looking at near real-time (e.g. maybe +/- an hour), there are plenty of weather API's that people on this forum have used and I did a comparison table for some of them a while back. Understanding where the sensors are for weather API's is the trick. Just because an API has responded to your lat/lon doesn't mean to say that it actually has a pollen sensor with 20-50 miles of you. That is true for IFTTT as well.

Well, if you are in the UK and send an SMS to a BT Landline, it is spoken :smiley: Probably lots of ways of either doing that or working around it. You might want to start a different thread on that since there are likely people on this forum who have either done it or would be interested in it. But a lot is going to depend on what carrier you are using as to how easy or hard it will be.

On a phone, I think everything opens an app. I'm not aware of any way to avoid that. Everything will open something.

I don't necessarily disagree. I would like as much to be local as possible and ideally, pipe all external access through something like a webhookrelay account, but I'm not much of a hardware guy and am a cheapskate, so I tend to look for software solutions. And the only way I have been able to figure out, hinges on that email, which is free. Actually, now that I think of it, I had looked for a way to use the push notifications the garage door sends to the home app as a trigger but couldn't figure it out. (Know a way to use pushes as triggers?) I agree I would rather not have to rely on their email. Too many possible points of failure. And all of the liftmaster/chamberlain nodes error out due to some authentication issue nearly once a month and require manual attention.

In fact, the only automations I use with the garage door are work-arounds to another issue: since we're on sprint (which is cdma), there's not data access if you're on a phone call. So if we're on a phone call when we arrive/leave, the geofence automations fail to trigger. So I use garage door events as a sort of backup trigger for those missed events. So it's not like I'm 100% reliant on those garage door triggers.

Incidentally, one nice thing about the IFTTT Life360 service is that if you're on a call when the trigger occurs, IFTTT's service still triggers after the call ends. It catches those geofence border crossings (assuming you don't go in & out while on the call). The geofency app solution I started using for these sorts of triggers with node red don't catch those. I would have to find an app that buffers geofence-triggered webhook calls until the next connection.

My definition is: timely enough to prevent my bike seat from being wet on my way home, given a notification.

I wouldn't say that's true (unless your guiding requirement is to avoid a cloud service). You could use a pin on a map (or the geo-location of your phone) that relies on regional radar or global satellite data, which is how I imagine IFTTT does it. If I got a local sensor, I could set one static weather location (on property I own). With an implementation like IFTTT's weather "current condition change" service, I can create rules for any location without dropping upward of $300 on a sensor per location.

And since the only applet I currently use that uses the weather condition change trigger is pinned to the spot where I lock up my bike at work, I wouldn't be able to install a local sensor there...

When it comes to pollen, I'd say you're more right, but there is a company out of Israel that creates an air quality app that uses satellite data (among other data) that ostensibly can track pollen count, though I couldn't figure out their implementation. It was still fledgling, last I looked.

That's an interesting idea (text to landline), though google voice is text-capable... I wonder if text activity keeps the GV account active... It might! I should look into that. But WRT text to land line, we have that in the US too, but it's not free.

Not the widgets. The widgets animate a fill-bar when you tap them. You just have less control over how to arrange them.

You would need to send me a suitable garage door to test :rofl: Too many possibilities.

Sometimes it is worth spending a bit of money. In this case a Wi-Fi enabled magnetic door sensor would fix your issues here. Though you really don't need a lot of expertise to put together a mag sensor, ESP8266 and Tasmota or ESPeasy. No hardware programming would be required. Total hardware cost maybe $15-20, less if you already have a spare USB power supply (and extension cable if needed).

Sheesh! Glad I don't live in the USA.

Well, that could be done via a cloud MQTT service. Oracle and IBM both have services that will run Node-RED and MQTT in the cloud - even on the free tier I believe.

You might be lucky. That doesn't work at all well where I live because the local conditions vary greatly - not unusual to have very different weather within 1/2 mile. So unless there are local sensors or a clever AI doing the interpolation, it is pot luck. I always have to check at least 2 or 3 services and then look out the window! The most annoying services are the ones that pretend to be local but actually use the nearest airport weather service which is 30 miles away. Might as well be in a different country for all the good it would do me.

Well you can do that with Node-RED - assuming you find a reliable enough weather API. Easy enough to compare a new input with a previous one and alert if anything important changes.

Haha. But isn't there a standard protocol for push notifications? Otherwise, how would apps like pushbullet work for every app's notifications?

That's one of many reasons to not want to live in the US right now.

A cloud service isn't going to buffer webhook calls if the app triggering the call can't reach the cloud service... You'd need an app to buffer the calls when it can't reach the service, unless it constantly reports location data. But maybe I'm misunderstanding what you mean. No data doesn't mean no GPS. GPS works while on a call on a CDMA network. It's a separate antenna. The phone always knows where it is. If it loses its data connection (e.g. while on a call) and then you cross a geofence, unless the app buffers the webhook call, the only way for a service to trigger the call is if the phone is constantly recording its location to the service. When it reconnects, the service would only know what webhook calls to make if the webhooks are stored in the service too. But maybe that's what you meant.

Lucky? I think maybe you're misunderstanding what I mean by regional radar and satillite data. Measurements like temperature and amount of rainfall are reliant on stations like the ones you mention at airports. But for things like clouds and rain, you're not limited to a static weather station limited to a single location. Data sources like radar and satellite are what draw heatmaps on weather maps and they are accurate down to 5 meters. It doesn't matter if the radar tower is a half mile away or the satellite is in orbit. Radars map where clouds are and how dense clouds are by bouncing radar beams off the water particles in the air and analyzing the transit time and bounce-back signal strength. Satellites use image analyses in numerous spectrum bands. If you connect that data with a geolocation covered by the radar region or satellite, you get very accurate current conditions (such as precipitation) for that spot.

Even if I had a window in my office at work (which I don't), I get so consumed in my work, all hell could break loose and I'd have no idea. And I do these notifications because I never remember to check the weather.

I just realized that the hb-status node emits an event whenever the garage door state changes and that's all local, so I can mark the garage door off the list. It would still be nice to have email search term triggers though.

I just looked through all of the (google and other) calendar nodes for node red. None of them have an event creation trigger matching a term, so it looks like that item is back on my list. I see where the confusion lies. The trigger I'm looking for is the date/time of the creation of an event matching a term. When the event is created, that's when I want to trigger something to happen. That's what IFTTT's google calendar service does. All of the node red calendar nodes do something different. They match a term for a newly created event and set up a cron job or other trigger based on the event start time, not the event creation time.

So these are the things that I cannot do on node red without an order of magnitude higher effort:

  • Group management (e.g. what Life360 does)
  • Real time weather condition changes (including pollen count)
  • Place scheduled phone calls (speaking text)
  • Gcal event creation matching a term trigger (where event creation time is the trigger time (not event start time))

Everything else, I can implement with some reasonable amount of effort:

  • iOS Reminder Completion trigger (I can setup a cron to check for completions)
  • Email receipt matching a term trigger (I can set up Apple Mail to trigger a script upon rule match)
  • Push notification when a flow runs (I understand this is possible, but I need to look more into it)
  • Disable/enable flows (gates!)
  • Webhook buttons on iPhone (at the least, I can create Siri Shortcuts even though they're annoying because they open the shortcuts app)

Oh geez! Life360 support just responded to my query about automation alternatives to IFTTT and they informed me that they are dropping support for IFTTT as of November 2nd! Of my 83 applets, 2 of the free 3 ones I chose to keep were Life360 applets!

So I just installed the Life360 node on my NodeRed instance and it does not appear to be aware of Life360 Circles, so there's no way to create first to arrive or last to leave triggers. Someone on reddit seemed to suggest that you can do it with homeassistant. So I guess I'll have to check that out next. I hope they're right... Those are 2 of my most used triggers.