Der Dienst IFTTT (engl. If This Then That) bietet die Möglichkeit, beliebige logische Abhängigkeiten mithilfe der im Dienst verfügbaren Applets zu erstellen. Unter den verfügbaren hat besonders das Webhooks-Applet unsere Aufmerksamkeit erregt. Was ist die Funktionalität dieses Applets? Wirklich sehr groß! Dank ihm wurde DOMIQ für eine völlig neue Dimension der Integration geöffnet. Das Webhooks-Applet ermöglicht das Senden von HTTP-Anfragen an den IFTTT-Server, die von dir erstellte Applets auslösen. Es gibt auch die umgekehrte Funktionalität – ein Applet kann eine HTTP-Anfrage an das Base-Modul senden, wodurch ein beliebiges Ereignis im Base ausgelöst werden kann. Wie wirkt sich das auf die Funktionalität von Base aus? Nennen wir nur einige der interessantesten Möglichkeiten, die die Integration mit IFTTT bietet – und es kommen ständig neue Applets hinzu:
- Auslösen von Ereignissen im Base auf Grundlage des Standorts unseres mobilen Geräts.
- Integration mit neuen Geräten (z. B. Philips Hue, Amazon Alexa, Nest-Thermostat und viele mehr).
- Integration mit einem Google-Konto, wodurch z. B. das Exportieren beliebiger Daten aus dem Base-Modul in eine Tabelle, das Versenden von E-Mails auf Grundlage von Ereignissen im Smart Home-System usw. möglich wird.
- Verknüpfung des DOMIQ-Systems mit Wetterinformationen.
- Integration mit nativen Funktionen des iOS-Systems (Kalender, Kontakte).
- Integration mit der Skype-App – die Möglichkeit, eine Nachricht als Reaktion auf ein Ereignis im DOMIQ-System zu senden.
In diesem Tutorial zeigen wir ein Beispiel für das Senden von Anfragen an den IFTTT-Server, um ein erstelltes Applet auszulösen, sowie zeigen wir, wie man Anfragen behandelt, die vom IFTTT-Server an das Base-Modul gesendet werden.
ACHTUNG! Um die in diesem Tutorial beschriebene Funktionalität nutzen zu können, ist eine Softwareversion des Base-Moduls (system.pak und web.pak) in Version 1.9.0.1 oder neuer erforderlich.
1. Integration mit IFTTT in DOMIQ #
Wie wir in der Einleitung erwähnt haben, ist die Integration mit IFTTT bidirektional. Es ist möglich, dass Base Anfragen empfängt, die vom IFTTT-Dienst gesendet werden, sowie selbst Anfragen an den IFTTT-Dienst sendet.
1.1. Senden von HTTP-Anfragen an den IFTTT-Dienst #
Zu diesem Zweck haben wir eine neue Kennung mit folgendem Aufbau erstellt: IFTTT=nazwa_apletu?dodat-kowe_dane.
Als nazwa_apletu ist der Name des Applets im IFTTT-Dienst anzugeben, das ausgelöst werden soll. Der Teil ?dodatkowe_dane ist optional und kann weggelassen werden, wenn das Applet keine zusätzlichen Daten benötigt. Auf Grundlage der übermittelten Daten erstellt und sendet das Base-Modul automatisch eine HTTP-Anfrage an den IFTTT-Server.
C.IFTTT=tester
Dieser Befehl löst ein Applet mit dem Namen „tester“ im IFTTT-Dienst aus.C.IFTTT=temperature?value1=24.5
Dieser Befehl löst ein Applet mit dem Namen „temperature“ aus und übergibt zusätzlich den Parameter value1 mit dem Wert 24.5.
1.2. Empfangen von HTTP-Anfragen aus dem IFTTT-Dienst #
Damit das Empfangen von Anfragen aus dem IFTTT-Dienst möglich ist, ist eine öffentliche IP-Adresse erforderlich. Wenn du nur eine dynamische öffentliche IP-Adresse hast, dann ist die Verwendung eines dynamischen DNS-Dienstes die Lösung. Im Router muss auch der Port auf die lokale IP-Adresse des Base-Moduls und den Webport weitergeleitet werden, der in der Konfiguration des Base-Moduls festgelegt ist (standardmäßig 80).
Anfragen, die vom IFTTT-Dienst an die Adresse des Base-Moduls gesendet werden, erscheinen als Ereignisse: E.IFTTT.request=dane
Die in der Anfrage übermittelten Daten können beliebig sein – eine Zeichenkette, eine Zahl usw. Das Ereignis kann dann verwendet werden, um eine beliebige Befehlssequenz im Base-Modul auszuführen. Im weiteren Verlauf dieses Tutorials zeigen wir die Verwendung des Standort-Applets eines mobilen Geräts zum Auslösen eines Ereignisses im Base-Modul.
E.IFTTT.request=tester
Eine Anfrage mit dem Werttesterwurde aus dem IFTTT-Dienst empfangen.
Der nächste Schritt ist das Festlegen der Administratorrechte im Konfigurator des Base-Moduls. Gehe dazu in den Reiter Benutzer und setze die Option Administratorzugang auf Ganzes Internet.
2. IFTTT-Konto #
Der erste notwendige Schritt ist die Registrierung auf der IFTTT-Website (Registrierung und Nutzung der IFTTT-Website sind kostenlos). Nach der Registrierung erhalten Sie Ihren individuellen Benutzerschlüssel, mit dem Sie auf der Website erstellte Applets aufrufen können.
Nach dem Erhalt des Schlüssels logge dich im Konfigurator des Base-Moduls ein und gehe zum Reiter Einstellungen. Suche anschließend den Abschnitt IFTTT, aktiviere die Option Aktiv und füge den erhaltenen Schlüssel in das darunter liegende Feld ein. Zum Schluss speichere den Reiter Einstellungen und starte das Base-Modul neu. Nach dem Neustart ist das Base-Modul bereit zur Zusammenarbeit mit dem Dienst IFTTT.
3. Erstellung von Applets #
Das Erstellen von Applets ist sehr intuitiv und erfolgt nach dem Prinzip „wenn dies, dann das“, also genau wie der Name If This Then That andeutet. Zuerst muss ein Ereignis gewählt werden, das die Ausführung des Applets initiiert, und anschließend die Aktion, die als Ergebnis des Applets ausgeführt wird.
Zeit für die Erstellung des ersten Applets. Das Applet wird ausgelöst, wenn der IFTTT-Server eine HTTP-Anfrage empfängt, die vom DOMIQ/Base-Modul gesendet wurde. Die Anfrage selbst wird zyklisch durch einen Timer im Base-Modul gesendet. Als Beispiel zeigen wir das Senden von Daten eines Außentemperatursensors, der an eine Lüftungsanlage angeschlossen ist. Die Daten werden an eine Tabelle auf Google Drive gesendet, um sie zu archivieren und in einem Diagramm darzustellen.
- Nach dem Einloggen in das IFTTT-Konto wähle My Applets und klicke dann auf New Applet. Klicke auf +this, um das auslösende Ereignis für das Applet zu definieren.

- Es erscheint eine umfangreiche Liste von Diensten, die als auslösendes Ereignis für das Applet dienen können. Uns interessiert webhooks, also beginne im Suchfeld mit der Eingabe von „webhooks„. Der IFTTT-Dienst wird die Auswahl entsprechend einschränken.

- Im nächsten Schritt wähle die einzige verfügbare Option: Receive a web request. Diese Option ermöglicht das Auslösen des Applets, sobald der IFTTT-Server eine entsprechende HTTP-Anfrage empfängt.

- Im Feld Event Name gib einen eindeutigen Namen für das Applet ein. Diesen Namen wirst du später zum Auslösen verwenden. Es ist also wichtig, dass er möglichst einfach und kurz ist. Der Name darf keine Leerzeichen und keine Umlaute enthalten. In unserem Beispiel verwenden wir den Namen temperature.

- Klicke auf +that, um die Aktion zu definieren, die als Ergebnis des Applets ausgeführt werden soll.

- Gib im Suchfeld google ein. Wähle aus den verfügbaren Ergebnissen Google Drive.

- Im nächsten Schritt soll festgelegt werden, dass die Aktion das Hinzufügen einer Zeile zu einer Google-Tabelle sein soll. Wähle dazu die Option Add row to spreadsheet.

- Jetzt werden die Details zur Datenübergabe an die Tabelle definiert. Im Feld Spreadsheet name gib den Namen der Tabelle ein. Unter diesem Namen wird die Datei in deinem Google-Drive-Konto erstellt. Im Feld Formatted row kannst du das Format angeben, in dem die Daten in der Tabelle gespeichert werden sollen. Durch Klicken auf Add ingredient kannst du aus einer Liste verfügbarer Parameter wählen:
- OccuredAt – fügt Datum und Uhrzeit des neuen Eintrags im folgenden Format hinzu:
September 1, 2017 at 08:45AM - EventName – Name des Ereignisses im IFTTT-Dienst. In unserem Beispiel wird temperature übergeben.
- Value1, Value2, Value3 – Werte, die als Parameter in der HTTP-Anfrage übergeben werden können. In unserem Fall verwenden wir nur Value1, um den Temperaturwert zu übermitteln.
Im Feld Drive folder path gib den Pfad auf Google Drive an, unter dem die Tabelle gespeichert wird. Zum Schluss klicke auf Create action, um die Einstellungen zu bestätigen.
- OccuredAt – fügt Datum und Uhrzeit des neuen Eintrags im folgenden Format hinzu:
- Im letzten Schritt kannst du eine Zusammenfassung des erstellten Applets überprüfen. Wenn alles korrekt eingestellt ist, beende die Erstellung des Applets durch Klicken auf Finish. Wenn du bei jeder Ausführung des Applets eine Benachrichtigung erhalten möchtest, lasse die Option Receive notifications when this Applet runs aktiviert. Um Benachrichtigungen zu erhalten, musst du die IFTTT-App auf deinem iOS- oder Android-Gerät installieren.

4. Auslösen von IFTTT-Applets in DOMIQ #
Zum Auslösen von Applets wird der bereits erwähnte Befehl IFTTT=nazwa_apletu?dodatkowe_dane verwendet. Wir setzen das Beispiel fort, in dem Temperaturdaten vom Außensensor an Google Drive gesendet werden. Jetzt definieren wir einen Timer im Base-Modul, der die Daten stündlich an den IFTTT-Dienst überträgt.
- Füge einen neuen Timer hinzu.
- Im Feld Minute gib 0 ein (Auslösung zur vollen Stunde).
- Im Abschnitt Aktionen klicke auf Befehl hinzufügen.
- Im Feld Name gib ein: C.IFTTT.
Im Feld Wert gib ein: temperature?value1={MODBUS.int.rek.tz}
An dieser Stelle erklären wir kurz den Aufbau des Befehls: Der Teil temperature ist der Name des Applets, das durch den Timer ausgelöst werden soll. Das Fragezeichen trennt die Zusatzdaten. In unserem Fall übermitteln wir den Temperaturwert mit: ?value1={MODBUS.int.rek.tz}. MODBUS.int.rek.tz ist der Name des Identifikators, in dem die aktuelle Außentemperatur gespeichert ist.
Die Schreibweise {MODBUS.int.rek.tz} ist eine Neuheit in der Funktionalität des Moduls Base, die im Systemupdate auf Version 1.9.0.1 eingeführt wurde. Diese neue Funktionalität wird als dynamische Zuordnung von Identifikatoren bezeichnet. In der Softwareversion 1.9.0.1 wurde sie zu den Reitern Ereignisse und Timer hinzugefügt, und sie wird anschließend schrittweise zu den übrigen Reitern des Konfigurators hinzugefügt. Die Schreibweise{nazwa_identyfikatora}ist als dynamischer Verweis auf einen bestimmten Identifikator im Modul Base zu verstehen, um dessen aktuellen Wert abzurufen. In unserem Beispiel möchten wir, dass jeder Timer-Aufruf den aktuellen Temperaturwert übermittelt. Bisher hätte dies das Schreiben von Code im Reiter Logik erfordert. Von nun an kannst du auf einfache Weise auf jeden Identifikator verweisen, um seinen Wert dynamisch an einen erstellten Timer oder ein Ereignis zu übergeben.
Beispiel: Wenn zum Zeitpunkt der Timer-Auslösung die Außentemperatur 18.9 °C beträgt und dieser Wert unterMODBUS.int.rek.tzgespeichert ist, wird der Ausdruck temperature?value1={MODBUS.int.rek.tz} automatisch (im Hintergrund) vom Base-Modul in temperature?value1=18.9 umgewandelt. - Speichere den Reiter Timer, um die Konfiguration zu bestätigen.
5. Bedienung von IFTTT-Applets in DOMIQ #
Wie im ersten Kapitel beschrieben, kann das Base-Modul Anfragen empfangen, die vom IFTTT-Dienst gesendet werden. Diese erscheinen im Base als Ereignisse im Format: E.IFTTT.request=dane Als Beispiel für die Nutzung dieser Funktionalität zeigen wir den Einsatz eines IFTTT-Applets mit dem Namen Location, das ausgelöst werden kann, wenn der Benutzer eine bestimmte Position betritt oder verlässt. In unserem Beispiel verwenden wir dieses Applet, um ein Ereignis beim Nachhausekommen auszulösen.
5.1. Konfiguration des Applets #
- Nach dem Einloggen in das IFTTT-Konto wähle My Applets und klicke dann auf New Applet. Klicke auf +this, um das auslösende Ereignis für das Applet zu definieren.

- Gib im Suchfeld location ein.

- Im nächsten Schritt wähle die Option You enter an area, da das Ereignis ausgelöst werden soll, wenn eine bestimmte Zone betreten wird.

- Gib den Standort an, bei dem das Applet ausgeführt werden soll.

Aus unserer Erfahrung empfehlen wir, die IFTTT-App auf ein mobiles Gerät zu installieren, um die Position nach der Erstellung des Applets genauer festzulegen. Die mobile App ermöglicht es, den Standort anhand der aktuellen Position des Geräts zu bestimmen. So kannst du beispielsweise definieren, dass das Applet ausgelöst wird, wenn du in die Einfahrt einfährst. - Klicke nun auf +that, um die Aktion zu definieren, die als Ergebnis des Applets ausgeführt werden soll.

- Gib im Suchfeld webhooks ein.

- Wähle die einzige verfügbare Option: Make a web request, was bedeutet, dass das Auslösen dieses Applets eine HTTP-Anfrage an eine angegebene Adresse sendet.

- Im nächsten Schritt wird die Adresse definiert, an die die Anfrage gesendet wird. In unserem Beispiel tragen wir im Feld URL die Adresse ein: http://example.com/call/ifttt/home Den Teil example.com ersetzt du durch die öffentliche IP-Adresse deines Base-Moduls oder die Adresse eines dynamischen DNS.
Der Abschnitt /call/ifttt/ muss in jeder Anfrage enthalten sein, die vom IFTTT-Dienst an das Base-Modul gesendet wird – dieser Teil darf nicht verändert werden. Der letzte Teil der Adresse, in unserem Fall home, sind die Daten, die an das Base-Modul übergeben werden. Diese Daten erscheinen innerhalb des EreignissesE.IFTTT.request(siehe nächste Unterkapitel zur Definition des Ereignisses). Im Feld Method wähle GET. Die übrigen Optionen können unverändert bleiben.
- Im letzten Schritt kannst du die Zusammenfassung des erstellten Applets überprüfen. Wenn alles korrekt ist, klicke auf Finish, um das Applet zu speichern. Wenn du bei jeder Ausführung des Applets eine Benachrichtigung erhalten möchtest, lasse die Option Receive notifications when this Applet runs aktiviert.
5.2. Konfiguration des Ereignisses #
Jetzt definieren wir ein Ereignis, das beim Nachhausekommen ausgelöst wird.
- Wechsle zum Reiter Ereignisse und füge ein neues Ereignis hinzu.
- Im Feld Kanal schreibe: E.IFTTT.request
- Im Feld Daten schreibe den Namen, der in der HTTP-Anfrage aus dem IFTTT-Dienst verwendet wurde. In unserem Beispiel ist das: home.
- Um eine mehrfache (unerwünschte) Ausführung des Ereignisses zu verhindern (z. B. bei Rückkehr eines weiteren Bewohners), füge eine Bedingung hinzu, die das verhindert. Wenn in deiner Installation eine Satel-Alarmzentrale vorhanden ist, kannst du den Status der Alarmzone, die für den Eingang ins Haus zuständig ist, zur Bestimmung der Anwesenheit von Bewohnern nutzen. Wenn jedoch keine Satel-Zentrale vorhanden ist, kannst du eine der folgenden Alternativen wählen:
- Eine MEM-Variable oder ein virtueller LCN-Relaiskontakt wird anhand von Bewegungsmeldern gesetzt (kein erkannter Bewegung über einen bestimmten Zeitraum wird als Abwesenheit interpretiert). Für das Setzen der MEM-Variable oder des virtuellen LCN-Kontakts kannst du beliebig viele Sensoren verwenden.
- Einen Wandschalter definieren, dessen Betätigung beim Verlassen des Hauses eine MEM-Variable oder einen virtuellen LCN-Relaiskontakt setzt.
In unserem Beispiel gehen wir davon aus, dass die Satel-Zentrale installiert ist und dass die Zone 1 für den Eingang ins Gebäude zuständig ist. Daher lautet die Bedingung im Feld Bedingung: IDS.armed.1==1
- Abschließend müssen Sie im Abschnitt „Aktionen“ die Abfolge der Aktionen definieren, die als Verfahren zur Rückkehr nach Hause ausgeführt werden sollen.
In diesem Tutorial haben wir nur zwei Beispiele von vielen möglichen Einsatzszenarien der Integration mit dem Dienst IFTTT vorgestellt. Wir hoffen, dass dein intelligentes Haus dank dieser Funktionalität noch besser an deine Bedürfnisse angepasst wird.