Notifications über ThingSpeak und IFTTT

By | März 9, 2020

Anleitung

Wenn Du z.B. bei Unterschreitung eines bestimmten Gewichts eine Meldung bzw. eine Notification auf Dein Smartphone bekommen möchtest, dann kannst Du dies recht einfach durch Nutzung der folgenden Dienste einrichten:

  • bei ThingSpeak.com durch die Dienste
    • „ThingHTTP“ und „React“ im Zusammenspiel mit dem bei
  • IFTTT.com verfügbaren Dienst
    • „WebHooks“

Vorbedingungen:

  • Du nutzt die HoneyPi Lösung und Deine Sensordaten werden bereits in ein ThingSpeak Konto übertragen
  • Du hast die App IFTTT aus dem App Store (iOS) oder aus dem PlayStore (Android) auf das Smartphone geladen und einen Account bei IFTTT eingerichtet
  • Du nutzt einen Browser wie Firefox (nicht unbedingt Safari) – denn dann funktionieren alle Buttons

In der folgenden Reihenfolge musst Du vorgehen:

  1. Unter IFTTT.com auf dem PC oder Mac mit dem erstellen Account anmelden (Sign in)
  2. Öffne den Menüpunkt „My Applets“ und klicke auf „New Applet“
  3. Im nächsten Fenster klickst Du auf das blaue „this“. Suche nach „WebHooks“ und klicke dann auf die blaue Kachel „WebHooks“
  4. Klicke jetzt auf die Kachel „Receive a web request“
  5. Im nächsten Fenster gibst Du im Feld „Event name“ einen Namen für den Alarm ein, z.B. „Schwarmalarm“
  6. Klicke jetzt auf den Button „Create trigger“
  7. Im nächsten Fenster jetzt auf das blaue „that“ klicken
  8. Suche jetzt unter „Search action service“ nach „Notifications“ und klicke dann auf die Kachel „Notifications“
  9. In dem Fenster „Choose action“ jetzt auf die Kachel „Send a rich notification from the IFTTT app“
  10. Im nächsten Fenster nun im Feld „Title“ einen Namen für die Meldung vergeben, z.B. „Schwarmalarm Volk 1“

11. Im Feld „Message“ kannst Du nun den gesamten Text ändern. Allerdings muss unbedingt der Name, den Du oben für „Event name“ vergeben hast, in dem weißen Feld „EventName“ eingetragen werden

Das kann dann so aussehen:

12. Klicke dann weiter unten auf „Create action“

13. Im nächsten Fenster „Review and finish“ nun auf „Finish“ klicken. Das sollte dann auf der nächsten Seite so aussehen:

14 . Jetzt musst Du oben links auf „WebHooks“ klicken

15. Im nächsten Fenster oben rechts auf „Documentation“ klicken

16. Nun öffnet sich ein Fenster, das so aussehen sollte:

Wichtig ist jetzt der hier angegebene Link. In diesem Link muss „event“ mit den geschweiften Klammern durch Deinen Event-Namen „Schwarmalarm1“ ersetzt werden. Diesen Link dann mit dem ersetzten Event-Namen kopieren und irgendwo zwischenspeichern. Wir benötigen ihn später noch.

https://maker.ifttt.com/trigger/Schwarmalarm1/with/key/xxxxxxxxxxxxxxxxxxxxxx

(die x sind bei Euch individuell und automatisch vorgegeben)

17. Jetzt das Fenster im Browser schließen

18. Weiter geht es mit ThingSpeak

19. Jetzt ThingSpeak.com öffnen und über „Sign in“ einloggen

20. In der Menüzeile über „Apps“ die Einstellungsseite „ThingHTTP“ öffnen

21. Klicke auf den grünen Button „New ThingHTTP“

22. Im Feld „URL“ trägst Du jetzt den Link ein, den wir uns oben zwischengespeichert hatten

23. Das Feld „Method“ muss auf „Get“ eingestellt sein. Alle anderen Felder lassen wir unverändert

24. Wir merken uns noch ganz oben unter „Name“ die Zahl, die hinter „Request“ steht

25. Jetzt das Fenster über den grünen Button „Save ThingHTTP“ schließen

26. Nun ganz oben in der Menüzeile über „Apps“ „React“ aufrufen

27. Oben im Feld „React Name“ einen Namen eintragen, z.B. „Mein Schwarmalarm“

28. „Condition Type“ auf „numeric“ umstellen

29. Nun bei „Condition“ unter „If channel“ Deinen ThingSpeak Channel auswählen

30. …und bei „field“ das Datenfeld für den Messwert der Waage auswählen, im zweiten Feld von „contains“ auf „is less or equal to“ umstellen, im dritten Feld das Gewicht einstellen, ab dem die Notification verschickt werden soll (z.B. 40kg)

