NEWS
Reagieren auf manuelle Änderung eines States
-
Hallo zusammen,
nächste Aufgabe...
Mein Adapter legt ein Satz Objekte an. Bei gewissen Objekten möchte ich, dass der Anwender einen Wert ändern darf und damit eine Aktion auslöst. Wie mache ich das?Ich habe versucht mit
this.adapter.on('stateChange', this.onStateChange.bind(this));
eine Funktion (onStateChange) zu registrieren. Entweder mach ich das falsch, oder es funktioniert nicht.
Danke!
-
@fogg wie sieht denn die Funktion onStateChange aus ?
A.
-
In der Objekt Definition des datenpunkt gib es common.read und common.write mit du bestimmen kannst was der Benutzer darf.
https://github.com/ioBroker/ioBroker.docs/blob/master/docs/en/dev/objectsschema.md#stateWie du grundsätzlich mit Datenpunkt Änderungen umgehst, kannst du hier schauen
https://github.com/oweitman/ioBroker.squeezeboxrpc/blob/c1dba1be2021eff048444a2e4c0f5fdb10324c9e/squeezeboxrpc.js#L72 -
Ich vermute mal, dir fehlt das SUBSCRIBE. Du musst den State oder alle States mittels subscribe registrieren sodass dir Nachrichten gesendet werden.
Bitte beachte dass der Adapter (im Normalfall) nur auf Änderungen mit ack==false reagieren sollte.
Generell empfehle ich für Entwicklungsfragen unseren Telegramm / Discord chat zu verwenden. Invites finden sich auf https://www.iobroker.dev