Anwesenheitserkennung über WLAN mit OpenWRT / LEDE
Diese Anleitung beschreibt wie man dem Loxone Server mitteilt welche Geräte im WLAN eingebucht sind.
Schritt-für-Schritt-Anleitung
Installation der Pakete „netcat“ und „iwinfo". Die Installation kann entweder über die Web Oberfläche unter System -> Software erfolgen oder über die Konsole:
opkg update opkg install netcat opkg install iwinfo
Wir erstellen ein Script /etc/loxone_assoclist mit folgendem Inhalt:
#!/bin/sh while : do iwinfo wlan0 assoclist > /tmp/assoclist.txt iwinfo wlan1 assoclist >> /tmp/assoclist.txt # Zeile nur für Dualband-Router (5GHz), ggf. löschen netcat -u -w1 -c 192.168.1.8 5678 < /tmp/assoclist.txt # IP und Wunschport des Loxone Miniservers eintragen sleep 5 # Pause nach Durchlauf in Sekunden done
Das Script durchläuft eine Endlosschleife die alle verbundenen WLAN Clients in eine temporäre Datei schreibt und an den Miniserver sendet. Bitte Kommentare im Script beachten.Wir erstellen ein weiteres Script /etc/init.d/loxone mit folgendem Inhalt:
#!/bin/sh /etc/rc.common START=90 STOP=95 start() { echo start /etc/loxone_assoclist &>/dev/null & echo $! > /tmp/lox.pid } stop() { echo stop cat /tmp/lox.pid | xargs kill -9 rm /tmp/lox.pid rm /tmp/assoclist.txt }
Dieses Skript dient daszu das eigentliche Funktionsscript in den Startprozess des Routers einzubinden.Vor dem Ausführen müssen noch die Rechte der Dateien auf 0755 geändert werden:
Nun kann der Prozess gestartet werden. Dies kann entweder über die Web Oberfläche unter System -> Startup (Enable, dann Start) erfolgen oder über die Konsole:
Als nächstes wird ein virtueller UDP Eingang in der Loxone Config erstellt. Als Empfangsport ist der gleiche Port wie in Schritt 2 anzugeben (5678).
Als letztes muss für jedes zu überwachende Gerät (Handy) ein Virtueller UDP Befehl (Digitaleingang) erstellt. Im Feld Befehlserkennung muss die MAC Adresse des jweiligen Gerätes in Form AA:BB:CC:DD:EE:FF eingetragen werden.
Bei Erkennung wird ein kurzer Impuls am Virtuellen Eingang geliefert. Dieser kann z.B. mit einem nachfolgenden Monoflop als einfache Anwesenheitserkennung dienen.