Hallo in der Runde,
ich habe einige Fensterkontakte (Max), Squeezeboxen und einen Taster zur Verfügung.
Nun möchte ich, dass mir die Squeezebox beim Drücken des Tasters meldet, ob und welche Fenster noch offen sind.
Dabei brauche ich nun doch eurer Hilfe, denn ich möchte ja nicht für jedes Fenster ein Notify schreiben sondern möchte nach Typ des Fensterkontakts (also: ShutterContact) filtern und diese sollen mit dann mit dem Befehl:
Zitatset Squeezebox_XY talk Die Fenster x,y,z sind noch offen
ausgegeben werden. Hatte zwar schon ein Structure ins Auge gefasst, aber dass scheint wohl nicht das richtige zu sein.
schubs
Hallo,
Eine Möglichkeit wäre ein notify für den Taster anzulegen welches den Zustand der Kontakte zusammenfasst und ausgibt.
Da die Eingabe von mehreren Zeilen Code im notify etwas schwieriger ist, wäre es besser den Code in 99_myUtils auszulagern, dieser könnte z.B. so aussehen:
sub SCtoTTS()
{
my $f="";
my @sc=devspec2array("SC_F.*");
foreach(@sc){
if(ReadingsVal($_,"onoff","0") eq "1") {
$f.=$_.",";
}
}
if($f ne "") {
fhem("set Squeezebox_XY talk Die Fenster ".$f." sind noch offen");
} else {
fhem("set Squeezebox_XY talk Alle Fenster sind zu");
}
}
Der Code geht davon aus dass die Namen der Kontakte alle mit 'SC_F' beginnen.
Das notify könnte dann z.B. so aussehen:
define n_MAX_Fenster notify MAX_Taster.* {SCtoTTS()}
Grüße,
ChrisD
http://forum.fhem.de/index.php/topic,26893.0.html
Danke, muss ich mir genauer ansehen. Leider habe ich erst nach dem WE Zeit dazu.