Halo zusammen...
ich muss gleich vorwegnehmen, dass ich so gut wie gar nicht programmieren kann und mich anhand bislang von Tutorials soweit es möglich durchgehangen habe. Immerhin habe ich nun ein funktionsfähiges openHAB 1.8.1 auf nem Raspberry Pi 2 laufen und etliche Schalter (433Mhz), Dimmer (433Mhz) und Milights ans Laufen gebracht. Einige Regeln funktionieren auch schon sehr zuverlässig, doch ich schaffe es einfach nicht eine funktionierende Anwesenheitserkennung zu realisieren.
hier meine config:
meine items
Code: Alles auswählen
Switch MOB001 "Zu Hause [%s]" { exec="<[/etc/opt/iphonedetect.sh:60000:REGEX((.*?))]" }
meine sitemap:
Code: Alles auswählen
Frame label="Presence" {
Text item=MOB001
Switch item=MOB001 icon="present" valuecolor=[ON="green",OFF="blue"]}
und das shell script (MAC ist natürlich die richtige eingetragen):
Code: Alles auswählen
#!/bin/bash
declare -a DEVICES
hping3 -2 -c 10 -p 5353 -i u1 192.168.1.154 -q >/dev/null 2>&1
DEVICES=`arp -an | awk '{print $4}'`
CHECK="xx:xx:xx:xx:b6:d5"
if [[ ${DEVICES[*]} =~ $CHECK ]]
then
echo "ON"
else
echo "OFF"
fi
Das Scrip liegt im Ordner
und sowohl das script selbst, als auch die Ordner sind ausführbar. Die Rückgabewerte des Scripts werden auch wunderbar von openHAB erkannt und entsprechend dargestellt.
Wie vorher schon beschrieben habe ich auch die
entsprechend angepasst.
Das Script Ansicht funktioniert auch und ich kann mit
die erkannte MAC Adresse sehen. Mein Problem ist jedoch, dass die MAC Adresse dauerhaft angezeigt wird, obwohl WLAN am iPhone ausgeschaltet ist.
Leere ich nun den arp cache mit
und führe anschließend
aus wird <unvollständig> zurückgegeben und im openHAB OFF angezeigt - soweit alles gut.
Schalte ich nun das WLAN am iPhone an unf führe erneut
Code: Alles auswählen
hping3 -2 -c 10 -p 5353 -i u1 192.168.1.154 -q >/dev/null 2>&1
aus bekomme ich relativ schnell ein ON im openHAB. Wenn ich das WLAN nun wieder abschalte bleibt der Status allerdings auf ON also die MAC wird immer noch erkannt...
Habt Ihr eine Idee, woran das liegen kann?
Danke schon mal vorab
Grüße Bobby