danke nochmal für die gedankliche Unterstützung und den "Stupser" in die richtige Richtung.
Habe den oben verlinkten Code nochmal etwas angepasst - aktuell läuft es damit für mich wie erwartet - Super !
(Den Latch in der Auswertung [und damit $ResultOut4] habe ich somit eingespaart.
Code: Alles auswählen
/**=======================================================================================
Gute-Nacht-Szene
-> unmittelbar 0 (false) an Zentral aus (0/1/1) senden, dann
-> geschalten werden einige boolean-Verbraucher sowie die Jalousien im Wohnzimmer
-> Korrekturzeiten sind ausgehnde vom Zeitpunkt des Schaltbefehles in Sekunden angegeben
=========================================================================================*/
{
"Level": [
// Input-Level
["$input","bool",true],
["$norm","integer",60],
["$Korrektur1","int",0],
["$Korrektur4","int",0],
["$VAR<Inhibit?>","bool",false],
// Interne Variablen
["$true","bool",true],
["$true_ext","bool",true],
["$false","bool",false],
["$input_trig","bool",false],
["$time","int",0],
["$utime","int",0],
["$Cron1","string","0"],
["$Cron4","string","0"],
["$Out1","int",0],
["$Out4","int",0],
["$Formula","string","X1+X2"],
["$test","bool",true],
["$next1","int",0],
["$next4","int",0],
// Output-Level
["$zentral_out","bool",true],
["$Result1","bool",false],
["$Result4","bool",true],
],
"Module": [
// Überprüfen, ob $input getriggert wurde
["Triggered", "$input", "$input_trig" ],
// Wenn getriggert und $input=0 -> dann $zentral_out auf 0 setzen
["And" , ["$input_trig","-$input"], "-$zentral_out"],
// 0 auf $zentral_out senden
["SendExplicit","$zentral_out","$zentral_out",2],
// Aktueller Zeitstempel
["Localtime",0,"$time",0,0,0,0,0,0,0,0,0],
// nur wenn getriggert wurde $time an $utime durchreichen
["Latch","$time","$utime","$input_trig",0],
["CalcFormula",["$utime","$Korrektur1"], "$Out1", "$Formula"],
// wakeup zum Zeitpunkt $Out1
["Wakeup","$Out1","$Result1"],
// senden aber nur , wenn $Result1 gerade auf true gewechselt hat
["SendExplicit","$Result1","$Result1",1], // -> sendet 1 (true)
// hier das ganze Kontrukt wenn man ausschalten möchte
["CalcFormula",["$utime","$Korrektur4"], "$Out4", "$Formula"],
["Wakeup","$Out4","-$Result4"],
["SendExplicit","-$Result4","$Result4",1] // -> sendet 0 (false)
],
"Input": [
["INPUT","Verbunden mit 0/1/2","$input","a"],
["Korrektur1 EIN","Zeit in sec (positiv oder negativ)","$Korrektur1","u"],
["Korrektur1 AUS","Zeit in sec (positiv oder negativ)","$Korrektur4","u"],
["Test","xxx","$test","a"],
["True","xxx","$true_ext","a"],
["Inhibit","INHIBIT","$VAR<Inhibit?>","u"]
],
"Output": [
["ZENTRAL AUS","Verbunden mit 0/1/1","$zentral_out","x"],
["EINSCHALTEN 1","Schaltereignis 1","$Result1","x"],
["AUSSCHALTEN 1","Schaltereignis 4","$Result4","x"],
["utime","Zeit","$utime","a"],
["out1","Schaltereignis 4","$Out1","a"],
["out4","Schaltereignis 4","$Out4","a"]
]
}
/**Der Schöpfer dieser Custom Logik überträgt die Nutzungsrechte gemäß der TOLL ("Timberwolf Open Logikblock License") die unter https://wrgt.news/TOLL zum Download zur Verfügung steht. */
Bleibt aber immer noch das etwas merkwürdige Verhalten des cron-Bausteines .....
Zum jetzigen Zeitpunkt habe ich aber hiermit eine funktionierende Lösung gefunden. Sehr schön!