IFTTT Webhooks trigger

Hello All,

I have a DHT11 sending Temp & Humidity to the Arduino IoT Cloud, all working fine, everything appears on a dashboard

I would like a notification on my phone when the Temperature is over a value

I have created an applet in IFTTT and added the webhook URL to the thing (or properties) in the IoT

but what I get is a notification everytime the loop runs and updates the dashboard which, although thats not what I want, it makes perfect sense to me

so my question is how to trigger the applet only on say a temperature above 25c (ideally not triggering every 30 seconds when its above that temp) so trigger once and then again after the temp has gone below that value and back over it say the next day or next hour etc?

  • do I have to add a property for this?
  • how to get the webhook to only trigger on one property? is that the value section in the webhooks configuration? (currently I get a notification for all properties ie every temp and humidity check and switching on of the light)
  • do I just add a query to the end of the webhook URL?
  • do I need to modify the code in the sketch loop to work differently?

the information on how to do this is lacking somewhat

here are some screenshots

these are the three properties I have running, one is a switch for the LED the other two are for Temp and Humidity getting data from the DHT11

this is where you enter the webhook from the IFTTT setup


here you can see I get a notification every time there is an update which is every 30 seconds for both the Temp and Humidity, this is what I need to fix if anyone knows how

this is my main test code

/*
  Sketch generated by the Arduino IoT Cloud Thing "Greenhouse_Automation_1"
  https://create.arduino.cc/cloud/things/744d255b-42ba-45ab-ab19-cf0754002aa3

  Arduino IoT Cloud Properties description

  The following variables are automatically generated and updated when changes are made to the Thing properties

  float humid;
  bool lED;
  float TempC;

  Properties which are marked as READ/WRITE in the Cloud Thing will also have functions
  which are called when their values are changed from the Dashboard.
  These functions are generated with the Thing and added at the end of this sketch.
*/

#include "thingProperties.h"
#include "DHT.h"
#define LED_PIN LED_BUILTIN
#define DHTPIN 7                    //define DHT pin
#define DHTTYPE DHT11          //define DHTTYPE DHT11/DHT22
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  // Initialize serial and wait for port to open:
  Serial.begin(9600);
  // This delay gives the chance to wait for a Serial Monitor without blocking if none is found
  delay(1500);
  dht.begin();

  // Defined in thingProperties.h
  initProperties();

  // Connect to Arduino IoT Cloud
  ArduinoCloud.begin(ArduinoIoTPreferredConnection);

  /*
     The following function allows you to obtain more information
     related to the state of network and IoT Cloud connection and errors
     the higher number the more granular information you’ll get.
     The default is 0 (only errors).
     Maximum is 4
  */
  setDebugMessageLevel(4);
  ArduinoCloud.printDebugInfo();
  delay(10000);
}

void loop() {
  ArduinoCloud.update();
  // Your code here

  TempC = dht.readTemperature();
  float TempC = dht.readTemperature();
  Serial.print("Temperature");
  Serial.println(TempC);
  humid = dht.readHumidity();
  float humid = dht.readHumidity();
  Serial.print("Humidity");
  Serial.println(humid);
  delay(10000);
}

void onLEDChange() {
  digitalWrite(LED_PIN, lED);
  Serial.print("The light is ");
  if (lED) {
    Serial.println("ON");
  } else {
    Serial.println("OFF");
  }
}

this is the things properties code

#include <ArduinoIoTCloud.h>
#include <Arduino_ConnectionHandler.h>


const char THING_ID[] = "744d255b-42ba-45ab-ab19-cf0754002aa3";

const char SSID[]     = SECRET_SSID;    // Network SSID (name)
const char PASS[]     = SECRET_PASS;    // Network password (use for WPA, or use as key for WEP)

void onLEDChange();

float humid;
bool lED;
float TempC;

void initProperties(){

  ArduinoCloud.setThingId(THING_ID);
  ArduinoCloud.addProperty(humid, READ, 30 * SECONDS, NULL);
  ArduinoCloud.addProperty(lED, READWRITE, ON_CHANGE, onLEDChange);
  ArduinoCloud.addProperty(TempC, READ, 30 * SECONDS, NULL);

}

WiFiConnectionHandler ArduinoIoTPreferredConnection(SSID, PASS);

lots of views but no replies, perhaps Arduino IoT Cloud is not the place to do this, looks like Thinkspeak is simpler to create a trigger like this,

my yearly subscription to Arduino IoT Cloud may have been premature

....

I have made exactly the same experience. I also tried to be notified via IFTTT when the temperature measured by a sensor exceeded a certain level. I didn't want to dive into things like google sheets. Therefore I have defined another property for my thing called "maxTempExceeded" as a bool, which I used as the trigger for IFTTT.
Independent from its value, false or true, and independent from the value changing or not changing - I constantly received notifications. Frustrating, since I spent quite some hours. I wonder if there is any easy solution.