IFTTT recipe confused by older recipe - not reading something correctly [Solved]

Saw the news about IFTTT and jumped quickly. I am doing a super easy if the temperature goes over 25 (Centigrade) then email me. The API is returning the following:

{
  "cmd": "VarReturn",
  "name": "temperature",
  "result": 22.14816849816856,
  "coreInfo": {
    "last_app": "",
    "last_heard": "2015-01-22T17:03:29.322Z",
    "connected": true,
    "deviceID": "someawesomeIDhere"
  }
}

Yet, I get an email saying:
At January 22, 2015 at 10:39AM, SPARK1 reported that temperature is now 22.14816849816856

Yes the number changes, and Ive even tried 25.0 vs 25 in case it was decimal problem. So somethings up. I even tried passing it as INT instead of Double, but same result. Its like its reading the number incorrectly?

Hi @HackerJL,

Hmm, that’s weird, I’m looking into it.

Thanks!
David

Hi @HackerJL,

It looks like you have 4 recipes going, one you setup to notify you if the temp was over 20.

IFTTT doesn’t tell us when a recipe is turned on or off, so we try to guess by measuring how often IFTTT asks us about a particular trigger. After you turn off a recipe, it takes about 6 hours before we can be sure it’s off. Because your two triggers (one live, one old) use the same variable name, IFTTT is getting confused. It’ll sort itself out in a few hours, or you can change the variable name now and avoid more notifications from the old recipe.

I’ve raised this issue with IFTTT, but they won’t be able to address it for a while, since it requires them to make more information available to us.

I hope that helps!

Thanks,
David

Hey Dave, Ive only ever had one, but with the checks going that much, I guess there is a possibility they were triggering that got them backlogged, and then I went and changed the number up, etc.

Further to that, is there a way to limit the amount of calls it makes? X many per hour, etc. Once it tripped, it was a floodgate.

Ive turned things off for a few hours, so I will try again at the higher rate

-HackerJL

Hi @HackerJL,

Since IFTTT doesn’t tell us anything about your recipes, we only know what triggers it asks about. In this case each time you changed your recipe, you setup another watch on that variable. Normally the function / variable watches check your variable once a minute while your device is online, and they’ll stay triggered if the rule you setup is still valid (temp >= 25), etc.

Thanks!
David

Makes complete sense to me. And I did see a backlog of emails from 1-2 hours after the recipe was deleted. Work in progress.

Thanks for the help

Hrm…dont think thats the case.

I had deleted all the recipes when I started this thread…so thats…5 hours ago.

I just made a new recipe, same thing. Threshold is 25, its triggered on 20.15

I even altered the subject line in the email so I would know its the new trigger, and it is.

Hi @HackerJL,

I can assure you that’s the case, the IFTTT side of things, in terms of timeouts and whatnot is very flexible, so it won’t be ‘exactly 6 hours’, that’s just how long we keep checking from the last time we heard from IFTTT. If you change the variable name in your firmware, your old lingering triggers will no longer apply.

Thanks,
David

Oh thats how it works…interesting. So I could turn it on, and let it get it out of its system, or change the variable.

Good to know, I mean…not good, but it is what it is.

Hi @HackerJL,

Yeah, it’s not ideal, but we’re a very unique kind of IFTTT channel, and we’re pushing the bounds of what they make available via their integrations. I’m hoping they’ll add more endpoints and data in their service so we can iron out stuff like this. :slight_smile:

Thanks,
David

1 Like

I think I have been struggling with this very thing also. I think these nuances should be better documented because if someone is just testing their recipe and modifies it to trigger a notification, which most people will, they will be bombarded with notifications even when they adjust the parameter back to be within bounds of their project. I hope IFTTT will address these issues soon. A way to rate limit how often recipes are checked would also be very helpful. :smile:

Thanks for the info!

1 Like

Sorry to beat a dead horse here. But I finally got around to turning this rule back on. And immediately, it starts sending me notifications. Knowing that this needs to get it out of the system, I changed the rule to just do email digest. Hoping all those ‘old’ notifications just get out and I can continue correctly.

This morning I received the email digest…1137 times. Doesn’t seem right. It was writing to the digest right up till it sent it, so I’m certain its still logging the old numbers? Doesn’t sit well with me.

Any insight on your end @dave ?

Hi @HackerJL,

Hmm. IFTTT doesn’t expose any information about when recipes are created or destroyed, so we assume they’ll ask about it every 6 hours or so. In that period if you’re checking a function or variable, the cloud will continue to poll your device, and will continue to log events for IFTTT until the recipe times out. Once those events are logged, they take a few weeks (if I remember correctly) before they’ll be cleaned up on our end while we wait for IFTTT to check back in.

I suspect this is what happened for you, the realtime aspect of the recipe kept running and kept logging events, and then they were all ‘dumped’ onto the IFTTT action when IFTTT finally came and gathered the triggered events.

I’m not sure what the best approach to resolving this sort of thing would be without changing how the IFTTT api behaves, any thoughts?

Thanks,
David