nachdem ich nun einiges im Thema Präsenzerkennung probiert habe, und mit den meisten Lösungen nicht wirklich zu frieden war, hab ich jetzt eine sehr zuverlässige Kombination laufen.
Ich habe habe das Script von Extrabannies etwas modifiziert und mit IFTTT kombiniert.
Das ganze sieht dann wie folgt aus:
Item
Code: Alles auswählen
Switch MOB01 "Handy 01 [MAP(Praesenz.map):%s]" (gPraesenz)
Switch MOB02 "Handy 02 [MAP(Praesenz.map):%s]" (gPraesenz)
String MOB01_WLAN "Handy 01 [%s]" (gPraesenz) {exec="<[/scripts/detectiphone01.sh:60000:REGEX((.*?))]"}
String MOB02_WLAN "Handy 02 [%s]" (gPraesenz) {exec="<[/scripts/detectiphone02.sh:60000:REGEX((.*?))]"}
Aber auch der String lässt sich ohne weiters anzeigen.
Sitemap
Code: Alles auswählen
Frame item=gPraesenz label="Präsenzerkennung" icon="network" {
Text item=MOB01 icon="present" valuecolor=[Anwesend="green",Abwesend="red"]
Text item=MOB02 icon="present" valuecolor=[Anwesend="green",Abwesend="red"]
}
Das Problem mit den iPhones ist, dass diese nach einiger Zeit in den "deep standby" fahren und das WLAN abschalten. Somit sind sie für den "normalen" Network Health nicht mehr sichtbar und werden als "abwesend" angezeigt. Um das zu umgehen und das iPhone aus dem "Dornröschenschlaf" zu erwecken, sendet man mittels "hping3" auf Port 5353 einen Ping, der das iPhone aufweckt. Somit taucht es dann in der ARP Tabelle auf und dort können wir dann mit Hilfe unseres Scriptes auf die gewünschte Adresse mittels
Code: Alles auswählen
arp -an | awk '{print $4}'
Code: Alles auswählen
apt-get install hping3
Script
Code: Alles auswählen
declare -a DEVICES
hping3 -2 -c 10 -p 5353 -i u1 192.168.x.x -q >/dev/null 2>&1
DEVICES=`arp -an | awk '{print $4}'`
CHECK="xx:xx:xx:xx:xx:xx"
if [[ ${DEVICES[*]} =~ $CHECK ]]
then
echo "Anwesend"
else
echo "Abwesend"
fi
Ich habe das ganze dann noch mittels myopenhab.org und IFTTT verbunden und via IFTTT eine "area" festgelegt die das Haus UND den Garten abdeckt. Somit kann man auch mal mit dem Handy in den Garten laufen, ohne das man direkt als "abwesend" deklariert wird
Ich hoffe das Hilft dem einen oder anderen und wenn Ihr Ideen oder Vorschläge habt, immer her damit.
CYA