ich versuche mich gerade daran eine benutzerdefinierte Logik zu erstellen die meine 3 verschachtelten alten Logiken ersetzen soll. Allerdings will das nicht so recht und ich finde den Fehler nicht.
Bisher sieht das ganze folgendermaßen aus:
Ein Schwellenwertschalter erfasst eine Änderung eins Dimmwertstatus(KNX) >=1 (Einschalten Ausschalten)
Eine zweite Logik löst nur bei Einschalten aus. (And Logik mit Inhibit)
Eine dritte Logik sendet den Dimmwertstatus nochmals nach 0,5 s und 1 s. (Custom Logik hier aus dem Forum, danke dafür)
Nun habe ich versucht die Codes zusammenzuführen in einer einzelnen Logik und es passiert nix.
Code:
[*]
Code: Alles auswählen
{
"Level":[
// Inputs
["$Input_L1","float",0],
["$Threshold_L1","float",0],
["$Input_L2","bool",false],
["$I_Verzoegerung1","float",100.0],
["$I_Verzoegerung2","float",100.0],
// Outputs
["$O_Wert1","float",100.0],
// Interne Variablen
["$Output_L1","bool",false],
["$Output_L2","bool",false],
["$Inhibit>","bool",false],
["$Trigger","bool",false],
["$Timer1","bool",false],
["$Timer1_Last","bool",false],
["$Timer1_Ende","bool",false],
["$Timer1_CResult","bool",false],
["$Timer2","bool",false],
["$Timer2_Last","bool",false],
["$Timer2_Ende","bool",false],
["$Timer2_CResult","bool",false],
// Konstanten
["$Konst1","float",1.0],
["$Konst0","float",0.0],
["$KonstTrue","bool",true],
["$KonstFalse","bool",false]
],
"Module":[
["Comparator","$Input_L1","$Output_L1","$Threshold_L1"],
["Break",["$Output_L1"]],
["And",["$Input_L2"],"$Output_L2"],
// Eingang getriggert?
["Triggered", "$Output_L2", "$Trigger" ],
// Timer-Status merken
["Latch","$Timer1","$Timer1_Last","$KonstTrue",0],
["Latch","$Timer2","$Timer2_Last","$KonstTrue",0],
// Wenn getriggert, Verzögerungstimer starten
["Monoflop","$Trigger",0,"$Timer1","$I_Verzoegerung1",0],
["Monoflop","$Trigger",0,"$Timer2","$I_Verzoegerung2",0],
// Wenn Verzoegerung 0, dann direkt beim Trigger reagieren =>
// TimerLast auf True setzen, damit abgelaufener Timer simuliert wird
["Comparator", "$I_Verzoegerung1", "$Timer1_CResult", "$Konst0"],
["Comparator", "$I_Verzoegerung2", "$Timer2_CResult", "$Konst0"],
["Latch","$Trigger","$Timer1_Last","-$Timer1_CResult",0],
["Latch","$Trigger","$Timer2_Last","-$Timer2_CResult",0],
// Timer abgelaufen?, Timer1_Ende wird nur true, wenn in diesem Aufruf der Timer ausgelaufen ist
["And" , ["-$Timer1","$Timer1_Last"],"$Timer1_Ende"],
["And" , ["-$Timer2","$Timer2_Last"],"$Timer2_Ende"],
// Eingangswert auf Ausgang übernehmen
["Latch","$Input_L1","$O_Wert1","$Timer1_Ende",0],
["Latch","$Input_L1","$O_Wert1","$Timer2_Ende",0],
// Senden
["SendExplicit","$Timer1_Ende","$O_Wert1",0],
["SendExplicit","$Timer2_Ende","$O_Wert1",0]
],
"Input":[
["Eingangswert","Dimmwert der mehrfach gesendet wird","$Input_L1","u"],
["Schwellwert","Vergleichswert","$Threshold_L1","u"],
["Input_L2","auf false setzen","$Input_L2","u"],
["Verzögerung 1","erstes senden nach n Sekunden","$I_Verzoegerung1","u"],
["Verzögerung 2","zweites senden nach n Sekunden","$I_Verzoegerung2","u"]
],
"Output":[
["Ausgang1","Ausgang sendet nach Verzögerungen 1 und 2","$O_Wert1","x"]
]
}
LG Steffen