Hauptmenü

DOIF gekoppelt mit IF/if

Begonnen von sLy1337, 18 Februar 2016, 21:56:41

Vorheriges Thema - Nächstes Thema

sLy1337

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

sLy1337

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 :-)

Crawler

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
FHEM auf Raspi + HMLan + 14 Aktoren + OBIS(Strom) über GPIO