DOIF doelseif Verständnis Problem ?

Begonnen von Loctite, 13 Dezember 2021, 06:41:45

Vorheriges Thema - Nächstes Thema

Loctite

Hallo.
Ich habe vermutlich ein Verständnisproblem von DOELSEIF

Ich möchte eine Lampe zu verschieben Uhrzeiten einschalten wenn einige Bedingungen erfüllt sind.
Im dummy du_uhrzeit ist eine Zeit wie 6:00 hinterlegt.
Nun soll es zwei Zeiten geben : 5:51-6:55 wenn "Morgens_hell" =ja ist
und 5:59-6:55 wenn "Morgens_hell" = nein

Alle anderen variablen sind gleich. Wenn gerade keine der beiden Uhrzeitenblöcke ist, soll die Lampe aus sein.
Nach anlegen des DOIF sehe ich 4 Uhrzeiten. Anstatt aber bis 6:55 zu warten, wird die Lampe schon um
um 5:59 wieder abgeschaltet, wenn die erste Bedingung "Morgens_hell" = ja abgearbeitet wird.

([([du_uhrzeit:state:"( \d\d:\d\d)"]-[00:09]) - ([du_uhrzeit:state:"( \d\d:\d\d)"]+[00:55])] and !$we and [frueh] eq "ja" and [Morgens_hell] eq "ja" and [AlarmButton4] eq "off") (set ye_LEDLampe_schlafz scene 9) DOELSEIF ([([du_uhrzeit:state:"( \d\d:\d\d)"]-[00:01]) - ([du_uhrzeit:state:"( \d\d:\d\d)"]+[00:55])] and !$we and [frueh] eq "ja" and [Morgens_hell] eq "nein" and [AlarmButton4] eq "off") (set ye_LEDLampe_schlafz scene 3, defmod at_YeeAus at +00:05 set ye_LEDLampe_schlafz off) DOELSE (set ye_LEDLampe_schlafz off)

Das defmod at_YeeAus könnte entfallen, wenn ich die Uhrzeiten entsprechend verändern würde.
Ich hatte aber Angst das es dann gar nicht funktioniert.

Vielleicht kann mir ja jemand einen Tipp geben.

Alternativ habe ich schon überlegt nur per DOIF ein zu schalten und per at an zu schalten.
Hier weiß ich aber nicht ob ich die Uhrzeiten aus dem Dummy auch dort einbauen kann.
Nur würde ich trotzdem gerne wissen was hier passiert.

Danke schon mal.

Loctite

Ok ..
Da die Lampe im zweiten Fall eh nur 5 Minuten an ist, habe ich das at entfernt und direkt den zweiten Uhrzeiten Block geändert.
Ich ging davon aus, das der DOELSEIF Zweig den Zeitraumblock als ganzes sieht, wie ein eigener IF Zweig.
Jetzt mit den anderen Zeiten funktioniert es.
Als attrib hab ich noch "checkall all" eingefügt, ob das was ändert oder nötig ist, weiß ich nicht.

Damit ist das erst mal erledigt denke ich....ich teste noch