Servus miteinander,
ich möchte folgende DOIF Bedingung formulieren, scheitere hier aber ganz hart an der doch etwas speziellen Syntax (Perl ist ja ohnehin speziell ;-))
Mein DOIF
define ThermeWD_ON DOIF ([06:45-08:30|12345] | [21:14-21:17|12345])
({if (ReadingsVal("DUM.THERME_STATE", "state") ne "window_off") {fhem("set DUM.THERME_STATE on")}})
DOELSE (set DUM.THERME_STATE off)
Ich benötige das nachgeschaltene IF, damit das DOIF schön einfach zu verstehen bleibt:
-> Zeitraum ok? Dann Therme an, außer diese ist dekativiert durch ein offenes Fenster.
-> Zeitraum nicht ok? Therme dekativieren
Fehlermeldung:
ThermeWD DOIF: no left bracket of condition: define ThermeWD_ON DOIF ([06:45-08:30|12345] | [21:14-21:17|12345])({if (ReadingsVal("DUM.THERME_STATE", "state") ne "window_off") {fhem("set DUM.THERME_STATE on")}})DOELSE (set DUM.THERME_STATE off)
Ich verzweifle ein bisschen, da ich bereits beide IF/if's probiert habe, habt ihr ne Idee, woran es liegt?
Danke und Grüße
sLy
Man möge diesen Beitrag ignorieren. Sorry. Ich habe die DEF im Web geändert und immer schön "define ..." mit kopiert. Klar, das klappt nicht :-)
Hatte meinen Kommentar gerade fertig :P
Zitatdefine ThermeWD_ON
DOIF ([06:45-08:30|12345] and [DUM.THERME_STATE] ne "window_off")
(set DUM.THERME_STATE on)
DOELSEIF ([21:14-21:17|12345] and [DUM.THERME_STATE] ne "window_off")
(set DUM.THERME_STATE on)
DOELSE (set DUM.THERME_STATE off)
Der rote Bereich verwirrt mich da du ihn am Ende auf off setzt er aber zeitweise window_off heißt.
Bekommst die "window_off" Meldung noch woanders dann würde ich den da einfügen.
//Alternativ 2tes Dummy für die Fenster oder für die Heizung