Trigger und Sendeverhalten nach Restart
Verfasst: Mi Jul 22, 2020 11:22 pm
Hallo @S. Kolbinger!
Ich möchte deine Erklärung aus diesem Thema (viewtopic.php?f=8&t=2276&p=25354&hilit= ... uhr#p25354) kurz diskutieren.
Ich hatte heute nämlich ein ähnliches Problem: Restart des logic-Services (warum weiß ich nicht??), und die Beschattung hat gestreikt => Ausgang war durch den Restart auf "false" und hat daher das spätere Umschalten auf "false" nicht gesendet => Persistenz muss aktiviert werden.
Bedeutet aber, dass bei allen rein Event-basierten Logiken, die ebenfalls nur auf "on change" senden, Persistenz erforderlich ist.
Ich weiß nicht, ob das realistisch ist, aber korrekterweise sollten die Ein-/Ausgänge der "nicht persistenten" Logiken nicht mit false (bzw. 0 bei float) sondern n/a initialisiert werden, so dass auch bei Empfang von "false" bzw. Ergebnis "false" getriggert bzw. gesendet wird. Gleiches gilt für float 0.0
lg
Robert
Ich möchte deine Erklärung aus diesem Thema (viewtopic.php?f=8&t=2276&p=25354&hilit= ... uhr#p25354) kurz diskutieren.
Ich verstehe dieses Verhalten zwar, sehe da aber eine Parallele zum ursprünglichen Verhalten des KNX-Stacks.S. Kolbinger hat geschrieben: ↑So Jul 19, 2020 4:18 pm Die Zeitschaltuhr an sich hat funktioniert, das Problem war die Sendeoption "C" (on change).
Nach dem Reboot hat der "Ausschalt-Timer" getriggert. Der Ausgang war aber nach dem Reboot auf "false" (default nach Neustart).
Da sich der Zustand nicht geändert hat, wurde auch nichts nach aussen gesendet.
Lösungsvarianten:
- Persistenz einschalten (Ausgangszustand wird gemerkt)
- Sendeoption am Ausgang auf "A" setzen (Ausgangswert wird jedesmal gesendet)
Ich hatte heute nämlich ein ähnliches Problem: Restart des logic-Services (warum weiß ich nicht??), und die Beschattung hat gestreikt => Ausgang war durch den Restart auf "false" und hat daher das spätere Umschalten auf "false" nicht gesendet => Persistenz muss aktiviert werden.
Bedeutet aber, dass bei allen rein Event-basierten Logiken, die ebenfalls nur auf "on change" senden, Persistenz erforderlich ist.
Ich weiß nicht, ob das realistisch ist, aber korrekterweise sollten die Ein-/Ausgänge der "nicht persistenten" Logiken nicht mit false (bzw. 0 bei float) sondern n/a initialisiert werden, so dass auch bei Empfang von "false" bzw. Ergebnis "false" getriggert bzw. gesendet wird. Gleiches gilt für float 0.0
lg
Robert