FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: WolfgangV am 16 März 2024, 09:12:20

Titel: Doif löst aus, obwohl Bedingung nicht mehr vorhanden ist
Beitrag von: WolfgangV am 16 März 2024, 09:12:20
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
Titel: Aw: Doif löst aus, obwohl Bedingung nicht mehr vorhanden ist
Beitrag von: Per am 16 März 2024, 09:20:23
Es gibt nur einen DOELSE Zweig!
Titel: Aw: Doif löst aus, obwohl Bedingung nicht mehr vorhanden ist
Beitrag von: MadMax-FHEM am 16 März 2024, 10:19:06
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
Titel: Aw: Doif löst aus, obwohl Bedingung nicht mehr vorhanden ist (Gelöst)
Beitrag von: WolfgangV am 16 März 2024, 13:00:12
Hallo ihr beiden,

danke für die schnelle Nachhilfe!

Gruß


Wolfgang