Anwesenheitserkennung: Unterschied zwischen den Versionen

Aus FHEMWiki
Zeile 65: Zeile 65:


=== FHEM Ausführung von User boxusr99/fhem zu root ändern ===
=== FHEM Ausführung von User boxusr99/fhem zu root ändern ===
Eine detaillierte Beschreibung um FHEM wieder unter root auf der FritzBox zu starten findet ihr in dem Artikel [[FritzBox: fhem unter root starten]]


== Bluetooth-Überwachung von Geräten durch den FHEM Server ==
== Bluetooth-Überwachung von Geräten durch den FHEM Server ==

Version vom 6. Mai 2013, 17:24 Uhr

Viele User führen bereits eine eigene Anwesenheitserkennung durch. Diese basiert in den meisten Fällen auf Ping Checks oder bei FritzBoxen über den Befehl ctlmgr_ctl. Diese Lösungen können aber je nach Aufbau und Funktion FHEM massiv beeinträchtigen. Aufgrund des Aufbaus vom FHEM kann dieses dadurch für mehrere Sekunden zum völligen Stillstand gebracht werden.

Daher gibt es nun ein Modul, welches eine zuverlässige Anwesenheitserkennung bietet, ohne dabei FHEM bei der Ausführung zu beeinträchtigen.

Vorüberlegungen

Generell gibt es mehrere Ansätze um Anwesenheitserkennung mit Handys/Smartphones durchzuführen.

  • via PING Checks im gesamten WLAN
  • Aktivitätsprüfung auf einer FritzBox
  • Bluetooth Checks in der gesamten Wohnung
  • via überwachung der per DHCP vergebenen Adresse auf einer Airport Basestation per snmp

Dabei gilt bei der Auswahl der Art darauf zu achten wie sich das jeweilige Device im Bereich WLAN/Bluetooth verhält.

Es gibt Geräte, welche ihr WLAN/Bluetooth auch im Standby ständig an haben und auf Anfragen antworten können (fast alle Android-Geräte). Gerade bei Tests über WLAN kann sich das aber signifikant auf die Akku Leistung auswirken.

Andere Geräte wiederum schalten WLAN im Standby Betrieb aus um Akku zu sparen. Bluetooth hingegen bleibt weiterhin aktiviert und kann auf Anfragen reagieren. (iPhone)

Wenn man bei einem iPhone die Funktion "über WLAN synchronisieren" aktiviert hat, so ist dies auch im Standby jederzeit pingbar wenn der Recher auf dem iTunes zum synchroniseren läuft auch an ist. Ansonsten ist bei iPhone Geräten nur die Aktivitätsprüfung mit einer FritzBox oder das überwachen der DHCP lease auf einer Airport Basestation wirklich zuverlässig.

Auch wenn man Bluetooth aktiviert hat, so bleiben einige Handys erst dann empfangsbereit, wenn sie bereits zu irgend einem Bluetoothgerät gekoppelt wurden. Sind diese Geräte noch nie gekoppelt worden, so deaktivieren diese ihren Bluetooth Empfänger beim verlassen des Bluetooth-Menüs im Gerät (iPhone).

Hier gilt es vor allem auszuprobieren wie stark der Akku durch eine Anwesenheitserkennung beeinträchtigt wird. Entscheidend ist hier in welchem Abstand man eine Anwesenheitserkennung durchführt. Viele Abfragen wirken sich stärker auf den Akku aus als wenige. Wenige Abfragen bieten aber keine zuverlässige und zeitnahe Erkennung.

Da sich jedes Gerät hierbei anders verhält, kann man hier pauschal keine allgemeine Vorgehensweise empfehlen.

Das PRESENCE Modul

Das PRESENCE Modul bietet für die Anwesenheitserkennung mehrere Varianten an. Diese sind aktuell folgende:

  • lan-ping - Das überwachen via PING Checks, welche durch den FHEM Server versandt werden.
  • fritzbox - Das überwachen von Geräten auf einer FritzBox via ctlmgr_ctl (Nur auf einer FritzBox möglich)
  • local-bluetooth - Das überwachen via Bluetooth Checks, welche vom FHEM Server direkt durchgeführt werden (angeschlossener Bluetooth-Stick und die Software bluez voraussgesetzt)
  • lan-bluetooth - Das überwachen von Bluetoothgeräte, über Netzwerk. Auf einer oder mehreren Maschinen im Netzwerk (z.B. Raspberry Pi) läuft eine Presence-Daemon, welcher nach Bluetooth-Geräten sucht. Um mehrere Presence-Daemon mit FHEM zu verbinden, gibt es den Collector-Daemon, welche sich zu allen Presence-Damons im Netzwerk verbindet und das Ergebnis von allen zusammenfasst.

Ping-Überwachung von Geräten im WLAN/LAN

Um ein Gerät via Ping zu überwachen definiert man folgendes in der fhem.cfg:

define Handy PRESENCE lan-ping 192.168.0.30

Dadurch wird die IP-Addresse 192.168.0.30 aller 30 Sekunden geprüft, ob sie erreichbar ist. Wenn sie erreichbar ist, ist der Status "present" (anwesend), ansonsten "absent" (abwesend)

Mann kann das Timeout verändern indem man es als zusätzlichen Wert hinten anhängt:

define Handy PRESENCE lan-ping 192.168.0.30 60

Nun würde das Handy aller 60 Sekunden geprüft werden.

Nur wenn man bei einem iPhone/iPad die Funktion "über WLAN synchronisieren" aktiviert hat, so ist dies auch im Standby zuverlässig pingbar. Standardmäßig deaktivieren Apple-Geräte ihr WLAN im Standby-Betrieb um Akku zu sparen.

FritzBox: direktes Abfragen der Aktivität via ctlmgr_ctl

Eine sehr häufige und auch zuverlässige Methode ist auf einer FritzBox die Abfrage mittels ctlmgr_ctl Befehl. Über diesen lassen sich alle Geräte abfragen ob sie aktiv sind. Ist ein Gerät aktiv, so gilt es als anwesend.

Dieser Modus kann allerdings nur in FHEM Installationen direkt auf einer FritzBox verwendet werden. Desweiteren muss FHEM unter dem User root laufen. Um ein Gerät zu überwachen wird lediglich der Gerätename benötigt, so wie er unter dem Menüpunkt "Heimnetz" auftaucht. In der fhem.cfg sieht dies folgendermaßen aus.

define Handy PRESENCE fritzbox iPhone-4S

FHEM Ausführung von User boxusr99/fhem zu root ändern

Eine detaillierte Beschreibung um FHEM wieder unter root auf der FritzBox zu starten findet ihr in dem Artikel FritzBox: fhem unter root starten

Bluetooth-Überwachung von Geräten durch den FHEM Server

Bluetooth-Überwachung von Geräten durch verteilte Agenten in der Wohnung (presencd/collectord)

Jeden Raum einzeln ansprechen (presenced)

Alle Räume gemeinsam ansprechen (collectord)

Überwachung von Geräten mit Perl-Code

Beispiel DHCP überwachung auf Airport Basestation

Beispiele für die Nutzung der Anwesenheitserkennung

Hier sollen Beispiele für die Nutzung von PRESENCE aufgezeigt werden.

Abschalten aller Verbraucher (Licht, Musikanlage) beim Verlassen der Wohnung