← Anleitungen
Node-RED & AutomatisierungEinsteiger3 Min

Node-RED mit IFTTT verbinden: E-Mail-Benachrichtigung per Webhook

Node-RED über einen IFTTT-Webhook mit externen Diensten verbinden und damit automatisch E-Mail-Benachrichtigungen auslösen – inklusive importierbarem Beispiel-Flow.

Der Name IFTTT leitet sich von der Programmieranweisung «if this, then that» ab. Der Dienst ist eine Software-Plattform, die Apps, Geräte und Dienste unterschiedlicher Anbieter miteinander verknüpft und auf dieser Basis Automatisierungen auslöst. Über einen sogenannten Webhook lässt sich IFTTT auch von eigenen Anwendungen ansprechen – genau das nutzt diese Anleitung, um aus Node-RED heraus automatisch eine E-Mail zu versenden.

Das Beispiel verschickt eine E-Mail per Gmail-Aktion, sobald ein Node-RED-Flow den Webhook auslöst. Der Aufbau lässt sich aber genauso auf andere IFTTT-Aktionen übertragen, etwa um Daten in eine CSV-Datei auf Google Drive zu schreiben.

Voraussetzungen

Benötigt werden eine laufende Node-RED-Instanz (nativ unter Linux oder per Docker), ein Zugang zum Editor im Browser sowie ein Konto bei dem Dienst, dessen Aktion am Ende ausgelöst werden soll – im Beispiel ein Gmail-Konto für den E-Mail-Versand.

Schritt für Schritt

Schritt 1. IFTTT-Konto anlegen. Registrieren Sie sich unter ifttt.com/join. Falls bereits ein Apple-, Google- oder Facebook-Konto vorhanden ist, kann die Registrierung mit einem Klick darüber erfolgen.

Schritt 2. IFTTT-Node in Node-RED installieren. Öffnen Sie im Menü oben rechts den Punkt Palette verwalten und wechseln Sie auf den Reiter Installieren. Geben Sie im Suchfeld IFTTT ein und installieren Sie den passenden Node. Er steht danach automatisch in der Palette zur Verfügung.

Schritt 3. Webhook-Trigger in IFTTT anlegen. Melden Sie sich auf der IFTTT-Webseite mit dem in Schritt 1 erstellten Konto an und klicken Sie auf Create. Wählen Sie bei If This die Anwendung Webhooks aus und anschließend den Trigger «Receive a web request with a JSON payload». Vergeben Sie einen Event Name – in diesem Beispiel gmail, da darüber die E-Mail-Benachrichtigung versendet wird – und bestätigen Sie mit Create trigger.

Schritt 4. Gmail-Aktion definieren. Wählen Sie nun Then That an, suchen Sie nach gmail und klicken Sie auf das Gmail-Symbol. Wählen Sie die Kachel Send an email und verbinden Sie über Connect Ihr Gmail-Konto. Tragen Sie unter to address die Zieladresse ein, an die die Nachricht gehen soll.

Schritt 5. Betreff und Inhalt der E-Mail festlegen. Passen Sie das Feld Subject an:

1Event "{{EventName}}"

Tragen Sie anschließend im Feld Body folgenden Inhalt ein, damit Ereignisname, Zeitpunkt und übergebene Nutzdaten in der E-Mail erscheinen:

1{{EventName}}<br>
2{{OccurredAt}}<br>
3{{JsonPayload}}

Bestätigen Sie mit Create action, klicken Sie auf Continue und schließen Sie die Konfiguration mit Finish ab.

Schritt 6. Webhook-Schlüssel auslesen. Öffnen Sie über Ihr Profil den Punkt My services und wählen Sie Webhooks. Über Documentation gelangen Sie zu einer Seite, die den persönlichen Webhook-Schlüssel und die genaue Aufrufstruktur anzeigt – diese Angaben werden gleich in Node-RED benötigt.

Der Webhook-Schlüssel ist wie ein Passwort zu behandeln. Wer ihn kennt, kann Ihre Automatisierung auslösen – geben Sie ihn nicht weiter und veröffentlichen Sie ihn nicht in öffentlichen Repositories.

Schritt 7. Flow in Node-RED importieren. Importieren Sie den folgenden Flow über das Menü oben rechts unter Import. Er besteht aus einem Inject-Node, dem IFTTT-Out-Node und einem Debug-Node. Tragen Sie im IFTTT-Node Ihren Webhook-Schlüssel und den in Schritt 3 vergebenen Event Name (gmail) ein.

1[{"id":"a63cabac.da7018","type":"ifttt out","z":"92e812f7.e81b6","eventName":"gmail","key":"931b522c.46f87","x":450,"y":140,"wires":[]},{"id":"49d9afa0.02485","type":"inject","z":"92e812f7.e81b6","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"JsonPayload\":\"hello iotueli\"}","payloadType":"json","x":220,"y":140,"wires":[["a63cabac.da7018","b73da758.c35b78"]]},{"id":"b73da758.c35b78","type":"debug","z":"92e812f7.e81b6","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":470,"y":200,"wires":[]},{"id":"931b522c.46f87","type":"ifttt-key","z":""}]

Schritt 8. Flow testen. Nach dem Deploy lösen Sie den Inject-Node manuell aus. Daraufhin sendet der IFTTT-Webhook die Nutzdaten an die Gmail-Aktion und es wird automatisch eine E-Mail an die hinterlegte Adresse versendet.

Fazit

Mit dem IFTTT-Webhook lässt sich Node-RED ohne eigenen Mailserver an externe Dienste anbinden. Das gezeigte Beispiel löst eine E-Mail-Benachrichtigung aus, der gleiche Aufbau funktioniert aber für viele weitere IFTTT-Aktionen. Wer die Nutzdaten im Inject- oder Function-Node anpasst, kann so beliebige Ereignisse aus einem Flow nach außen melden.