Hauptmenü

Fenster "zu" Überwachung

Begonnen von Tom_S, 04 Mai 2013, 19:13:53

Vorheriges Thema - Nächstes Thema

Tom_S

hallo,

habe schon wieder eine Syntaxfrage
wenn ein Fenster geöffnet wird soll eine LED einschalten. Das habe ich so gelöst:

"define FKopen notify Fensterkontakt_.*:opened set LED3 on"

wenn alle Fenster wieder zu sind geht sie wieder aus. Auch das funktioniert:

"define FKclose_alle notify Fensterkontakt_.*:closed { if ( Value ("Fensterkontakt_1") ne "opened") { if ( Value ("Fensterkontakt_3") ne "opened") { if ( Value ("Fensterkontakt_4") ne "opened") { if ( Value ("Fensterkontakt_6") ne "opened") { if ( Value ("Fensterkontakt_9") ne "opened")   { if ( Value ("Fensterkontakt_10") ne "opened") {fhem ("set LED3 off") }}}}}}"

Die LED soll nicht angehen wenn Fensterkontakt_5 oder Fensterkontakt_7 geöffnet wird.

"define FKopen notify Fensterkontakt_1|3|4|6|9|10:opened set LED3 on"
funktioniert nicht. Muß ich alle einzeln abfragen oder kann ich das maskieren?

mfg
RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus

stromer-12

Zitat von: Tom_S schrieb am Sa, 04 Mai 2013 19:13Die LED soll nicht angehen wenn Fensterkontakt_5 oder Fensterkontakt_7 geöffnet wird.

"define FKopen notify Fensterkontakt_1|3|4|6|9|10:opened set LED3 on"
funktioniert nicht. Muß ich alle einzeln abfragen oder kann ich das maskieren?


Versuche mal:
define FKopen notify Fensterkontakt_(1|3|4|6|9|10):opened set LED3 on
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

Tom_S

RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus

fritz

Zitat von: Tom_S schrieb am Sa, 04 Mai 2013 19:13define FKclose_alle notify Fensterkontakt_.*:closed { if ( Value ("Fensterkontakt_1") ne "opened") { if ( Value ("Fensterkontakt_3") ne "opened") { if ( Value ("Fensterkontakt_4") ne "opened") { if ( Value ("Fensterkontakt_6") ne "opened") { if ( Value ("Fensterkontakt_9") ne "opened")   { if ( Value ("Fensterkontakt_10") ne "opened") {fhem ("set LED3 off") }}}}}}
brrr... das tut einem Perl-Fan schon ein bisschen weh :-)
Versuch mal (noch ungetestet - meine Fensterkontakte sind eben erst geliefert worden)
define FKclose_alle notify Fensterkontakt_.*:closed {foreach my $i (1,3,4,6,9) {return if Value ("Fensterkontakt_$i") eq "opened"} fhem ("set LED3 off")}
<F>
P.S.: ooops - habe Kontakt Nr. 10 in der Liste vergessen, aber das dürfte sich leichter ändern lassen als der Original-Code :-)

Tom_S

o.K. danke
Ich glaube ein Perl-Fan werde ich so schnell nicht. Habe mich auch schon gefragt, ab wieviel Klammern es einen Preis gibt.
Da beim Testen mein Cube mal wieder alles vergessen hat, dauerte es etwas länger. Habe mir dann ein paar Dummys angelegt. Zwei Klammern noch und schon geht es.

define FKclose_alle notify Fensterkontakt_.*:closed {foreach my $i (1,3,4,6,9,10) {return if (Value ("Fensterkontakt_$i") eq "opened")} fhem ("set LED3 off")}
 
mfg
RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus