René Schimmelpfennig

Webdeveloper 👨‍💻, Fahrrad-Aktivist 🚴‍♀️, Entertainer 🤡, Tüftler 👨‍🔧 & Eichhörnchen-Züchter 🐿️

Anwesenheitserkennung

Nachdem ich den SmartDisplay die ersten Tage mein Eigen nennen durfte wollte ich, dass er möglichst nur dann an ist, wenn ich mich in meiner Wohnung aufhalte.

Da er sich von Hause aus mit einem MQTT Broker verbinden lässt, war es um so einfacher Ihn über Node-Red anzusteuern. Der AWTRIX-Server unterstützt über die MQTT API das Aus-/ und Einschalten des Displays: Sind die LEDs aus, verbraucht er deutlich weniger Strom. Im Node-Red war es leicht eine Zeitsteuerung zusammen zu klicken: Morgens zum Aufstehen angehen und während meiner Arbeitszeit stromsparend ausgehen und auch nachts ab 22 Uhr.

Zeit Trigger im Node-Red

Doch was an den Tagen wo ich Zuhause bin oder früher/später nach Hause komme? Ich wollte, dass der SmartDisplay nur dann angeschaltet ist, wenn ich wirklich Zuhause bin. Also wirklich „smart“.

Wie viele andere Menschen auch, habe ich ständig mein Smartphone dabei. Zuhause bucht es sich ins WLAN ein und wieder aus, wenn ich die Wohnung verlasse. Also kann man dies gut als Trigger verwenden. Da ich einen OpenWRT Router besitze, ist es leicht dort eigene Shell-Skripte auszuführen: Der Router schickt nun alle 5 Minuten eine Liste mit den angemeldeten MAC Adressen an den MQTT Broker. Node-Red wertet diese Infos aus und filtert nach der MAC Adresse meines Smartphone (da die ja eindeutig ist), schreibt intern in eine Variable, dann mein Smartphone zuletzt im WLAN entdeckt wurde würde dann sofort den Befehl zum Anschalten des SmartDisplays losschicken. Ein Zeit-Event prüft alle 15 Minuten ob das Gerät sich einen längeren Zeitraum nicht mehr in einem WLAN gemeldet hat und würde dann den Befehlt zum Ausschalten absetzen.

Anwesenheitserkennung über verbundene Geräte des Routers in Node-Red

Auch bei geschlossenen Routern würde das realisierbar sein, in dem man die IP des Smartphones fest vergibt und dann alle 5 Minuten es versucht anzupingen, den Zeitpunkt der Erreichbarkeit wieder zwischenspeichern und nach einer Überschreitungs eines Alters den Befehl zum Ausschalten geben.

Meinen Node-Red Flow findet ihr hier:
https://gist.github.com/MCeddy/b2c507e9b8a5d62b1745d77a9a90b87e

Weiter Beitrag

Zurück Beitrag

© 2024 René Schimmelpfennig

Thema von Anders Norén