Smart Home Advanced: Anwesenheitserkennung über Geofences

IM EINSATZ?

Dann schau dir UNSEREN LOXKURS an und profitiere von unserem Wissen!

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)

  • Klicken Sie auf den unteren Button, um den Inhalt von ws-eu.amazon-adsystem.com zu laden.

    Inhalt laden

  • Klicken Sie auf den unteren Button, um den Inhalt von ws-eu.amazon-adsystem.com zu laden.

    Inhalt laden

  • Klicken Sie auf den unteren Button, um den Inhalt von ws-eu.amazon-adsystem.com zu laden.

    Inhalt laden

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:

http://IpAdresseDesFhemServers:8083/fhem/geo

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.

define geofancy GEOFANCY geo

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

attr geofancy room Anwesenheit

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.

define rgr_Residents RESIDENTS

Mit ein paar Zusatzattributen erweitern wir das Device.

attr rgr_Residents group Anwesenheit
attr rgr_Residents rgr_showAllStates 1
attr rgr_Residents rgr_states home,gotosleep,asleep,awoken,absent,gone
attr rgr_Residents room Anwesenheit

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.

attr rr_Christoph alias Christoph
attr rr_Christoph group Anwesenheit
attr rr_Christoph room Anwesenheit

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:

attr rr_Christoph rr_geofenceUUIDs xxxxxx-xxxxx-xxxxx-xxxxxxxx

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.

define FileLog_rr_Christoph FileLog ./log/rr_Christoph-%Y.log rr_Christoph

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

attr rr_Christoph event-on-change-reading state,wayhome

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)

  • Klicken Sie auf den unteren Button, um den Inhalt von ws-eu.amazon-adsystem.com zu laden.

    Inhalt laden

  • Klicken Sie auf den unteren Button, um den Inhalt von ws-eu.amazon-adsystem.com zu laden.

    Inhalt laden

  • Klicken Sie auf den unteren Button, um den Inhalt von ws-eu.amazon-adsystem.com zu laden.

    Inhalt laden

19 Kommentare
  1. 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?

  2. 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.

  3. 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?

    1. Hallo GE, in dem ersten Blog https://meintechblog.de/2017/07/aktionen-an-standorte-knuepfen-geolocation-und-fhem/ ist die gesamte Einrichtung von DynDNS bis zum Apache Reverse Proxy beschrieben. Das sollte weiterhelfen. Den FHEM Server werde ich nicht direkt im Internet freigeben und den Apache Reverse Proxy auf einem dedizierten gehärteten System bereitstellen. So meine Planung. Gruß Axel

    1. 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

  4. schönen guten morgen,
    ich hatte nach wie vor nicht die zeit mich mit fhem auseinander zu setzen. und bevor ich jetzt die anleitung durchexerziere hätte ich fragen.
    folgende ausgangssituation:
    Loxone
    Loxberry
    3 Personen im HH
    KEIN fhem bis jetzt

    1. ich würde jetzt fhem am loxberry installieren, ein update machen, die anleitung hier befolgen und danach die zweite anleitung zur einbindung in loxone angehen – funktionert das so “einfach” oder muss ich da an fhem noch mehr konfigurieren?
    2. müssen alle personen die fhem app installiert haben? (vermutlich ja, aber vielleicht gehts ja auch anders?)

    Danke!

  5. Guten Tag,

    Da ich nicht bereit bin irgendeiner Firma meine Bewegungsprofil zu überlassen und eh schon mit On Demand VPN sehr zufriedenstellend arbeite, wäre der beschriebene Weg über die APP perfekt. Leider scheint die beschriebene App inzwischen nicht mehr verfügbar zu sein im App Store?

    – Gibt es allenfalls eine alternative App welche dieses auch unterstützt direkt in der App drin?
    – Wie hiess die ursprüngliche App und hat allenfalls noch jemand eine ältere Version in seinem iTunes Repository liegen die er bereit wäre zu teilen (“z.b. in …\Eigene Musik\iTunes\iTunes Media\Mobile Applications\”) ?

    Hätte allenfalls noch jeman die noch

  6. Hallo zusammen,

    Leider ist die FHEM App zur Hausautomatisierung leider im App-Store nicht mehr verfügbar. Beim Wechsel auf ein neues Handy, ist eine Anwesenheitserkennung über diese Form der FHEM-App Loxone Verbindung nicht mehr möglich.

    Viele Grüße
    Niels

    1. Warum brauchst Du da FHEM aus dem AppStore fürs Handy?
      Der FHEM läuft auf nem Raspberry oder FritzBox!
      Auf dem Handy brauchst Geofency

    2. Hallo Christoph,

      anscheinend habe ich mich nicht klar genug ausgedrückt.
      Natürlich ist FHEM auf einem Raspberry, jedoch das Geofancy App (hieß FHEM App im App Store und wird im Blog auch so beschrieben) nicht mehr im App Store verfügbar.
      Welches andere Geofancy App verwendest du, gibt’s Alternativen?

      Danke
      Niels

  7. Hallo,
    wenn ich die letzten 10? Kommentare lese, dann haben fast alle nach einer alternativen (möglichst kostenlosen) Alternative zu der von dir verwendeten App (https://itunes.apple.com/de/app/fhem-app-zur-hausautomation-mit-fhem/id955104910?mt=8) gefragt! Diese gibt es nicht mehr im Appstore.
    Hast du eine alternative App-Empfehlung? Evtl solltest du den Artikel aktualisieren…

Schreibe einen Kommentar zu Niels Antworten abbrechen

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

Das könnte dir auch gefallen