31. Bei „Action“ muss „ThingHTTP“ stehen und bei „then perfom ThingHTTP“ muss die Zahl des „Request“ stehen, die wir uns oben gemerkt hatten

32. Bei „Options“ solltest Du „Run action only the first time the condition is met“ auswählen

33. Jetzt noch die Eingaben mit „Save React“ speichern

…und schon, nach diesen nur wenigen und einfachen Schritten ;-), solltest Du eine Notification bekommen, wenn das Gewicht deines Bienenstocks unter 40kg fällt.

Natürlich kann man diese Funktion auch beliebig für viele andere Dinge nutzen. IFTTT.com (IF This Then That) bietet fast unbegrenzte Möglichkeiten, die man mit einem bestimmten Event verknüpfen kann.

Author: Friedrich

Friedrich ist einer der ersten Imker der unser System nachgebaut und in seinen Bienenstand integriert hat.

15 thoughts on “Notifications über ThingSpeak und IFTTT

  1. Karl Böhler

    Hallo Friedrich,
    ich bin gerade dabei, Deine abzuarbeiten. Ich habe Accounts bei beiden Anbietern. Ich komme allerdings nur bis Punkt 14 (Du musst …. auf WebHooks klicken). Nach dem Aufruf von gibt es das Feld nicht. In dem blauen Feld mit dem Text gibt es das Symbol mit den 3 Haken. Wenn ich das Symbol anklicke erscheint eine neue Seite mit dem Titel mit dem Hinweis und dem Hinweis im schwarzen Feld mit , dahinter ein blauer Kreis. Wenn ich dann auf das vorige Feld zurückgehe, finde ich unter auch . Aber ich sehe kein Bild, wie Du unter Pkt.16 beschrieben hast.
    Kannst Du mir einen Tip geben? Vielen Dank.
    Viele Grüße
    Karl
    14.03.2021

    Reply
    1. Friedrich Post author

      Hallo Karl, seitdem ich die Anleitung vor ca. 2 Jahren erstellt habe, hat IFTTT mehrmals die Bedienoberfläche verändert. Da kommt man nicht mehr hinterher. Ich hatte allerdings schon einmal eine neue Kurzanleitung geschrieben, hier aber nicht veröffentlicht. Diese suche ich mal raus und schicke sie Dir per E-Mail. Hoffentlich hilft sie Dir weiter.

      Reply
  2. chromo23

    Da ich keinen einfachen Weg im Netz gefunden habe über Thingspeak einen einfachen Email-Alarm beim Sensorausfall zu produzieren hab ich selber einen gebaut. (Ich will nicht noch einen3. Onlineservice wie z.b. IFTTT an den Start bringen)

    1. Bei React den Condition Type „No Data Check“ wählen und als Action „MATLAB Analysis“
    2. Bei Matlab Analysis diesen Code einfügen:

    % Enter your MATLAB Code below
    channelID = XXXXXX;
    alertApiKey = ‚TAKXXXXXXXXXXXXXXX‘;

    alertUrl = „https://api.thingspeak.com/alerts/send“;
    options = weboptions(„HeaderFields“, [„ThingSpeak-Alerts-API-Key“, alertApiKey ]);
    alertSubject = sprintf(„Honeypi V1“);
    alertBody = ‚ Seit 60 Minuten kein Empfang ‚;

    try
    webwrite(alertUrl , „body“, alertBody, „subject“, alertSubject, options);
    catch someException
    fprintf(„Failed to send alert: %s\n“, someException.message);
    end

    ->Den code habe ich von hier:
    https://de.mathworks.com/help/thingspeak/analyze-channel-data-to-send-email.html
    Man kann es halt auch komplett über MATLAB Analysis machen, wie da beschrieben. Aber so ist es vlt. einfacher für manche…

    Reply
  3. oliver pinkle

    Hallo Friedrich,
    danke für dein ausführliche Beschreibung für „Notifications über ThingSpeak und IFTTT“.
    Ich habe Versucht das nach zubauen aber leide hat sich wohl mittlerweile so einiges bei IFTTT geändert.
    Ich stecke bei Punkt 12 fest, kann dzwar noch mittlerweile „Add action “ klicken aber dann keine Ahnung.
    Kannst du mir da weiterhelfen ?

    Vielen Dank schon mal im Vorraus.
    Oliver

    Reply
    1. Friedrich Wegener

      Hallo Oliver,
      wenn ich das richtig gesehen habe, dann muss Du nach dem Klick auf „Add Action“ im dann ersten editierbaren Feld nach „Notification“ suchen und auswählen. Oder hattest Du das schon gemacht?
      Kannst du mir sagen, was genau das Problem oder die Frage ist, bei der Du hängenbleibst?

      Grüsse
      Friedrich

      Reply
      1. Oliver

        Hallo Friedrich,

        eigentlich hänge ich schon bei Punkt 6, bei mir gibt es keinen Button „Create trigger“ nur einen Button „Add action“ .
        Wenn ich eine Action hinzufüge kann ich „Notifications“ und auch „Send a rich notification from the IFTTT app“ wählen und die weiteren Schritte bis zu Punkt 12 ausführen, hier kann ich wieder „Add action“ wählen aber nicht wie unter 13 beschrieben „Review and finish“ auf „Finish“ klicken.
        Wo biege ich falsch ab ??

        Danke schon mal für deine Hilfe

        Reply
  4. Andreas

    Ich möchte gerne noch etwas ergänzen, und zwar wie man Werte wie aktuelles Gewicht oder die Temperatur mitschickt – basierend auf https://www.elecfreaks.com/store/blog/post/how-to-send-temperature-threshold-value-alarm-email-via-ifttt.html/ die einfache Ergänzung:

    Man muss die „Method“ auf „Post“ umstellen (ganz wichtig! Damit werden nämlich Daten sozusagen an ITFFF übertragen). Beim „Content Type:“ muss man „application/json“ eintragen und dann im „Body“ Feld „{„value1″:“%%channel_xxxxx_field_1%%“}“ wobei ihr xxxx durch die Nummer eures Channels ersetzen müsst.

    Wollt ihr mehrere Werte übergeben bzw auswerten, dann könnt ihr diese einfach via Komma ergänzen like this:

    {„value1″:“%%channel_xxxxxx_field_1%%“, „value2″:“%%channel_xxxxx_field_2%%“}

    Hoffe, es hilft!

    LG
    Andreas

    Reply
  5. Marcus Werner

    Ich denke für die Benachrichtigung wäre die Gewichtsänderung von Vorteil. Also mathematisch die erste Ableitung.
    Somit muss man nicht bei Gewichtszunahme durch Honig und/und Volkszuwachs immer den Wert korrigieren.
    Grüße

    Reply
    1. Friedrich

      Ja, das macht natürlich mehr Sinn. Ich weiß nur nicht, ob man bei dem kostenlosen ThingSpeak Account auf Basis einer Meßwertkurve eine neue Kurve als 1. Ableitung programmieren kann. Ich werde mal bei ThingSpeak gucken. Vielleicht können wir ja auch Javan überzeugen diese Funktion in der Firmware für beliebige Kurven anzubieten 😉

      Reply
    2. Friedrich

      Also ich glaube schon, dass man unter ThingSpeak eine neue Kurve als 1. Ableitung auf Basis einer anderen Kurve programmieren könnte. Es gibt auf der Mathworks Seite verschiedenste Beispiele. Aber ich kann leider nicht programmieren – ein Grund, warum ich auf die HoneyPi Lösung gesetzt habe ;-). Da müssen wir also auf andere Experten hoffen.

      Reply
    3. Friedrich

      So, habe ziemlich lange probiert und nach der entsprechenden Funktion in Thingspeak gesucht. Aber nun habe ich die Ableitung für die Gewichtskurve (im Beispiel für die letzten 60 Minuten) erstellt:
      Natürlich muss man jetzt noch ein bisschen herum probieren, bei welchen Ableitungswerten über React und IFTTT eine Notification abgesetzt werden muss.
      Der Code wird als MATLAB Analysis angelegt und dann über TimeControl alle 5 Minuten getriggert.

      % Enter your MATLAB Code below
      fieldNumber = 1;
      readChannelID1 = xxxxxxx;
      readAPIKey1 = ‚xxxxxxxxxxxxxxxxxxx‘;
      writeAPIKey1 = ‚xxxxxxxxxxxxxxxxxxx‘;

      writeChannelID2 = xxxxxxxx;
      readAPIKey2 = ‚xxxxxxxxxxxxxxxxxx‘;
      writeAPIKey2 = ‚xxxxxxxxxxxxxxxxxx‘;

      %Hier werden die Gewichtsdaten der letzten 60 Minuten gelesen:
      data = thingSpeakRead(readChannelID1, ‚Fields‘, fieldNumber,…
      ‚NumMinutes‘,1*60,…
      ‚ReadKey‘, readAPIKey1);

      %Hier wird über diese Daten die Ableitung gebildet:
      Ableitung = std(data);

      %Und hier wird die Ableitung in einen zweiten Channel geschrieben, Channel, nicht einfach nur ein anderes Field des %Read-Channels!
      thingSpeakWrite(writeChannelID2,’Fields‘,[3],’values‘,[Ableitung],’WriteKey‘,writeAPIKey2);

      Reply
  6. Marcus Werner

    Ich hab es versucht, klappt aber nichts für schwache Nerven. :))
    Super beschrieben, Danke

    Reply
    1. Friedrich

      Danke 🙂 hahahaha – ja stimmt, nichts für schwache Nerven ;-)) Aber schön, dass es bei Dir auch funktioniert!

      Reply

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert