Doif löst aus, obwohl Bedingung nicht mehr vorhanden ist

Begonnen von WolfgangV, 16 März 2024, 09:12:20

Vorheriges Thema - Nächstes Thema

WolfgangV

Hallo,

leider komme ich als Laie hier nicht alleine weiter: Warum löst dieses DOIF aus, auch wenn das Fenster wieder geschlossen ist? Und wie kann ich das ändern? Do always und do resetwait führen nicht zu Änderungen.

defmod Fenster_Bad_unten_schliessen DOIF ([Fenster_Bad_Unten] eq "open")\
   (\
   set Sonos_Kueche Speak 40 de Das Fenster im Bad unten ist jetzt schon zehn Minuten geöffnet,\
   set Sonos_Arbeitszimmer Speak 40 de  Das Fenster im Bad unten ist jetzt schon zehn Minuten geöffnet,\
   set Sonos_Dach Speak 40 de  Das Fenster im Bad unten ist jetzt schon zehn Minuten geöffnet,\
   set Sonos_Bad Speak 40 de  Das Fenster im Bad unten ist jetzt schon zehn Minuten geöffnet\
   )\
DOELSE\
   (\
   set Sonos_Kueche Speak 40 de Das Fenster im Bad unten ist jetzt schon fuenfzehn Minuten geöffnet,\
   set Sonos_Arbeitszimmer Speak 40 de  Das Fenster im Bad unten ist jetzt schon fuenfzehn Minuten geöffnet,\
   set Sonos_Dach Speak 40 de  Das Fenster im Bad unten ist jetzt schon fuenfzehn Minuten geöffnet,\
   set Sonos_Bad Speak 40 de  Das Fenster im Bad unten ist jetzt schon fuenfzehn Minuten geöffnet\
   )\
DOELSE\
   (\
   set Sonos_Kueche Speak 40 de Das Fenster im Bad unten ist jetzt schon zwanzig Minuten geöffnet,\
   set Sonos_Arbeitszimmer Speak 40 de  Das Fenster im Bad unten ist jetzt schon zwanzig Minuten geöffnet,\
   set Sonos_Dach Speak 40 de  Das Fenster im Bad unten ist jetzt schon zwanzig Minuten geöffnet,\
   set Sonos_Bad Speak 40 de  Das Fenster im Bad unten ist jetzt schon zwanzig Minuten geöffnet\
   )\
DOELSE\
   (\
   set Sonos_Kueche Speak 40 de Das Fenster im Bad unten ist jetzt schon fuenfundzwanzig Minuten geöffnet,\
   set Sonos_Arbeitszimmer Speak 40 de  Das Fenster im Bad unten ist jetzt schon fuenfundzwanzig Minuten geöffnet,\
   set Sonos_Dach Speak 40 de  Das Fenster im Bad unten ist jetzt schon fuenfundzwanzig Minuten geöffnet,\
   set Sonos_Bad Speak 40 de  Das Fenster im Bad unten ist jetzt schon fuenfundzwanzig Minuten geöffnet\
   )\
DOELSE\
([Fenster_Bad_Unten] eq "closed")\
DOELSE
attr Fenster_Bad_unten_schliessen do resetwait
attr Fenster_Bad_unten_schliessen group Sicherheit
attr Fenster_Bad_unten_schliessen room Bad_Unten
attr Fenster_Bad_unten_schliessen wait 600:300:300:300

Gruß


Wolfgang
Raspi5  HmUART, Jeelink, VU+Duo2, Viera, Sonos, HM-CC-RT-DN,     
HM-WDS30-OT2-SM, HM-LC-Dim1TPBU-FM,    
Jeelink, TUL

Per


MadMax-FHEM

#2
Hast du dir überlegt was, wann passieren soll, am besten aufgeschrieben?

In etwa:

Wenn diese Bedingung(en), dann soll das passieren
Wenn eine andere Bedingung, dann soll was anderes passieren
Wenn noch eine ganz andere Bedingung, dann soll noch ganz was anderes passieren
Und wenn das alles nicht zutrifft, dann mach einfach das

Weil daraus leitet sich dann eben ab was man braucht:

DOIF (Bedingung[en]) (Befehl[e])
DOELSEIF (andere Bedingung[en]) (andere Befehl[e])
DOELSEIF (noch andere Bedingung[en]) (noch andere Befehl[e])
DOELSE (Befehl[e])

Und wie Per geschrieben hat:

es gibt nur 1x DOIF mit Bedingung, "beliebig viele" (auch keins ;) ) DOELSEIF mit Bedingungen und nur max. 1x DOELSE OHNE! Bedingung

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

WolfgangV

#3
Hallo ihr beiden,

danke für die schnelle Nachhilfe!

Gruß


Wolfgang
Raspi5  HmUART, Jeelink, VU+Duo2, Viera, Sonos, HM-CC-RT-DN,     
HM-WDS30-OT2-SM, HM-LC-Dim1TPBU-FM,    
Jeelink, TUL