Hier mal ein Baustein von mir für eine "Gute-Nacht-Szene"
Auslösung hier durch ein "false" am $input.
SOFORT nach Auslösen der Logik wird ein "false" an Ausgang "Zentral aus" gesandt (das ist bei mir die KNX-Adresse für den entsprechenden Befehl).
Zusätzlich sollen aber noch ein paar abweichende Aktionen ausgeführt werden - und dies an definierten Zeitpunkten nach dem "Gute-Nacht-Befehl".
Die nachfolgenden Schaltaktionen lassen sich jeweils um x Sekunden verzögern.
Hier aktuell im Code 3 Schaltpunkte für EINschaltereignisse ("true" am Ausgang) und 3 Schaltpunkte für AUSschaltereignisse ("false" am Ausgang).
Zusätzlich ein Ausgang für Jalousien (oder eher Rolläden). Auf diesen wird ein integer-Wert gesandt (festgelegt mit Input "Befahrhöhe Jalo").
....Prinzipiell lässt sich das alles skalieren. Nur eben die entsprtechenden Variablen erweitern.
Danke auch an @Robert_Mini für die Hilfe bei meinem "Hirnknoten" hier: viewtopic.php?f=24&t=5555#p59118
Vielleicht findet es ja jemand hilfreich
Code: Alles auswählen
/**=======================================================================================
Gute-Nacht-Szene
-> unmittelbar 0 (false) an Zentral aus senden, dann
-> geschalten werden einige boolean-Verbraucher sowie ein Ausgang Rollladen
-> Korrekturzeiten sind ausgehend vom Zeitpunkt des Schaltbefehles in Sekunden angegeben
=========================================================================================*/
{
"Level": [
// Input-Level
["$input","bool",true],
["$norm","integer",60],
["$Korrektur1","int",0],
["$Korrektur2","int",0],
["$Korrektur3","int",0],
["$Korrektur4","int",0],
["$Korrektur5","int",0],
["$Korrektur6","int",0],
["$KorrekturJalo","int",0],
["$VAR<Inhibit?>","bool",false],
// Interne Variablen
["$true","bool",true],
["$false","bool",false],
["$input_trig","bool",false],
["$time","int",0],
["$utime","int",0],
["$Out1","int",0],
["$Out2","int",0],
["$Out3","int",0],
["$Out4","int",0],
["$Out5","int",0],
["$Out6","int",0],
["$OutJalo","int",0],
["$Formula","string","X1+X2"],
// Output-Level
["$zentral_out","bool",true],
["$Result1","bool",false],
["$Result2","bool",false],
["$Result3","bool",false],
["$Result4","bool",true],
["$Result5","bool",true],
["$Result6","bool",true],
["$ResultJalo","bool",false],
["$OutValue_Jalo","int",0]
],
"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],
// Hier Grundkontrukt für EINSCHALTereignisse
["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)
["CalcFormula",["$utime","$Korrektur2"], "$Out2", "$Formula"],
["Wakeup","$Out2","$Result2"],
["SendExplicit","$Result2","$Result2",1], // -> sendet 1 (true)
["CalcFormula",["$utime","$Korrektur3"], "$Out3", "$Formula"],
["Wakeup","$Out3","$Result3"],
["SendExplicit","$Result3","$Result3",1], // -> sendet 1 (true)
// Hier Grundkontrukt für AUSSCHALTereignisse
["CalcFormula",["$utime","$Korrektur4"], "$Out4", "$Formula"],
["Wakeup","$Out4","-$Result4"],
["SendExplicit","-$Result4","$Result4",1], // -> sendet 0 (false)
["CalcFormula",["$utime","$Korrektur5"], "$Out5", "$Formula"],
["Wakeup","$Out5","-$Result5"],
["SendExplicit","-$Result5","$Result5",1], // -> sendet 0 (false)
["CalcFormula",["$utime","$Korrektur6"], "$Out6", "$Formula"],
["Wakeup","$Out6","-$Result6"],
["SendExplicit","-$Result6","$Result6",1], // -> sendet 0 (false)
// Hier Grundkonstrukt für Jalousie
["CalcFormula",["$utime","$KorrekturJalo"], "$OutJalo", "$Formula"],
["Wakeup","$OutJalo","$ResultJalo"],
// erst dann $norm an $OutValue_Jalo durchreichen
["Latch","$norm","$OutValue_Jalo","$ResultJalo",1],
["SendExplicit","$ResultJalo","$OutValue_Jalo",1]
],
"Input": [
["INPUT","Verbunden mit 0/1/2","$input","ai"],
["Korrektur1 EIN","Zeit in sec (positiv oder negativ)","$Korrektur1","u"],
["Korrektur2 EIN","Zeit in sec (positiv oder negativ)","$Korrektur2","u"],
["Korrektur3 EIN","Zeit in sec (positiv oder negativ)","$Korrektur3","u"],
["Korrektur1 AUS","Zeit in sec (positiv oder negativ)","$Korrektur4","u"],
["Korrektur2 AUS","Zeit in sec (positiv oder negativ)","$Korrektur5","u"],
["Korrektur3 AUS","Zeit in sec (positiv oder negativ)","$Korrektur6","u"],
["Korrektur JALO","Zeit in sec (positiv oder negativ)","$KorrekturJalo","u"],
["Befahrhöhe JALO","welche Höhe soll angefahren werden? (in%)","$norm","u"],
["Inhibit","INHIBIT","$VAR<Inhibit?>","u"]
],
"Output": [
["ZENTRAL AUS","KNX-Adresse für Zentral AUS","$zentral_out","x"],
["EINSCHALTEN 1","Schaltereignis 1","$Result1","x"],
["EINSCHALTEN 2","Schaltereignis 2","$Result2","x"],
["EINSCHALTEN 3","Schaltereignis 3","$Result3","x"],
["AUSSCHALTEN 1","Schaltereignis 4","$Result4","x"],
["AUSSCHALTEN 2","Schaltereignis 5","$Result5","x"],
["AUSSCHALTEN 3","Schaltereignis 6","$Result6","x"],
["JALO ZU","Jalo WZ auf $norm fahren","$OutValue_Jalo","x"]
]
}
/**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. */