Präsenzerkennung (iPhone) via WLAN
Verfasst: 1. Feb 2016 19:26
Hallo zusammen,
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
Wie Ihr das auf der Sitemap darstellt ist Geschmackssache. Ich habe mich für den Switch entschieden, da man dann, anhand des Icons auch sehen kann, ob er "aktiv" oder "inaktiv" ist. Das Präsenzmännchen ist dann entweder ausgegraut oder halt in "farbe"
Aber auch der String lässt sich ohne weiters anzeigen.
Sitemap
Voraussetzungen für das Script
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 mittelsfiltern.
Script
Eigentlich ist man an der Stelle fertig und alles ist gut .....aber wir wollen ja das Maximum aus der Präsenzerkennung holen .
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
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