FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: sLy1337 am 18 Februar 2016, 21:56:41

Titel: DOIF gekoppelt mit IF/if
Beitrag von: sLy1337 am 18 Februar 2016, 21:56:41
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
Titel: Antw:DOIF gekoppelt mit IF/if
Beitrag von: sLy1337 am 18 Februar 2016, 22:25:59
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 :-)
Titel: Antw:DOIF gekoppelt mit IF/if
Beitrag von: Crawler am 18 Februar 2016, 22:31:20
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