meintechblog.de
29Sep/179

Smart Home Advanced: Anwesenheitserkennung über Geofences

Viele Funktionen im Smart Home werden erst richtig "smart", wenn sie durch externe Ereignisse automatisch getriggert werden und man als Nutzer relativ wenig manuell irgendwelche Aktionen einleiten muss. Eine Anwesenheitserkennung ist einer dieser Zusatzfeatures, die so viele tolle Szenarien im Smart Home ermöglichen. In diesem kleinen Howto zeigen wir dir, wie du mit Geofences eine richtig solide Anwesenheitserkennung in deinem Smart Home realisierst, die als Basis für zahlreiche Szenarien im Bereich Sicherheit, Komfort und Energiesparen verwendet werden kann.

Wie von Matthias bereits vor Kurzem im Blogpost Aktionen an Standorte knüpfen – GeoLocation und FHEM gezeigt, gibt es viele Möglichkeiten, die Anwesenheit im Smart Home über Geokoordination zu ermitteln. In diesem Howto zeige ich Dir eine Variante, die auf dem Open Source Smart Home Server FHEM und einer Geofencing-App basiert. Diese Variante gibt es grundsätzlich schon länger, allerdings habe ich erst vor kurzem wieder darauf zurückgegriffen und habe festgestellt, dass die Geo-basierte Anwesenheitserkennung mit dem RESIDENTS-Modul von FHEM sehr gut zusammenspielt. Es ist so schön zu sehen, wie FHEM funktional immer weiter wächst und welche fabelhaften Szenarien sich immer einfacher realisieren lassen. Eine Anwensenheitserkenung unterstützt auf einem preiswerten Raspberry Pi Einplatinencomputer (Affiliate-Link) so viele Szenarien wie Heizungssteuerung, Sicherheitssystem, Push-Benachrichtigungen bei offenen Fenster oder Türen etc.

Smart Home Gear zu diesem Blogpost (Affiliate-Links)

Was sind Geofences und wie nutzt man sie?

Laut Wikipedia wird mit "Geofencing [...] das automatisierte Auslösen einer Aktion durch das Überschreiten einer gedachten Begrenzung auf der Erdoberfläche oder in der Luft bezeichnet." Vereinfacht ausgedrückt, sind Geofences virtuelle Radien (also Kreise) rund um einen zentralen Punkt herum (das Smart Home). Verlasse ich beispielsweise den 100m-Radius rund um mein Smart Home, weiss mein Zuhause, dass ich grundsätzlich gerade unterwegs bin. Verlasse ich kurz darauf auch noch den 1000m-Radius bin ich sicher etwas länger unterwegs. Andersherum kann mein Smart Home auch gewisse Aktionen einleiten, wenn ich mich auf dem Weg nach Hause befinde, wenn ich also z.B. den 1000m-Radius wieder betrete usw. Damit lassen sich sehr viele Szenarien automatisieren, wie z.B. die Steuerung der Heizung bei Ab- und Anwesenheit.

Um Geofences zu nutzen, müssen diese einerseits festgelegt werden und andererseits muss über das Smartphone des Nutzers jedesmal beim Betreten und/oder Verlassen des virtuellen Kreises eine Information an den Smart Home Server gesendet werden.

FHEM-App mit Geofency konfigurieren

Die FHEM APP zur Hausautomation bietet neben der Möglichkeit, auf alle Räume und Devices im FHEM Smart Home zuzugreifen, auch die Möglichkeit, über eine eingebaute Geofency-Funktion auch im Hintergrund die entsprechende Info an den Server zu senden, wenn man als Nutzer einen Radius überquert.

Über die Einstellungen in der App kann die Funktion "Geofency" aktiviert werden.

Im Anschluss ist die Geofency-Funktion aktiv und ebenfalls über das Menü in der App zugänglich.

Hier werden die Geofences definiert, bei deren Verlassen oder Ankunft über eine URL eine Nachricht an den Smart Home Server gesendet wird. Ich nutze hier zwei Geofences: Einmal "home" und einmal "wayhome". Bei erhalten die gleichen Einstellungen.

Die URL ist sowohl bei Ankunft als auch beim Verlassen:

Die IP-Adresse des FHEM-Servers muss natürlich an die eigene Adresse angepasst werden. In meinem Fall ist dies z.B. http://nuc.fritz.box:8083/fhem/geo, also die interne IP-Adresse im Heimnetzwerk.

Mein FHEM Server läuft dabei auf einem Intel NUC (Affiliate-Link), prädestiniert wäre z.B. auch ein Raspberry Pi (Affiliate-Link).

Ich persönlich nutze VPN-On-Demand, d.h. mein iPhone stellt jedesmal, wenn eine ".fritz.box"-Adresse aufgerufen wird (was hier der Fall ist) eine VPN-Verbindung mit meiner Fritzbox her. Nach außen öffne ich meinen FHEM-Server nämlich nicht.

Die Schalter "Auslösen bei Ankunft", "Auslösen bei Verlassen" sollten aktiviert werden. Die restlichen Optionen können zu Beginn zu Testzwecken aktiviert, später im Betrieb jedoch deaktiviert werden.

