FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Shojo am 24 November 2018, 14:50:29

Titel: DOIF wird nicht getriggert wie erwartet
Beitrag von: Shojo am 24 November 2018, 14:50:29
Hallo die Runde,

ich habe ein mehrere DOIF für die Heizungsteuerung laufen.
Wie hier z.B. im Wohnzimmer:

defmod WZ.DOIF.Steuerung.Heizung DOIF ((( [06:00-22:00|Mo Di Mi Do] or \
[06:00-23:59|Fr] or \
[08:30-23:59|Sa] or \
[08:30-22:00|So]) and [$SELF:TargetTemp] and [Bewohner] eq "home" and [WZ.Sensor.Tuer.TR] eq "closed") or [HA.Dummy.Party] eq "IsParty" )\
(\
setex WZ.Heizung_Clima desired-temp [$SELF:TargetTemp]\
\
)\
DOELSEIF([WZ.Sensor.Tuer.TR] eq "closed")\
(\
setex WZ.Heizung_Clima desired-temp 16.0\
)\
DOELSEIF([WZ.Sensor.Tuer.TR] ne "closed")\
(\
setex WZ.Heizung_Clima desired-temp off\
)
attr WZ.DOIF.Steuerung.Heizung do always
attr WZ.DOIF.Steuerung.Heizung icon helper_doif
attr WZ.DOIF.Steuerung.Heizung readingList TargetTemp
attr WZ.DOIF.Steuerung.Heizung room 1.1_Wohnzimmer,2.0_Heizung,9.2_DOIF
attr WZ.DOIF.Steuerung.Heizung selftrigger all
attr WZ.DOIF.Steuerung.Heizung wait 0:0:150


Mir ist aber gestern Nacht (00:30) aufgefallen  das es nicht getriggert wurde, erst wo ich dann ein set WZ.DOIF.Steuerung.Heizung checkall angestoßen habe ist das DOIF im cmd 2 gesprungen.
Mache ich hier was falsch ?

Gruß
Dennis
Titel: Antw:DOIF wird nicht getriggert wie erwartet
Beitrag von: Otto123 am 24 November 2018, 15:17:25
Hallo Dennis,

ich habe mal irgendwann verstanden: Es kommt ein trigger von einem der beteiligten Geräte , DOIF rattert los, beim ersten erfüllten Bedingungszweig bleibt er hängen (alle weiteren werden nicht abgearbeitet).

Dies hier [WZ.Sensor.Tuer.TR] eq "closed") tritt in zwei Zweigen auf.

Ich würde also deine Frage mit ja beantworten :)

Gruß Otto
Titel: Antw:DOIF wird nicht getriggert wie erwartet
Beitrag von: Shojo am 24 November 2018, 15:20:29
Hi Otto,

so hatte ich es auch erwartet, da der erste Zweig getriggert wurde und nicht zutrifft sollte er doch die Bedingung von den zweiten Zweig prüfen.
Oder ?
Titel: Antw:DOIF wird nicht getriggert wie erwartet
Beitrag von: Otto123 am 24 November 2018, 15:26:18
Ich kann nicht ausschließen, dass er nicht zutrifft. Zumindest nicht aus diesen Infos.

Ansonsten solltest Du in Zweig 1 die Klammern prüfen, es wird erst and abgearbeitet und dann or -> http://perldoc.perl.org/perlop.html#Operator-Precedence-and-Associativity
Und ich würde sagen Du brauchst hier do always nicht, aber vielleicht ist es egal.

Gruß Otto