NEWS
Vis.setValue aktualisiert langsam (1000ms)
-
Alter Test:
! Ich habe hier ein komisches Verhalten, das mir beim Debug des folgenden Problems aufgefallen ist: viewtopic.php?f=30&t=17746&p=187554#p187554
! Ich habe mir ein Tasterwidget gebaut, dass auf touchstart und touchend events reagiert. In der Konsole sehe ich auch, dass diese unmittelbar dann ausgeführt werden, wenn das Event eintritt. Der boolsche Wert soll per Modbus an meine SPS übertragen werden. Erst hatte ich das Netzwerk delay im Verdacht, da ich auf 500ms veränderung in der SPS prüfe, ob die Taste kurz oder lange gedrückt wird. Dann habe ich gedacht, dass es evtl. die eingestellte "pulsetime" in dem Modbus Adapter ist.
! Beides ist es aber nicht. Problem istadapter.on('stateChange', (id, state) => {});
Dieser triggert GENAU 1 Sekunde nach dem ersten Wert zurück. Ein Testscript in Javascript innerhalb iobroker zeigt, dass die beiden Events unmittelbar dort ankommen. Dort ist keinerlei Zeitverzug erkennbar.
Update meiner Ergebnisse:
Offensichtlich ist es doch nicht das stateChange Event, das zu langsam reagiert, sondern vis.setValue().
Egal in welcher Kombination ich das in einem Adapter einbaue (ob mit settimeout oder per zweitem Event auf loslassen der Taste), das zweite Event kommt immer erst frühestens 1 Sekunde am Objekt an. Der Funktionsaufruf setvalue() erfolgt innerhalb weniger ms hintereinander. Offensichtlich verhindert aber irgendwas, dass der zweite Befehl in setvalue() schneller abgearbeitet wird?!
-
"Problem" des Problems gefunden: https://github.com/ioBroker/ioBroker.vis/issues/193