NEWS
Adapterentwicklung setState ohne Auslösen einer Funktion
-
Hallo zusammen,
bin gerade bei meinem zweiten Adapter bei, dem Adapter für das Jung/Gira eNet Gateway.
Hier frage ich beim Start des Adapters alle Geräte, Räume etc. ab, schreibe dafür Objekte und setze mittels setState die aktuellen Werte.
Im
adapter.on('stateChange', function (id, state)rufe ich eine Funktion auf, die den aktuellen Wert für den State am eNet gateway setzt.
Das funktioniert auch soweit.
Zusätzlich habe ich einen Poll Timer, der die aktuellen States vom eNet Gateway abrufen soll und in die States des ioBrokers schreiben soll, allerdings soll dies NUR bei den States geschehen, die sich NICHT verändert haben.
Wie kann ich das lösen? Bzw. wie ermittele ich, ob sich ein State verändert hat?
-
Bei Adaptern ist der „übliche“ weg dir einfach die aktuellen Werte zu merken in einer eigenen Struktur (Objekt mit den ids als key oder so) und dann selbst zu vergleichen und beim Schreiben dann immer dort auch aktualisieren. Es gibt glaube auch ein setStateNotChanged oder so, aber der arbeitet ggf nicht sooo Performant wenn es viele Daten sind.
Üblicherweise sind die Daten diesmal da redundant hält nicht sooo viel.
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