DOIF wird nicht getriggert wie erwartet

Begonnen von Shojo, 24 November 2018, 14:50:29

Vorheriges Thema - Nächstes Thema

Shojo

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
FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Shojo

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 ?
FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

Otto123

#3
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 
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz