Hallo Forum,
ich habe mehrere HM-SEC-SC (sec_1 bis sec_7) und einen HM-SEC-MDIR (HM_PIRI) die per notify den Dummy-Schalter "Alarm" auf "on"
setzen soll, aber nur wenn ein weiterer Dummy "Alarm_sw" schon auf auf "on" steht.
Bei dem 1.) notify klappt das auch, aber beim 2. nicht. Was mache ich falsch?
Im Log steht leider nichts. Ich vermute mein Value("sec_.*) eq "open" ist nicht korrekt, oder?
1.)
define AlarmPIRI notify HM_PIRI.*:* {if ( Value("Alarm_sw") eq "on" && Value("HM_PIRI") eq "motion") {fhem("set Alarm on") }}
2.)
define AlarmSEC notify sec_.*:open {if ( Value("Alarm_sw") eq "on" && Value("sec_.*") eq "open") {fhem("set Alarm on") }}
Gruß
Markus
Value() funktioniert mit einem device namen nicht mit einem regulären ausdruck. du fragst damit den zustand von genau einem device ab. wenn du mehrere devices zusammen fassen möchtest kannst du das z.b. mit einer structure machen und dann den zusammen gefasten status der structure abfragen.
gruss
andre
Zitat von: Markus Hermann schrieb am So, 28 April 2013 10:35Ich vermute mein Value("sec_.*) eq "open" ist nicht korrekt, oder?
Hiho,
sehe ich auch so. Es soll der Value eines device geprüft werden, dessen Name "sec_.*" lautet.
M.E. musst Du die secs durch-loopen mit sowas wie
my $alarm=0;
my $dev="";
foreach (1..7) {
$dev="sec_".$_;
if (Value("$dev") eq "open") {
$alarm=1;
}
}
if ( Value("Alarm_sw") eq "on" && $alarm == 1) {
fhem("set Alarm on") }
}
Ungetestet.
Viel Erfolg,
Uli
Hi,
Zitat von: Markus Hermann schrieb am So, 28 April 2013 10:35define AlarmSEC notify sec_.*:open {if ( Value("Alarm_sw") eq "on" && Value("sec_.*") eq "open") {fhem("set Alarm on") }}
ich habe zwar kein HM aber es sollte mit:
define AlarmSEC notify sec_.*:open {if ( Value("Alarm_sw") eq "on" && Value("$NAME") eq "open") {fhem("set Alarm on") }}
funktionieren.
Edit:
Bzw das notify löst ja bei "open" aus, also brauchst du ja nur auf "Alarm_sw" testen.
define AlarmSEC notify sec_.*:open ...
funktioniert defintiv. Benutze ich an diversen Stellen. Die Art des Devices ist unerheblich.
Vergleiche hierzu auch den Artikel Alarmanlage im Wiki
Ich meinte das er innerhalb des notify auf den Test "open" verzichten kann.
define AlarmSEC notify sec_.*:open {if ( Value("Alarm_sw") eq "on" ) {fhem("set Alarm on") }}
ZitatIch meinte das er innerhalb des notify auf den Test "open" verzichten kann.
define AlarmSEC notify sec_.*:open {if ( Value("Alarm_sw") eq "on" ) {fhem("set Alarm on") }}
jupp, so geht es auch :-)
Danke an alle für die Tipps