Für die ID "home" setze ich den Radius auf 100m, für die ID "wayhome" auf 1000m.

App-seitig ist jetzt alles eingestellt und fertig für die Nutzung im Rahmen einer Anwesenheitserkennung.

FHEM Server für die Geolocation-Verarbeitung konfigurieren

FHEM ist für mich nach wie vor die kostenlose eierlegende Wollmilchsau im Smart Home, ob als eigenständiger Smart Home Server (Mit FHEM zum Low Budget-Smart Home – Der neue Einsteigerguide von meintechblog) oder als Daten- und Devicesammler für einen anderen Server wie Loxone (5 Gründe zur Erweiterung deines FHEM-Servers mit Loxone + Howto).

Zunächst wird ein Device mit dem Modul GEOFANCY angelegt, das die eingehenden Standort-Informationen von der FHEM App verarbeitet. Das funktioniert über Eingabe des folgenden Commands in der FHEM-Kommandozeile am oberen Bildrand.

Damit ich alle Anwesenheits-Informationen in einem Raum gebündelt habe, füge ich anschließend das folgende Attribut hinzu.

Jetzt gilt es noch, ein Device mit dem Modul RESIDENTS anzulegen, das speziell zur Verwaltung von Anwohnern in einem Smart Home und der Erfassung deren Anwesenheitsstatus entwickelt wurde.

Mit ein paar Zusatzattributen erweitern wir das Device.

Im Webinterface von FHEM kann im neuen Device jetzt für jeden Bewohner (Roommate) des Smart Homes über "set rgr_Residents addRoommate Christoph" z.B. der neue Benutzer "Christoph" hinzugefügt werden, der anschließend als eigenes Device angelegt wird.

Das Device (Name: rr_Christoph) erweitere ich aus Übersichtlichkeitsgründen noch um ein paar Attribute.

Der Raum mit allen Informationen zur Anwesenheit sieht dann in etwa so aus, wie auf dem Screenshot zu erkennen. Für jeden Bewohner im Smart Home sollte ein eigener "Roommate" angelegt werden.

Im nächsten Schritt testen wir die Verbindung zwischen dem Smartphone und FHEM und lesen so gleichzeitig die UUID, also die Device-ID des Smartphones aus, um einzelne Roomaates zu unterscheiden.

In dem FHEM App auf dem Smartphone kann in den Einstellungen über einen Klick auf "Teste Ankunft" ein Signal an den FHEM Server gesendet werden. Ist alles korrekt konfiguriert, erscheint jetzt in FHEM im Geofancy Device eine Meldung, die z.B. so aussieht.

Die UUID wird jetzt ausgelesen und kopiert.

Im Device für den Bewohner, z.B. hier in "Christoph" wird die UUID dann der Person zugewiesen. Entweder per Webinterface (wie auf dem nachfolgenden Screenshot zu sehen) oder per FHEM-Kommandozeile:

Jetzt sind der Bewohner und sein Smartphone verknüpft und die empfangenen Daten über GEOFANCY werden als Anwesenheitsinformation im RESIDENTS-Modul verwendet.

Dieses Zusammenspiel funktioniert astrein, auch mit mehreren Roommates. Die Logik ist dabei so aufgebaut, dass das zentrale Device "Residents" die Status der einzelnen Roommates kombiniert. Dabei wird der Status "home" vergeben, sobald ein Roommate anwesend ist.

Um die Anwesenheit zu tracken, lege ich zusätzlich für jeden Roomaate noch ein Filelog an.

Damit das Log nicht zugemüllt wird, erweitere ich den entsprechenden Roommate zusätzlich noch um das Attribut

Nun sind dem Geofencing keine Grenzen mehr gesetzt und man kann die Funktion nach Belieben testen. Der Status sollte korrekt in FHEM erfasst werden.

Status und Readings in Smart-Home-Szenarien nutzen

Für jeden Resident bzw. Roommate gibt es eine ganze Reihe interessanter Infos in Form von Readings. Auf einige davon möchte ich kurz eingehen.

Die Werte "durTimerAbsence" und "durTimerPresence" zeigen, wie lange ein Roommate sich im aktuellen Status befindet.

In den Readings "lastArrival" und "lastDeparture" findet man z.B. die Uhrzeiten des letzten Verlassens bzw. Betretens der "home"-Zone.

Ein ganz unten platziertes, aber super interessantes Reading ist der Wert "wayhome". Dieser ist bei Anwesenheit im Smart Home "0" und wechselt auf "1", wenn man bei der hier gezeigten Konfiguration in den 1000m-Radius einfährt. Sobald man anschließend noch den 100m-Radius betritt wechselt der Status der Person von "absent" auf "home" und der Wert wayhome wechselt wieder auf "0".

Der Wayhome-Status lässt sich z.B. hervorragend nutzen, um Heizungssteuerungen auf dem Weg nach Hause zu aktivieren (siehe auch Blogpost Smart Home Basics – In 3 Schritten zur soliden Temperaturregelung). Je nach Beförderungsmittel (zu Fuss, mit dem Rad oder per PKW/Bus etc.) dauert es nach dem Betreten des 1000m-Radius noch zwischen ca. 12 und 3,5 Minuten bis man tatsächlich sein Smart Home betritt. Im Zweifelsfall genug, um die Temperatur z.B. Mittels eines HomeMatic Stellantriebs (Affiliate-Link) bereits in die passende Richtung zu steuern.

Aus meinem täglichen Leben

Für die Nutzung von Anwesenheits-Werten gibt es zahlreiche Einsatzszenarien. Auch wenn ich in diesem Howto nur die Einrichtung der Anwesenheitserkennung beschreibe, möchte ich trotzdem verschiedene Verwendungen gedanklich anreißen, die ich so mehr oder weniger schon genutzt habe oder aktuell nutze.

Der Klassiker: Die Heizungssteuerung. Wie schon in einem Absatz weiter oben angedeutet, ist die Raumregelung ein prädestinierter Fall für die Nutzung von Geo-Locations. Wie im Blogpost Smart Home Basics – In 3 Schritten zur soliden Temperaturregelung beschrieben, sollte eine Smart-Home-Heizungssteuerung in zentralen Räumen auf einem Automatik-Modus basieren, d.h. auf Heizzeiten. Erweitert man diese Logik um Anwesenheitserkennung, lässt sich noch einmal mehr Heizenergie einsparen, auch wenn "ungeplante" Abwesenheiten während der Heizphase auftreten.

Sicherheit: Grundsätzlich bin ich vorsichtig, wenn es darum geht, sog. Alarm-Anlagen mit Smart-Home-Technik, gar auf Funk-Basis, zu realisieren. Echte Alarmanlagen sind manipulationssicher und zertifiziert, was ein Smart-Home-Setup nicht ist. Trotzdem bieten zahlreiche Smart Home Server die Möglichkeit, derartige Alarm-Features umzusetzen. Wer so ein Feature nutzt, kann eine Anwesenheitserkennung dann z.B. hervorragend dafür nutzen, diese zu aktivieren und auch wieder zu deaktivieren.

Push-Messages: Benachrichtigungen auf dem Smartphone sind eine hervorragende Sache. Vor allem im Zusammenhang mit dem Anwesenheitsstatus machen sie jedoch noch mehr Sinn. Eine Mitteilung über ein geöffnetes Fenster macht z.B. nur dann Sinn, wenn ich nicht zuhause bin. Gleiches gilt für erkannte Bewegung an Bewegungsmeldern oder hohem Energieverbrauch während Abwesenheit.

All diese Szenarien benötigen natürlich weitere Hardware und Konfiguration, z.B. HomeMatic Stellantriebe (Affiliate-Link) oder EnOcean Funk-Leistungsmesser (Affiliate-Link).

Smart Home Gear zu diesem Blogpost (Affiliate-Links)

Wir haben dir mit diesem Artikel weitergeholfen? Dann zeig dich erkenntlich und gib uns einen Kaffee aus. Vielen Dank schon mal!




Fragen zu FHEM? Unser neues E-Book hilft dir weiter!

Verpasse keine Inhalte mehr! Trage dich in unseren Newsletter ein und folge meintechblog auf Facebook oder Twitter.

Share Button
Christoph

Christoph

berichtet seit Juni 2012 auf meintechblog.de über seine Erfahrungen zu Smart Home und Hausautomation und beschäftigt sich außerdem mit Smart Grids. Mehr Infos
Christoph
Kommentare (9)
  1. Und wieder eine tolle und umfassende Erläuterung, vielen Dank dafür.

    Aber was machen die, die kein Apfelfon ihr Eigen nennen?

  2. Hallo.
    Da ich leider nicht zu dem Kreis der Iphone-Besitzer gehöre, gibt es für Android eine ähnliche APP, die mir diese Funktionalität für Geofence bereitstellt?

  3. Auch ein sehr gutes Geofencing Tool für iOS ist dieses hier:

    Geofency Zeiterfassung von Karl Heinz Herbel
    https://itunes.apple.com/de/app/geofency-zeiterfassung/id615538630?mt=8

    Müsste eigentlich genauso mit dieser Beschreibung hier klappen.

  4. Hallo,
    gibt es für Android auch die Möglichkeit VPN-On-Demand, einzurichten? Oder muss ich wenn dieses Projekt über die egi.geofence App gelöst wird zwingend den FHEM Server im Internet freigeben? Hat jemand damit schon Erfahrungen gesammelt, ob es mit einem Android Handy auch so funktionieren kann, so wie Christoph es ihr dankenswerterweise erklärt hat?

  5. Die beiden Geofences sind bis auf die Radien gleich.

    • Hallo Stephan,

      genau! Das ist der Sinn dahinter. Der kleine Radius ist die Home-Zone, der etwas weiter gefasste ist die "Wayhome"-Zone. Bei beiden ist natürlich mein Smart Home das Zentrum.

      Viele Grüße
      Christoph


Dein Kommentar

Trackbacks sind deaktiviert.