NEWS
Javascript v8.3.1 "on" Funktion immer mit "change: 'ne'"?
-
Hallo,
ich ahbe ein Script schon länger am laufen und nach einem Update des javascript Adapters scheint es so, dass sich am Verhalten der "on" Funktion etwas geändert hat.
In der Hilfe ist folgendes beschrieben:
on -> change -> "ne" -> (not equal) New value must be not equal to the old one (state.val != oldState.val) If pattern is id-string this value is used by defaultNun wird aber eine on Funktion immer wieder ausgeführt, obwohl die value von mqtt.0.sensor sich nicht ändert (immer value=false)
on({id: 'mqtt.0.sensor'}, function(){ log("testausgabe"); })
Ich muss nun folgendes schreiben, damit das Verhalten passt:
on({id: 'mqtt.0.sensor', change: 'ne'}, function(){ log("testausgabe"); })
Vorher hat die Funktion so gearbeitet wie sie soll.
Gibt es einen bekannten Fehler, der dieses Verhalten beschreibt, oder ist die Doku veraltet oder habe ich einen Denk-/Verständnisfehler?Grüße,
Olli -
-
@olterion sagte: Nun wird aber eine on Funktion immer wieder ausgeführt
Das war schon immer so. Aus der Doku:
Notice: Please note, that by default "change" is equal to "any", except when only id as string is set (like on('id', () => {});). In last case change will be set to "ne".
@olterion sagte in Javascript v8.3.1 "on" Funktion immer mit "change: 'ne'"?:
Ich muss nun folgendes schreiben, damit das Verhalten passt:
Du kannst auch schreiben, damit nur bei Wertänderung getriggert wird:
on('mqtt.0.sensor', function(){ log("testausgabe"); });
-
@paul53
Vielen Dank, also hatte ich ja doch etwas falsch verstanden.Habe es nun ohne "id:{..}" eingebaut, wie du geschrieben hast und die Funktion wird auch ohne "change: 'ne'" nicht immer wieder ausgeführt.
Vielen Dank für die schnelle Hilfe!
Grüße,
Olli