ioBroker Anwesenheitserkennung mit IFTTT
In diesem Artikel zeige ich Dir, wie Du eine Anwesenheitserkennung mittels ioBroker und IFTTT umsetzen kannst.
In einem frรผheren Artikel zu den Grundlagen der Anwesenheitserkennung haben wir uns bereits mit dem Thema Geofencing beschรคftigt. Hier gehts zum Artikel, falls Du diesen noch nicht gelesen hast:
Mit der IFTTT (If this then that) Plattform lassen sich individuelle Verknรผpfungen zwischen Web-Anwendungen erstellen. Im Artikel zeige ich Dir, wie ich diesen Dienst fรผr eine einfache Location-basierte Anwesenheitserkennung in ioBroker verwende.
Fรผr die Umsetzung mรผssen folgende Voraussetzungen erfรผllt sein:
- Installierter iot-Adapter / cloud-Adapter
- ioBroker Pro Lizenz (oder vergleichbar)
- IFTTT-App und Account
Bevor wir nun mit der eigentlichen Konfiguration von ioBroker sowie der IFTTT-App beginnen, mรถchte ich Dir zunรคchst die Funktionsweise erklรคren.
Funktionsweise
รber die IFTTT-App wird eine Regel erstellt, die beim Betreten oder Verlassen einer definierten GPS-Zone (Geofence) eine Aktion รผber den ioBroker IOT-Service ausfรผhrt. In der Aktion wird der entsprechende Anwender sowie eine Kennzeichnung (betreten oder verlassen) des Geofence รผbermittelt. In ioBroker werden diese Informationen in einem speziellen IFTTT-Datenpunkt empfangen und kรถnnen dann mittels einem eigenen Script weiterverarbeitet werden.
Im ersten Schritt benรถtigen wir nun den IFTTT-Key, welchen wir รผber die IFTTT-Webseite erhalten. Melde dich dazu mit deinem Account an, oder erstelle Dir jetzt einen IFTTT-Account, falls Du noch keinen angelegt hast.
Link zur IFTTT-Webseite:
Nach dem Login findest Du auf der Startseite eine Suchfunktion, in der Du den Begriff webhook eingeben musst. Wechsle nun in der neuen Ansicht auf Services und klicke auf Webooks. Im Bereich der Webhooks findest Du oben rechts die Dokumentation. Klicke auf diese Schaltflรคche, um die Dokumentation zu รถffnen. In dieser Ansicht kannst Du Dir den IFTTT-Key in die Zwischenablage kopieren.
Im nรคchsten Schritt wechseln wir nun in ioBroker in den Bereich Instanzen und starten die Konfiguration des iot-Adapters. Auf der Lasche Services und IFTTT kannst Du nun im ersten Schritt den soeben kopierten IFTTT-Key in das Feld 1 eintragen. Die URL aus dem Feld 2 benรถtigen wir in den nรคchsten Schritten auf Deinem Smartphone, kopieren diese URL nun am einfachsten in die Zwischenablage und sende Sie Dir an Dein Smartphone (E-Mail, etc.).
Jetzt kรถnnen wir die Konfiguration schlieรen und den Adapter neu starten.

Wir haben die erste Konfiguration des iot-Adapters in ioBroker abgeschlossen und wechseln jetzt in die IFTTT-App auf Deinem Smartphone. Die App steht fรผr Apple iOS sowie Google Android zur Verfรผgung, ich nutze die App auf einem iPhone. Die Konfiguration sollte aber auf dem Google Android-Smartphone gleich aussehen und funktionieren.
Nach dem Start der IFTTT-App klickst Du unten auf die gelb markierte Schaltflรคche Get more. In der neuen Ansicht klickst Du nun auf die gelb markierte Plus-Schaltflรคche. Wir erstellen nun unsere If This Then That (Wenn dies, dann das) Regel um aufgrund der aktuellen Position eine Aktion zu starten. Klicke Dazu auf den gelb markierten This-Teil der Regel.
In der neuen Ansicht wรคhlen wir nun den Auslรถser (Location – GPS-Standort) aus. Hierzu klickst Du auf das gelb markierte Location Symbol. In der nรคchsten Ansicht des IFTTT-Triggers wรคhlst Du nun die Schaltflรคche You enter an area aus. In der jetzt geรถffneten Kartenansicht kannst Du nun den Bereich Auswรคhlen, der als Wohnsitz oder anderer Positionsbereich (z.B. Arbeit) verwendet werden soll. Der Bereich lรคsst sich bis auf wenige Meter genau einstellen.
Nach dem wir nun den Auslรถser gewรคhlt haben, wรคhlen wir im nรคchsten Schritt die Aktion, die beim Betreten des Bereichs ausgefรผhrt werden soll. Hierzu klickst Du zunรคchst auf die gelb markierte Schaltflรคche That. In der neuen Ansicht suchst Du dann nach web um die Aktion Webhooks zu finden. Mit einem Klick auf Webhooks erstellen wir nun die Web-Aktion. In der nรคchsten Ansicht klickst Du auf die Schaltflรคche Make a web request.
Nun erstellen wir den Web-Request zum ioBroker Server und somit zu unserer Instanz von ioBroker. Als URL fรผgen wir die vorher kopiere URL (Feld 2) aus dem iot-Adapter ein. Als Methode fรผr den Web-Request wรคhlen wir hier POST und als Content Type text/plain. Der Body ist nun unsere Identifikation, um was fรผr einen Web-Request es sich handelt. Da wir spรคter noch weitere Web-Request verwenden werden, habe ich hier nun folgendes Format gewรคhlt:
<Art des Requests>:<Request-Text>
Als Art habe ich location und als Request-Text matthias_atwork.
Dies dient hier nur als Beispiel, wie ich den Web-Request umgesetzt habe. Es gibt bestimmt noch bessere Wege ๐
Nach dem wir nun die Aktion angelegt haben, kรถnnen wir im nรคchsten Schritt noch den Title der IFTTT-Regel anpassen. Hier empfehle ich auf jeden Fall einen sprechenden Namen zu verwenden, da es sonst spรคter sehr unรผbersichtlicht werden kann. Ich habe hier als Name Arrive at work verwendet.
Nach dem wir nun die Regel fรผr das Ankommen (Betreten) eines Bereichs definiert haben, werden wir im nรคchsten Schritt mit der selben Vorgehensweise noch eine Regel fรผr das Verlassen eines Bereichs erstellen. Hier kannst Du genauso vorgehen wie eben gezeigt, Du musst nur als Trigger-Auslรถser You exit an area angeben. Zudem benรถtigst Du im Web-Request einen anderen Body, um das Verlassen eines Bereichs identifizieren zu kรถnnen. Ich habe hier location:matthias_leavework gewรคhlt.
Jetzt kรถnnen wir mit den ersten Tests des IFTTT-Services beginnen. Wenn wir unseren in der App gewรคhlten Bereich betreten, sollten wir nun in den ioBroker Objekten unter iot.0.services.ifttt die folgende Zeichenfolge sehen:

