Gäste-WLAN überwachen und Status ausgeben

Begonnen von blixx, 17 Februar 2015, 19:05:08

Vorheriges Thema - Nächstes Thema

blixx

Hallo zusammen,
ich habe heute ein bisschen gebastelt und vielleicht ist es auch nützlich für den ein oder anderen.
Mein FHEM sagt nun, wenn ein Gast sich verbindet oder trennt :)
Folgendes Setup: FritzBox mit Gast-WLAN und Raspberry zur Sprachausgabe.

Zuerst die Fritz-Box und das userReading definieren:
define Fritzbox FRITZBOX
attr Fritzbox allowShellCommand 1
attr Fritzbox userReadings guests4 {fhem("get Fritzbox shellCommand /sbin/wlanconfig guest4 list sta | grep -v ADDR | wc -l ")}, guests5 {fhem("get Fritzbox shellCommand /sbin/wlanconfig guest5 list sta | grep -v ADDR | wc -l ")}

dann das eigentliche Script (vierer und fünfer entspricht dabei 2.4 und 5 GhZ - die Fritzbox funkt in beiden Bändern das Gast-Netz)

define Gast4Alt dummy
define Gast5Alt dummy

define viererGast notify (Fritzbox:guests4.*) {\
my $Gast4Neu = ReadingsVal("Fritzbox", "guests4", "0");;\
if (Value("Anwesend") eq "on" and $Gast4Neu gt Value("Gast4Alt"))\
{fhem ("set MyTTS tts Neuer Gast verbunden;;set Gast4Alt $Gast4Neu")}\
else {\
if (Value("Anwesend") eq "on" and $Gast4Neu lt Value("Gast4Alt"))\
{fhem ("set MyTTS tts Gast getrennt;;set Gast4Alt $Gast4Neu")}\
}}

define fuenferGast notify (Fritzbox:guests5.*) {\
my $Gast5Neu = ReadingsVal("Fritzbox", "guests5", "0");;\
if (Value("Anwesend") eq "on" and $Gast5Neu gt Value("Gast5Alt"))\
{fhem ("set MyTTS tts Neuer Gast verbunden;;set Gast5Alt $Gast5Neu")}\
else {\
if (Value("Anwesend") eq "on" and $Gast5Neu lt Value("Gast5Alt"))\
{fhem ("set MyTTS tts Gast getrennt;;set Gast5Alt $Gast5Neu")}\
}}

Zu beachten ist, dass das event erst erzeugt wird, wenn fhem sich ein neues update von der FritzBox geholt hat - kann also ein bisschen dauern, bis die Ansage kommt.
Ggf. Interval anpassen - (INTERVAL <seconds>
Polling-Interval. Default is 300 (seconds). Smallest possible value is 60.)