Ich habe gestern lange gesucht, warum eine Logik permanent sendet, obwohl am Ausgang Option "c" on change stand und der Wert konstant 0 ist.
Lösung: Der Wert der Ausgangsvariable wird in der Logik temporär verändert und dann wieder mit 0 überschrieben.
Ich hätte hier erwartet, dass die Prüfung auf "change" nur am Ende der Logik erfolgt, offensichtlich passiert das aber permanent.
Nun zur Frage an @S. Kolbinger und @StefanW: ist das ein Bug oder ein Feature?
Ich vermisse nämlich permanent die Möglichkeit, einen Wert "ausnahmsweise" zu senden, obwohl er sonst nur "on change" und "timer" gesendet wird.
Einen Float um 0.001 zu ändern war mir bisher aber zu krumm.
Mit dem obigen Verhalten habe ich aber dafür nun einen Workaround gefunden, mit dem man einen "Send-Trigger" ähnlich dem "Triggered" -Modul (am Eingang) simulieren kann.
Ich will diesen Weg aber nur verwenden (und dokumentieren!!), wenn er NICHT als Bug gesehen wird und irgendwann behoben wird!
Der Testcode unten braucht noch einen Trigger Eingang mit zb 30s.
Danke und lg
Robert
Code: Alles auswählen
{
"Level":[
["$I_Fuellstand","float",0.0],
["$Drehzahl_Soll_Lim","float",100.0],
["$Konst1","float",1.0],
["$Konst0","float",0.0],
["$KonstTrue","bool",true]
],
"Module":[
["Latch","$Konst1","$Drehzahl_Soll_Lim","$KonstTrue",0],
["Latch","$Konst0","$Drehzahl_Soll_Lim","$KonstTrue",0]
],
"Input":[
["Aktueller Füllstand","Aktueller Füllstand","$I_Fuellstand","a"]
],
"Output":[
["Drehzahl","Solldrehzahl in Prozent","$Drehzahl_Soll_Lim","c"]
]
}