ioBroker Anwesenheitserkennung mit GeoFency

Dieser Beitrag ist Teil 2 von 3 in der Serie ioBroker Anwesenheitserkennung

Bei uns im Smarthome lassen wir die ioBroker Anwesenheitserkennung mit GeoFency durchführen. Bis zum heutigen Tag ist diese sehr zuverlässig. Geofency ist eine iOS App für das iPhone. Im ioBroker steht ein Adapter zur Verfügung. Die Anwesenheitserkennung mit Geofency arbeitet mit einem geolokalen Bereich – anhand von Geodaten. Die Lokalisierung des exakten Standorts erfolgt über die GeoFency App.

Die Geofency App ist eine Anwendung für das iPhone, um Zeiten an diversen Standorten zu erfassen. Die An- und Abwesenheit eines Ortes werden automatisch von der App ein- respektive ausgecheckt. Durch die Webhook-Funktion ist die Steuerung des eigenen Smarthomes möglich. Diese Funktion werden wir auch in diesem Beispiel verwenden, um einen Request an den iot-Adapter von ioBroker zu senden und damit die An-/Abwesenheit bestimmen.

Was brauchen wir für die ioBroker Anwesenheitserkennung mit GeoFency

Wichtiger Hinweis

Lasst uns nun gemeinsam Schritt für Schritt die Geofency App und den GeoFency Adapter installieren und konfigurieren. Die Einstellungen klären wir im Detail anhand von Screenshots und Beschreibungen.

Aus Sicherheitsgründen habe ich mich für den Weg über die ioBroker Cloud entschieden. Eine Portfreigabe im Router, um die Geodaten in Empfang zu nehmen, stand zu keiner Zeit zur Debatte. Die Empfehlung liegt hier klar beim Cloud/iot-Adapter von ioBroker. Ich werde euch dennoch die direkte Variante zeigen, insofern es diesen Beitrag nicht von der Länge überreizt. Ansonsten werde ich einen weiteren Beitrag schreiben.

Installation und Konfiguration vom GeoFency Adapter

Zuerst installieren wir den ioBroker Geofency Adapter zur Präsenzerkennung. Dazu klicken wir im ioBroker auf Adapter und geben ins Suchfeld Geofency ein. Mit einem Klick auf das +-Symbol fügen wir eine Instanz hinzu.

Installation vom Geofency Adapter in ioBroker
Installation vom Geofency Adapter in ioBroker

Es öffnet sich die Konfigurationsseite des Adapters. Dort tragen wir die folgenden Informationen ein:

Konfiguration vom Geofency Adapter in ioBroker
Konfiguration vom Geofency Adapter in ioBroker

Der Ortsname für Zuhause kann frei ausgewählt werden. Server aktivieren muss nicht aktiviert sein, da die Verbindung nicht direkt, sondern über die Cloud hergestellt wird. Ebenso wenig Relevanz haben die SSL Einstellung, sowie der Benutzername und das Passwort.

iot-Adapter für Geofency Webhook konfigurieren

Im iot-Adapter konfigurieren wir die Services (Dienste), um die Daten des Webhooks in einem Datenpunkt speichern zu können. Zunächst gehe ich davon aus, dass ihr den iot-Adapter installiert sowie lauffähig eingerichtet habt. Nun können wir die Services konfigurieren, damit die Webhooks von der Geofency App an das Ziel kommen. Die Einstellungen im iot-Adapter von ioBroker sehen wie folgt aus.

Navigiert im ioBroker Admin auf Instanzen und geht in die Konfiguration des iot-Adapters (Schraubenschlüssel-Symbol). Dort klickst ihr auf den Reiter: Services und IFTTT.

Konfiguration des iot-Adapters für Anwesenheit mit Geofency
Einstellungen des iot-Adapters für Anwesenheit mit Geofency

Füge zu der Whitelist für Services einen Dienst hinzu und drücke den blau gewordenen Button mit dem Plus-Symbol. Merke dir gleich den Link für eigene Services, indem du ihn in eine Textdatei speicherst. Der Link muss für den Geofency Webhook angepasst werden, indem wir den zuvor eingetragenen Dienst zur URL hinzufügen.

Ich empfehle für weitere Benutzer je einen weiteren Dienst anzulegen, um die Anwesenheit getrennt zu erkennen. Bitte daran denken, dass die URL entsprechend angepasst wird.

Die Webhook URL sieht später so aus.

https://service.iobroker.in/v1/iotService?service=custom_geofency_jan&key=den-gebe-ich-nicht-bekannt&user=test%40test.org&data=<SOME_TEXT>

Geofency App installieren und konfigurieren

Als nächstes laden und installieren wir die Geofency iPhone App und konfigurieren sie wie folgt:

Wir legen einen neuen Ort über das Plus-Symbol an. Hier könnt ihr die Art selbst auswählen, in dem ihr die folgenden Optionen nutzt:

Wichtiger Hinweis
  • Aktueller Ort
  • Adresssuche
  • Kontakte
  • iBeacon
  • Koordinaten

Nach der Erstellung des Orts klicken wir auf die drei Punkte rechts neben dem Ort, um in die Einstellungen zu kommen. Hier bearbeiten wir die Webhook-Einstellungen, sowie die URL und HTTP Methode.

Wir konfigurieren jetzt die Webhookeinstellungen, wie es auf den Bildern zu sehen ist. Die URL Einstellungen und die HTTP Methode werden angepasst, damit der Webhook funktioniert. In den URL Einstellungen hinterlegen wir die oben genannte URL des ioBroker iot-Adapters, sowie weitere optionale Einstellungen für Benachrichtigungen. Die HTTP Methode setzen wir auf POST (JSON enkodiert).

JavaScript für Datenweitergabe vom iot- zum Geofency-Adapter erstellen

Einen Automatismus gibt es nicht, um die Daten vom iot-Adapter zum Geofency-Adapter weiterzureichen. Ein kleines JavaScript hilft uns bei dieser Aufgabe. Es schaut, ob sich der Datenpunkt des iot-Dienstes aktualisiert und reicht die Daten an den Geofency Adapter weiter.

on({id: "iot.0.services.custom_geofency_jan", change: 'any'}, function(obj) {
    try {
        var data = JSON.parse(obj.state.val);
    }
    catch (err) {
        data = null;
    }
    if (! data) {
        log('ERROR: Geofency data invalid: ' + data, 'error');
        return;
    }
    var user = 'jan';
    sendTo('geofency.0', {'user': user, 'data': data});
});

Das Fazit der ioBroker Präsenzerkennung mit Geofency

Die ioBroker Anwesenheitserkennung mit Geofency läuft mittlerweile das dritte Jahr und ist sehr stabil. Die Präsenzsteuerung übernimmt zuverlässig die Lichsteuerung bei Abwesenheit, außerdem wird über Alexa benachrichtigt, wenn ich auf dem Weg vom Büro nach Hause bin. Die einstellbaren Nachrichten der Webhooks sind am Anfang sehr nützlich, wobei es vereinzelt auch Ausfälle geben kann.

Serien NavigationioBroker Anwesenheitserkennung im Smarthome >>ioBroker Anwesenheit mit FritzBox und TR064-Adapter >>

6 Gedanken zu „ioBroker Anwesenheitserkennung mit GeoFency“

  1. Hallo.

    Wir nutzen die oben genannte Konstellation mit App und ioBroker via iot auch schon seit ungefähr 3 Jahren und alles läuft eigentlich sehr zuverlässig. Die einzige Ausnahme ist manchmal die Nutzung im Auto und dann kommt es sehr drauf an, welches Iphone mit welchem Auto:
    Iphone 13 in keinem Auto Probleme.
    Iphone 12 in einem Auto Probleme, im anderen nie
    Iphone Xr in allen Autos Probleme.
    Wenn ich von Problemen spreche, dann ungefähr in 1/4 aller Fälle. Dabei registriert die App immer, ob man drinnen oder draußen ist, jedoch kommt der Webhook nicht unbedingt durch.
    Leider habe ich bisher im Internet nur einmal gelesen, dass jemand das gleiche Problem hatte, es gab dazu aber keine Lösung.

    Gruß Ramon

    1. Hallo Ramon,

      in dem Ausmaß habe ich die gescheiterten Webhooks nicht. Bei mir kommt das einmal im Monat vor. Bin 2-3 mal weg täglich – also 6 Webhooks.

      Manchmal kommt es mir so vor, als wäre kein Internet mobil vorhanden…

      Ich glaube dazu gibt es in der App sowas wie Logfiles.

      Grüße, Jan

      1. Ja, das mit dem mobilen Internet ist mir auch schon aufgefallen, als meine Kinder mal meinten mobile Daten auszuschalten (um ein bisschen Volumen zu sparen) und schon kam kein Webhook mehr an. Leider merkt die App es nicht, wenn keine Datenverbindung besteht und sendet somit die Webhooks später auch nicht nach.

  2. Tolle Anleitung, und heute habe ich mich mal drangewagt. Ich habe auch in der Webhook Url mein Geofence_xxx eingetragen sowie ich den Dienst genannt habe. Was aber kommt bei dem key, wo bei Dir steht: „den-gebe-ich-nicht-bekannt“ rein?

Schreibe einen Kommentar

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

* Bitte akzeptiere die Bestimmungen zum Datenschutz.