FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: blixx am 17 Februar 2015, 19:05:08

Titel: Gäste-WLAN überwachen und Status ausgeben
Beitrag von: blixx am 17 Februar 2015, 19:05:08
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.)