Ich habe mir ein kleines Blockly-Script erstellt, welches per Trigger auf den IFTTT-Datenpunkt reagiert und den neuen Wert des Datenpunkts per Telegram-Nachricht versendet. So kann ich das Betreten und Verlassen des Bereichs einfacher nachvollziehen und testen.
รber diese Vorgehensweise kannst Du nun Deine eigene Anwesenheitserkennung implementieren. In den folgenden Schritten zeige ich Dir noch, wie ich mir fรผr verschiedene Personen Datenpunkte fรผr den aktuellen Status, aktuellen Standort und Zeitstemper der letzten รnderung angelegt und รผber ein Blockly-Script verwalte.
Im ersten Schritt habe ich nun รผber das folgende Script die Datenpunkte fรผr die Anwesenheitserkennung angelegt.
createState('javascript.0.Anwesenheitserkennung.Matthias', true, {
name: 'Anwesenheit Matthias'
});
createState('javascript.0.Anwesenheitserkennung.Matthias_lastchange', 0, {
name: 'Anwesenheit Matthias LastChange'
});
createState('javascript.0.Anwesenheitserkennung.Matthias_lastdestination', "", {
name: 'Anwesenheit Matthias LastDestination'
});
createState('javascript.0.Anwesenheitserkennung.Jasmin', true, {
name: 'Anwesenheit Jasmin'
});
createState('javascript.0.Anwesenheitserkennung.Jasmin_lastchange', 0, {
name: 'Anwesenheit Jasmin LastChange'
});
createState('javascript.0.Anwesenheitserkennung.Jasmin_lastdestination', "", {
name: 'Anwesenheit Jasmin LastDestination'
});
createState('javascript.0.Anwesenheitserkennung.somebodyAtHome', true, {
name: 'Anwesenheit somebodyAtHome'
});
Im nรคchsten Schritt erstellen wir uns ein Blockly-Script, mit dem wir auf den IFTTT-Datenpunkt reagieren und die entsprechenden Datenpunkte befรผllen.

Der Trigger wird dazu auf den folgenden Datenpunkt erstellt:
iot.0.services.ifttt
Im Trigger wird nun der neue Wert des IFTTT-Datenpunkts mit den definierten Zeichenketten verglichen und dann die entsprechenden Datenpunkte fรผr die einzelnen Personen mit dem Inhalt gefรผllt.

Anbei das Blockly-Script noch als Download:
Im folgenden Screenshot siehst Du nun die einzelnen Datenpunkte fรผr die Personen Jasmin und Matthias. Der Datenpunkt Matthias gibt den aktuellen Status (Anwesend=true) zurรผck. รber den LastChange Datenpunkt habe ich zudem einen separaten Datenpunkt fรผr den Zeitpunkt der letzten รnderung. Zudem schreibe ich noch die Standorte als Zeichenfolge in den Datenpunkt LastDestination. Derzeit nutze ich diesen Datenpunkt noch nicht, ich werde aber hier noch entsprechende Logiken hinterlegen um z.B. Heizprofile besser steuern zu kรถnnen.

Der Datenpunkt somebodyAtHome wird zudem รผber ein weiteres Script befรผllt, er wird einfach als AND-Verknรผpfung auf die Personen Jasmin und Matthias erstellt.
Ich hoffe ich konnte Dir damit das Thema einer wirklich sehr einfachen Anwesenheitserkennung verstรคndlich erklรคren. Bei mir lรคuft diese Form der Erkennung nun seit 2 Jahren vรถllig problemlos.
Auf weiteren Gerรคte kรถnnen wir genau gleich vorgehen (gleicher IFTTT-Key und URL auf dem ioBroker iot-Adapter). Somit kรถnnen wir die Anwesenheitserkennung auf mehreren Gerรคten installieren um damit alle Familienmitglieder erfassen zu kรถnnen ๐
รber Kommentare, Fragen und Anregungen freue ich mich wie immer. Gerne kรถnnt Ihr auch Fragen per E-Mail senden ๐



















