FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Tom_S am 04 Mai 2013, 19:13:53

Titel: Fenster "zu" Überwachung
Beitrag von: Tom_S am 04 Mai 2013, 19:13:53
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
Titel: Aw: Fenster "zu" Überwachung
Beitrag von: stromer-12 am 04 Mai 2013, 20:43:57
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
Titel: Aw: Fenster "zu" Überwachung
Beitrag von: Tom_S am 05 Mai 2013, 00:21:35
vielen Dank, es geht.

mfg
Titel: Aw: Fenster "zu" Überwachung
Beitrag von: fritz am 05 Mai 2013, 02:28:24
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 :-)
Titel: Aw: Fenster "zu" Überwachung
Beitrag von: Tom_S am 06 Mai 2013, 18:39:43
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