Fibaro Anwesenheit per iPhone, Smartphone oder TV prüfen

Bild @ crissxcross
Fibaro HC2 und iPhone Bild @ crissxcross
Geschrieben von crissxcross

Ein Haus kann erst smart sein, wenn es weiß wann seine Bewohner Zuhause sind und wann nicht, um so die Heizung herunter zufahren und Standby Geräte abzuschalten um Strom zu sparen.

Natürlich ist das mit der Fibaro App über die GPS Funktion möglich. Allerdings gehören die Smartphones heutzutage nicht wirklich zu den Akkuwundern und das aktivierte GPS trägt sicher nicht zu einer besseren Akkuleistung bei.

Im folgenden möchte ich dir ein kleine LUA Script zeigen, mit welchem es möglich ist die Anwesenheit von IP basierten Geräten zu überprüfen. Über einen sogenannten PING wird eine Aufforderung an das Netzwerkgerät gesendet. Ist das Gerät im Netzwerk per LAN oder WLAN verfügbar so wird es eine Antwort geben. Diese Antwort kann in einer Variable der Fibaro vermerkt werden um diese dann in Szenen zu verwenden. Wie du Variablen erstellen kannst, habe ich hier schon einmal beschrieben. (Fibaro HCL Tageszeit Variable anlegen)

Es lassen sich über diesen Weg zum einen Smartphones anpingen - sie sind schließlich heutzutage unser Begleiter, so das man herleiten kann wenn das Smartphone nicht im WLAN ist, so bin ich auch nicht Zuhause.

Man könnte aber auch ein Smart TV anpingen. Ist dieser eingeschalten, so wird er antworten. Ist er ausgeschalten und nur im Standby, so wird er nicht antworten. In diesem Fall könnte man eine über Szene das HiFi Board abschalten um Strom zu sparen.

Variable anlegen

Zunächst benötigst du eine Variable, welche später vom System mit dem Anwesenheits-Zustand gefüllt wird. Diese kannst du auf der Weboberfläche des Home Center 2 unter dem Menüpunkt: Steuerungen > Variable Steuerungen -> Variable anlegen.

Fibaro Variable anlegen

Fibaro Variable anlegen

Benenne diese frei nach deinen Wünschen. Im Beispiel verwende ich als Namen der Variable "SamsungTVWHZ" welche zwei Zustände annehmen kann, 0 und 1. Ist der Samsung TV eingeschalten und somit erreichbar, wird die Variable auf 1 gesetzt. Ist er ausgeschalten und antwortet nicht, so nimmt diese den Wert 0 an.

Samsung TV anpingen

Um das Script auszuführen, habe ich unter Module > hinzufügen ein neues virtuelles Modul erstellt welches den abstrakten Namen "Anwesenheit" von mir erhalten hat. Das Feld für IP Adresse und TCP Port kann leer bleiben. In der Registerkarte "Erweitert" kannst du nun einen Button hinzufügen und setze den Punkt vor "LUA Code".

Fibaro LUA Script zum PING senden

Fibaro LUA Script zum PING senden

Als Script verwende folgendes:

Folgendes musst du nun im Script gegen deine Werte und Variablen ersetzen. In der ersten Zeile findest du die IP Adresse welche angepingt werden soll. Ändere diese auf die IP Adresse deines TV Gerätes bzw. auf die IP Adresse des Gerätes dessen Zustand du ermitteln möchtest. Die IP Adresse wird gefolgt vom Port. Im Beispiel ist es der Port 55000 für Samsung Smart TV Geräte.

Danach musst du die Variable definieren, welche du zuvor angelegt hast.

Sowie auch den Ausgabetext, welcher als Antwort unter deinem virtuellen Modul erscheinen wird, um dir zu signalisieren welcher Zustand ermittelt wurde:

Nun ist das virtuelle Modul einsatzbereit. Sobald du den Knopf des virtuellen Gerätes drückst, wird das Script den Ping senden und die Antwort in die Variable schreiben. Unter dem virtuellen Modul wird der Log Text ausgegeben.

Fibaro virtuelles Modul prüft Netzwerkstatus von IP Geräten

Fibaro virtuelles Modul prüft Netzwerkstatus von IP Geräten

Fibaro - Anwesenheit per iPhone prüfen.

Seit der iOS 6 Firmware, schaltet das iPhone im Lockscreen das WLAN Modul ab. Dadurch reagiert das iPhone nicht auf einen Ping, auch wenn es in Reichweite des WLAN ist. Dennoch ist es möglich zu prüfen ob das iPhone Zuhause ist. Den Workaround hatte ich schon einmal am Beispiel mit der Homematic beschrieben (Homematic Anwesenheit per Smartphone oder iPhone prüfen). Das iPhone muss also durch eine Pushnachricht aufgeweckt werden, danach kann der Ping durchgeführt werden.

Hierzu kannst du im Menü des Fibaro Home Center unter dem Menüpunkt: Steuerungen > Meldugen eine neue Nachricht anlegen. Titel und Inhalt der Nachricht kann frei vergeben werden. Nach einem Klick auf speichern, steht diese Message nun auch als Option in Szenen zur Verfügung.

es können mehrere Mitteilungen angelegt werden

es können mehrere Mitteilungen angelegt werden

Weiterhin benötigst du auch für das iPhone eine neue Variable, sowie einen neuen Button im eben erstellen virtuellen Modul. Das Script bleibt gleich. Auch hier musst du wieder die IP Adresse auf die deines iPhone anpassen, als Port verwende 62078. Vergesse nicht die Variable im Script anzupassen.

Fibaro LUA Script pingt iPhone an

Fibaro LUA Script pingt iPhone an

In der Szene, kann nun vor dem Auslösen des virtuellen Moduls eine Pushnachricht abgesetzt werden. Die zuvor angelegte Nachricht kann ebenso wie der Empfänger ausgewählt werden.

Fibaro - Szene sendet Pushnachricht und aktiviert virtuelles Modul

Fibaro - Szene sendet Pushnachricht und aktiviert virtuelles Modul

Als Auslöser empfiehlt sich hier weniger ein Zeitintervall, denn das wird sicher etwas nervig wenn jede Minute eine Push Mitteilung kommt. Dies lässt sich über einen Tür / Fensterkontakt lösen. Sobald die Haustür geöffnet wird, startet diese Szene. Das ganze solltest du zeitverzögert machen, denn wenn du das Haus verlässt, musst du erstmal aus der Reichweite deines WLANs gehen. So kannst du das versenden der Pushnachricht sowie das ausführen des PING (drücken der Taste des virtuellen Moduls) in der Szene über die Eingabe der Zeit in Sekunden im roten Feld verzögern.

Das virtuelle Modul wird auch hier die Variable füllen, je nachdem ob du das Haus verlässt oder zurück kehrst. Somit ließe sich die Heizung je nach Anwesenheit regeln. Das Licht einschalten sobald man nach Hause kommt, ist mit dieser Prüfung noch nicht perfekt, da die Pushnachricht und der Ping auch zeitverzögert gesendet werden, wenn du nach Hause kommst. Dafür ist es leider zu träge.

Sicher kann der eine oder andere von euch das ganze komplett auf LUA bauen. Die Challenge ist hiemit freigegeben :-)

Diesen Blogpost hat geschrieben ...

crissxcross

Chris, Gründer und Blogger von siio.
Gelernter IT-Systemelektroniker, seit vielen Jahren beruflich als Produktmanager im Smart Home unterwegs. Technikverliebter Familienvater, Apple Fan. Nach einigen Jahren Stadtleben wieder froh auf dem Land zu sein.

23 Kommentare

  • Hey, danke für diese tolle Anregung.
    Allerdings bin ich wohl zu doof. Ich will mein Smartphone anpingen und habe die IP-Adresse ersetzt. Nun fehlt mir noch ein offener Port - wie finde ich den? Oder noch besser: wie kann ich auf meinem Telefon (Android) einen beliebigen Port dauerhaft öffnen?
    - Ihr merkt: Netzwerk Newbie :-)

    • Das ist genau mein Problem. Ich finde auch keinen offenen Port auf meinem Smartphone.

      Warum benötige ich überhaupt einen offenen Port? Von meinem Rechner kann ich doch auch im lokalen Netz einen Ping absetzen.

      • Hallo Zusammen,

        mit einem Samsung Galaxy S5 und Android 5.0 funktioniert es bei mir mit dem Port 16720.
        Ansonsten kann man mit dem Tool "nmap" einen Portscan laufen lassen.

        Der ping basiert auf dem ICMP Protokoll und hat daher keinen Port.

        • Hallo Maxx4live

          Funktioniert einbandfrei mit Port 16720 auf Android.
          Sobald der Haustürkontakt ausgelöst hat, wird 180s später die Szene mit dem Ping ans Handy gestartet. Ist dieses nicht mehr im W-Lan wird der Status auf Away gesetzt. Umgedreht natürlich genauso. Top!

  • Könnte man nicht auch eventuell den Router zb die Fritz Box fragen oder sich zunutze machen, den die weiß ob das Handy im Netzwerk ist oder nicht und das ein - aus loggen ist sehr Zeit nah. Ist nur eine idee.

  • How dit you do it whit a android phone. is it the same script for VD. and how dit you get a open port open on android phone

    thanks
    regards

  • Hi,

    wäre ein Ping-Device als virtuelles Modul auch im HCL möglich? Da ich ja keinen LUA Code direkt in der GUI ändern kann müsste ich ja ein virtuelles Modul zum Import haben, oder? Gibt es dafür im Netz evtl. einen Generator?

    Gruß
    Sascha

  • Hi,

    also mit einem SAMSUNG J Serie ( TIZEN OS ) funktioniert der Ping auf Port 15500.

    Hat jemand vielleicht noch weitere Info's zum Steuern der J Serie (TIZEN) TV - Geräten ?
    Ich würde gerne die APi ansprechen und das Gerät steuern.

    Kann mir außerdem jemand die tcpSocket:write funktion etwas weiter erklären ?

    DANKE und viele Grüße aus Köln

  • Wie kann ich realisieren, dass zwei Personen (Handys) abgefragt werden? Zur Setzung der "Home" Variable aber eine anwesende Person davon reicht.

  • Hallo Zusammen,

    falls jemand den selben Fehler gemacht wie ich und sich ein Windows Phone (Nokia Lumia) gekauft hat
    hier ist der Port 32000 frei :-)
    zusätzlich muss man noch am Router dem Telefon (findet man über die MAC Adresse) eine fixe IP vergeben weil diese Hightech Handy das nicht kann :-)

    lg
    Duschi

  • Hi, hat hier keiner eine Idee?
    Habe es auch schon mit dem Samsung Galaxy S5 probiert. Geht aber auch nicht.
    Vielen Dank im Voraus.
    dougdoug

  • Hi,

    ich habe am Anfang ein bisschen mit Fhem gespielt. Das ist an sich ja ne Eierlegendewollmilchsau was die Hausautomatisierung angeht. Jedoch war die Optik nicht so meins, deswegen Fibaro.

    Ich hatte die Anwesenheitserkennung über die Fritz!Box laufen. Da ich nicht mega begabt bin was Linux angeht und erst recht nicht LUA hab ich mir gedacht vielleicht kann euch ja der FhemWikieintrag unterstützen um eine Fritz!Box modul zu gestalten. Ich würde mich freuen :-)

    Vielleicht geht mein teuflischer Plan ja auf und jemand hat lust drauf und veröffentlicht es :-D

    viele grüße

  • Hallo zusammen,
    ich hatte zunächst auch Schwierigkeiten den Port bei meinem Galaxy S4 und Xperia Ray zu finden.
    Diverse Programme hatten keinen Erfolg. Mit NMap (bzw. der graphischen Oberfläche ZenMap) funktioniert es sehr gut.
    Oben links die IP des Smartphones eingeben (diese sollte natürlich statisch sein), rechts "regular scan" auswählen und auf Scan klicken.
    Der Port wird in grüner Schrift angezeigt.
     
    Interessanter Weise wechselt der Port meines Galaxy S4 gelegentlich. Weiß jemand woran das liegen könnte?
     
    Ports Galaxy S4: 1030 oder 1034
    Xperia Ray: 5001

    Grüße
    Mr.Coffee

  • Hallo zusammen
    so wie es aussieht wird der ping nicht mehr bei anklicken des Moduls durchgeführt.
    Könnte das Update liegen? lässt sich irgendwie ein Intervall des Pings einfügen?

  • Hi, Ich habe dies Anleitung für Samsung Galaxy S5 versucht umzusetzen. Ging leiter nicht, daher habe ich überlegt wie ich den PING anders hinbekomme. Da ich auch ein RasPi mit der HA-Bridge nutze (Es gibt hier auch ein Beitrag dazu. ) habe ich ein script gebasteltet. Dieses lasse ich mit den Crontab alle 2 minuten ausführen. dabei ist es egal ob es einen offenen Port gibt oder nicht, daher geht es mit allen Geräten. Geht super :)

Gib deinen Senf dazu!

Cookie Consent mit Real Cookie Banner