Funktioniert das auch ohne Pro Lizenz von ioBroker
Hallo Stephan, Du benรถtigst eine Lizenz, welche IFTTT-Zugriffe erlaubt.
Hallo Matthias,
vielen Dank fรผr die ausfรผhrliche Beschreibung! Das ist ein Weg! Alternativ wรผrde mich die Anwesenheit interessieren, die von der Fritzbox erkannt wird. Das wรผrde mir den Cloud-Dienst ersparen..
Viele Grรผรe
Ulli
Also was ja geht ist รผber den Ping Adapter das Handy pingen aber das ist ja nicht zuverlรคssig.
Wenn der Anwender „WLAN“ nicht deaktiviert hat….und das Polling auf <60sek steht…sollte es doch zuverlรคssig funktionieren? tr-04 bekomme ich erst recht nicht zuverlรคssig an den Start. Auch nicht mit der GitHub-community Version.
Quasi genau so hatte ich es lange Zeit laufen.
Ist echt praktisch und hat immer super funktioniert.
Da ich mein System jetzt komplett neu aufsetzten muss werde ich versuchen es mit deiner sehr ausfรผhrlichen Anleitung wieder so hinzubekommen.
DANKE
Danke fรผr Dein Feedback ๐
Vielen Dank fรผr die tolle Erklรคrung. Leider ist mir noch nicht ganz klar wie das mit mehreren Nutzern funktioniert. Hat jeder User bei Dir einen eigenen Ifttt Account auf seinem Gerรคt und benutzt dort sein eigenes Rezept mit der URL aus dem Iot vom iobroker? Du schreibst gleicher Ifttt Key und Url auf dem iot Adapter, aber damit wรผrde ja jeder genau das selbe Rezept benutzen wo auch der selbe Body drin steht. Es wรคre super nett wenn Du das evt nochmal genauer beschreiben kannst. Verzweifle gerade genau an dieser Umsetzung
Kann bitte gelรถscht werden wegen Dummheit des eigenen Users. Manchmal sieht man den Wald vor lauter Bรคumen nicht. XD Der Ifttt Key und Url bleibt im „Iot Adapter“ gleich und man nutzt einfach die URL mit eigenstรคndigen Ifttt Accounts. Vielen lieben Dank fรผr die tolle Erklรคrung das hat sehr weitergeholfen. Versuche seit Tagen das genau so zum laufen zu bekommen. DANKE
Danke fรผr Dein Feedback ๐
Pingback: Blockly – Beispiel – ComingHome – smarthome-tricks.de
Leider funktioniert das bei mir so gar nicht. ๐
Der Status des IFTTT Services bleibt auf undefiniert.
Cloud und IoT Adapter laufen mit einem ioBroker Pro Key.
Leider funktioniert das ganze bei mir so gar nicht.
Ich habe sowohl im ioBroker als auch im IFTTT alles nach Anleitung eingerichtet.
Als Wert im Status des ifttt Services steht dann jedoch lediglich
Was mach ich falsch?!?
Hallo Daniel
Ich habe das gleiche Problem, hast du eine Antwort bekommen?
Gruร
Olaf
Hallo Matthias,
erst einmal Danke fรผr deine tolle und vor allem sehr ausfรผhrliche Arbeit.
Ich habe es genau so nachgebaut und getestet.
Doch leider funktioniert es bei mir nicht zuverlรคssig.
Manchmal bekomme ich beim verlassen der definierten Zone (ca. 20m Radius um mein Haus)
und manchmal bekomme ich keine Meldung.
Selbiges beim betreten der Zone.
Manchmal klappt es und manchmal nicht.
Woran kรถnnte es liegen?
Da ja manchmal Meldungen kommen gehe ich davon aus, dass ioBroker Pro und IFTTT miteinander kommunizieren.
Gruร Sven
ich bin genau nach deiner Anleitung vorgegangen. Leider bekomme ich kein weder beim kommen noch gehen oder sonst wie den status in iobroker geรคndert.. ich habe testhalber via ifttt Telegramm einen test durchgefรผhrt. Dort รคndert der status.. was mache ich falsch? Ich verzweifle bald….
Wรคre cool wenn du mir helfen kรถnntest.
Moin,
steht denn etwas im ioBroker Log? รndern sich der ifttt Datenpunkt in ioBroker?
Was ich noch nicht richtig verstanden habe muss ich fรผr den Dienst IFTT etwas bezahlen und wo muss ich mich genau anmelden. Geht der IFTT Dienst รผber eine fremde Cloud oder werden die Daten direkt ausgetauscht. Bei iob brauche ich da eine besondere Lizenz die ich kaufen muss oder geht es auch mit der ganz normalen kostenlosen Version.