"Lost in syntax" mit Zeiten im Ausführungsteil

Begonnen von koldomon, 28 Oktober 2024, 13:23:39

Vorheriges Thema - Nächstes Thema

koldomon

Ich krieg die Syntax für den Ausführungteil nicht hin.

gegeben:
    dummy 02_OG_Day_Start_Weekend = "08:00"
    dummy isWeekend = "on"
    dummy 02_OG_Day_Start = ""

gesucht:
    02_OG_Day_Start = {sunrise_abs(7200, "[02_OG_Day_Start_Weekend]-[01:00]", "[02_OG_Day_Start_Weekend]+[01:00]")}

DoIf:
    (([03:30]) and ([isWeekend] eq "off") and ([isFeiertag] eq "off") and ([isHoliday] eq "off"))
        (set 02_OG_Day_Start [02_OG_Day_Start_Work], set 02_OG_Day_End {(sunset_abs())})
    DOELSEIF (([03:30]) and (([isWeekend] eq "on") or ([isFeiertag] eq "on") or ([isHoliday] eq "on")))
        (set 02_OG_Day_Start {sunrise_abs(7200,"([([[02_OG_Day_Start_Weekend]]-[01:00])])","")}, set 02_OG_Day_End {(sunset_abs())})
aktuelles Ergebniss:
    02_OG_Day_Start = "{sunrise_abs(7200,"([([08:00]-[01:00])])","")}" (genau dieser Text)

Der Ausdruck "([([[02_OG_Day_Start_Weekend]]-[01:00])])" funktioniert im Prüfbereich des DoIf, aber irgendwie nicht im Ausführungsbereich. Was mach ich falsch, bzw. welche Klammern müssen (warum) wo hin?

Hintergrundinfo: An dem "02_OG_Day_Start" hängen jeweils weitere DoIf's, welche die Heizung und die Rolladen steuern. Ich hätte gerne (pro Etage) ein "Day_Start" und "Day_End", das täglich aktualisiert wird (und auch bei der Zeitumstellung die richtigen Werte hat).

Danke im Voraus
OdroidC1 -> fhem
CUNO -> FS20
CUL -> HomeMatic
TCM310 -> enOcean
DUOFERN -> rademacher

Damian

Im Ausführungsteil kannst du im Gegensatz zur DOIF-Bedingung nicht mit Zeiten rechnen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF