MiSchroe/ioBroker.klf200

KLF 200: Current Position – Wert im Trigger falsch

Automatisierer0 opened this issue · 1 comments

Ich habe einen Trigger für die Current Poition.
+++++++++ Screenshot: Objekt_Current Position.jpg+++++++++
Objekt_Current Position

Der Trigger ist in Blockly geschrieben:
+++++++++ Screenshot: Trigger Current Position.jpg+++++++++
Trigger Current Position

Das Verhalten ist OK, wenn ich ein Fenster aufmache und warte bis es offen ist. Wie man im Screenshot erkennt, sendet der KLF200, wenn das Fenster vollständig geöffnet ist im Trigger der richtigen Wert Current Position = 100
+++++++++ Screenshot Fenster Aufmachen -- mit Kommentar.jpg+++++++++
Screenshot Fenster Aufmachen -- mit Kommentar

Hier der Fehlerfall:
Das Fenster wird wie im obigen Fall geöffnet, aber während des Öffnungsvorgangs wird es wieder geschlossen. Es ist hier im Trigger für die Current Position kein richtiger Wert!
(Verdacht: Es schaut so aus als wäre es ein Nullpointer)
+++++++++ Screenshot Zumachen während Aufmachen läuft -- mit Kommenar.jpg+++++++++
Screenshot Zumachen während Aufmachen läuft -- mit Kommenar

Wenn der aktuelle Befehl durch einen anderen Befehl überschrieben wird, z.B. wenn man das Stop-Kommando sendet, dann wird zwischendrin für den alten Befehl eine Kommando-Ende Nachricht gesendet mit dem Feld StatusReply = 29 (Command Overruled = Befehl überschrieben). In dieser Nachricht befindet sich für die aktuelle Position ein ungültiger Wert, welchen ich entsprechend abfange und daher der Prozent-Wert auf NULL gesetzt wird. Durch den zweiten Befehl wird jedoch, wenn dieser abgeschlossen ist, wiederum eine gültige Position gesendet.

In Blockly kann man das Problem mit einer gezielten Abfrage auf ungleich NULL umgehen:
image

Der Wert ist daher nicht falsch, sondern zwischendurch kurzfristig nicht bekannt, was grundsätzlich eine gültige Aussage ist.