Die Anwesenheitserkennung von Smartphones mit Fritzbox und FHEM basiert auf der Idee mit Hilfe des Smartphones zu erkennen wer zuhause ist. Dabei wird einfach überprüft welche Smartphones im häuslichen WLAN angemeldet sind, um dann im Smarthome automatisch darauf zu reagieren. Wie die Anwesenheitserkennung von Smartphones mit Fritzbox und FHEM funktioniert, zeige ich dir in dieser einfachen Schritt für Schritt Anleitung.

Anwesenheitserkennung von Smartphones mit Fritzbox und FHEM

Die Anwesenheitserkennung von Smartphones mit Fritzbox und FHEM macht vor allem dann Sinn, wenn man das Smarthome darauf abstimmen möchte ob jemand zuhause ist oder nicht. Passende Smarthome Ideen für die Anwesenheitserkennung findest du wie immer am Ende. In den folgenden Schritten zeige ich dir erst einmal, wie du die Anwesenheitserkennung von Smartphones mit Fritzbox und FHEM einrichten kannst.

Fritzbox in FHEM einbinden

Bevor du mit die Anwesenheitserkennung von Smartphones mit Fritzbox und FHEM einrichten kannst, musst du natürlich zuerst deine Fritzbox in FHEM einbinden.

Wenn du anschließend deine Fritzbox in FHEM aufrufst, siehst du unter Readings auch alle angemeldeten WLAN Geräte. Dort findest du eben auch die Smartphones mit ihrer Mac-Adresse und dem auf der Fritzbox hinterlegten Namen.

WLAN Geräte die nicht im Heimnetz angemeldet sind, verschwinden aus der Liste. Um zu erkennen welches Smartphone angemeldet ist, prüft man einfach ob es in den Readings der Fritzbox erscheint oder eben nicht.

Eigene Template Datei erstellen

Wenn du noch keine eigene Template Datei erstellt hast, solltest du das nun tun. Wie genau das geht kannst du unter Eigenen Perl Code in FHEM einbinden nachlesen.

Code Schnipsel in Template Datei einfügen

Der folgende Code Schnipsel aus dem FHEM Wiki überprüft ob eine bestimmte Mac Adresse in den Readings aller eingebundenen Fritzboxen und Repeater vorhanden ist.


sub checkAllFritzMACpresent($) { # Benötigt: nur die zu suchende MAC ($MAC), # Es werden alle Instanzen vom Type FRITZBOX abgefragt # # Rückgabe: 1 = Gerät gefunden # 0 = Gerät nicht gefunden my ($MAC) = @_; # Wird in keiner Instanz die MAC Adresse gefunden bleibt der Status 0 my $Status = 0; $MAC =~ tr/:/_/; $MAC = "mac_".uc($MAC); my @FBS = devspec2array("TYPE=FRITZBOX"); foreach( @FBS ) { my $StatusFritz = ReadingsVal($_, $MAC, "weg"); if ($StatusFritz eq "weg") { } elsif ($StatusFritz eq "inactive") { } else { # Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät am Netzwerk angemeldet. $Status = 1; } } return $Status }

Du kannst den Codeschnipsel nun an der richtigen Stelle in die 99_myUtils.pm einfügen und die Datei speichern.

FHEM - 99_myUtils.pm - Perl Code einfügen

Anwesenheitserkennung in FHEM einbinden

FHEM - Befehle eingebenVon allein macht der zuvor eingefügte Code natürlich noch nichts. Wir müssen nun noch eine Abfrage für jedes einzelne Smartphone erstellen, das wir überprüfen wollen. Dazu gibst du folgendes in die Befehlszeile in FHEM ein:


define Name PRESENCE function {checkAllFritzMACpresent("AA:BB:CC:DD:EE:FF")} 60 60

Dabei ersetzt du „Name“ durch einen beliebigen Namen, beispielsweise den des Smartphone Besitzers. Und anstatt „AA:BB:CC:DD:EE:FF“ fügst du natürlich die passende Mac-Adresse ein, die du in deiner Fritzbox oder in den Readings der Fritzbox unter FHEM findest.

FHEM - Menü - Raum EverythingDie Anwesenheitsabfragen findest du links im Menü bei „Everything“ unter dem Punkt „PRESENCE“. Dort wird der entsprechende Name aufgeführt und dahinter der Status mit „absent“ für abwesend und „present“ für anwesend.

Du kannst die einzelnen Presence Abfragen natürlich auch wieder in einen beliebigen Raum stecken, indem du das Attribut „room“ in den gewünschten Raum änderst.

Anwesenheitserkennung mit FHEM - Presence

Log Datei für Anwesenheitserkennung erstellen

Wenn man möchte, kann man die Daten der Anwesenheitserkennung noch in eine separate Log Datei schreiben lassen. Auf diese Weise kannst du einfacher über einen längeren Zeitraum nachvollziehen, ob die Anwesenheitserkennung wie gewünscht funktioniert.

FHEM - Befehle eingebenDazu definieren wir zuerst eine neue Log Datei, indem wir folgenden Befehl in FHEM in die Befehlszeile eingeben:


define FileLog_Smartphones FileLog ./log/Smartphones-%Y.log Mutter:.*|Vater:.*|Kind:.*

Damit heißt die neue Log Datei „FileLog_Smartphones“ und wird im entsprechenden Ordner unter dem Dateinamen „Smartphones-Jahr.log“ gespeichert. Anschließend wird definiert was in die Datei geschrieben werden soll. Du musst hier natürlich Mutter, Vater und Kind durch die Namen ersetzen, die du auch zuvor für die einzelnen Presence Abfragen definiert hast.

FHEM - Menü - Raum EverythingDen Eintrag für die Log Datei findest du nach einem Klick auf „Everything“ links im Menü unter dem Punkt FileLog. Du kannst den FileLog Eintrag natürlich auch in einen beliebigen Raum verschieben, indem du das Attribut „room“ änderst.

Anwesenheitserkennung in FHEM graphisch darstellen

Sobald du eine Log Datei erstellt hast, kannst du diese auch verwenden, um die Anwesenheitserkennung in FHEM graphisch darstellen zu lassen.

Smarthome Ideen für die Anwesenheitserkennung

  • wenn niemand zuhause ist: Notbeleuchtung und vergessene Beleuchtung ausschalten, Alarmanlage aktivieren, Anrufbeantworter einschalten, Heizbetrieb reduzieren, Therme abschalten, Garagentor schließen
  • wenn jemand nach hause kommt: Notbeleuchtung einschalten, Außenbeleuchtung einschalten, Anrufbeantworter abspielen, Heizbetrieb erhöhen, Therme anschalten, Begrüßung abspielen, Garagentor öffnen, Alarmanlage deaktivieren