NEWS
setStateChanged überschreibt gleichen Wert
-
Hallo,
ich würde gerne einen gleichen Wert nicht überschreiben, wenn setState ausgeführt wird.
Dies ist natürlich über folgende Abfrage möglich:
function test(){ if(getState('myState').val != false){ setState('myState', false); } }Ich habe in der JavaScript Doku folgende Funktion gefunden:
setStateChangedWenn ich dann allerdings diese Funktion nutze, wird beim Aufruf der Funktion "test" trotzdem der Wert false erneut geschrieben.
function test(){ setStateChanged('myState', false); }Mache ich irgendwas falsch? Ist die Funktion dafür nicht geeignet?
Grüße,
Olli -
Hallo,
ich würde gerne einen gleichen Wert nicht überschreiben, wenn setState ausgeführt wird.
Dies ist natürlich über folgende Abfrage möglich:
function test(){ if(getState('myState').val != false){ setState('myState', false); } }Ich habe in der JavaScript Doku folgende Funktion gefunden:
setStateChangedWenn ich dann allerdings diese Funktion nutze, wird beim Aufruf der Funktion "test" trotzdem der Wert false erneut geschrieben.
function test(){ setStateChanged('myState', false); }Mache ich irgendwas falsch? Ist die Funktion dafür nicht geeignet?
Grüße,
Olli -
@olterion sagte: trotzdem der Wert false erneut geschrieben.
Gerade getestet: Es wird nur dann nicht aktualisiert, wenn sowohl der Wert als auch die Bestätigung übereinstimmen. Das macht natürlich bei Adapter-Datenpunkten keinen Sinn.
-
Hallo,
vielen Dank für die Erläuterungen.
Ich versuche tatsächlich einen Datenpunkt eines Adapters zu beschreiben.
Dieser setzt dann natürlich den ack immer auf true, wenn er die Daten verarbeitet hat.Schade, die Dokumentation sagt ja aus, dass der Datenpunkt nur geschrieben wird, wenn die VALUE (val) sich geändert hat:
Same as setState, but set value only if the value is really changed.
An der Stelle ist die Dokumentation dann wohl nicht ganz korrekt.
@Bluefox könnte man die Funktion setStateChanged nicht so erweitern, dass man angeben kann, welche Attribute betrachtet werden sollen? (in meinem Fall würde der Vergleich von val ausreichen)
Grüße,
Olli -
Hallo,
vielen Dank für die Erläuterungen.
Ich versuche tatsächlich einen Datenpunkt eines Adapters zu beschreiben.
Dieser setzt dann natürlich den ack immer auf true, wenn er die Daten verarbeitet hat.Schade, die Dokumentation sagt ja aus, dass der Datenpunkt nur geschrieben wird, wenn die VALUE (val) sich geändert hat:
Same as setState, but set value only if the value is really changed.
An der Stelle ist die Dokumentation dann wohl nicht ganz korrekt.
@Bluefox könnte man die Funktion setStateChanged nicht so erweitern, dass man angeben kann, welche Attribute betrachtet werden sollen? (in meinem Fall würde der Vergleich von val ausreichen)
Grüße,
OlliZu dem Thema gibts ein Issue
https://github.com/ioBroker/ioBroker.javascript/issues/1720
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden