NEWS
Hm-rega Aktualisierung nur bei echter Änderung
-
der hm-rega-Adapter verursacht eine ziemliche Grundlast, da alle Variablen im konfigurierten Intervall aus der CCU gelesen und immer überschrieben werden. Die Last entsteht leider nicht nur in der CCU und js-Controller sondern auch in node-red und vis.
Hier wäre es besser, wenn vor dem Überschreiben des Werts erst einmal überprüft wird, ob der in der states-DB gespeicherte Wert vom neuen Wert abweicht oder ack noch nicht gesetzt ist und nur dann, wenn eine Wertänderung erforderlich ist, der Wert wirklich überschrieben wird. `
Da der hm-rega-Adapter die Werte ohnehin puffert, wäre eine einfache Abfrage innerhalb des Adapters sinnvoll (Beispiel: pollVariables, Zeile 463)if(regaStates[id] !== val) { regaStates[id] = val; adapter.setState(adapter.namespace + '.' + id, val, true); } -
Da der hm-rega-Adapter die Werte ohnehin puffert, wäre eine einfache Abfrage innerhalb des Adapters sinnvoll (Beispiel: pollVariables, Zeile 463) `
Danke für den Tipp. Die Stelle sieht vielversprechend aus. Ich ändere das mal bei mir lokal und schaue, ob noch alles korrekt läuft.
-
ich hab die Änderung nun in die beiden Poll-Funktionen für Variablen und Programm-Status eingebaut.
Funktioniert soweit. Änderungen werden weiterhin übertragen, aber ansonsten werden keine Ereignisse ausgelöst.
Falls jemand testen möchte:
https://github.com/nobodyMO/ioBroker.hm-rega.git
Wenn keine Probleme auftauchen werde ich morgen dafür einen pull request einstellen.
-
ich hab die Änderung nun in die beiden Poll-Funktionen für Variablen und Programm-Status eingebaut. `
Schau Dir mal noch zwei Stellen in der von Dir geänderten Version an:-
Zeilen 649-651
-
Zeilen 1223- 1240
Diese sollten wohl auch noch durch eine entsprechende Abfrage ergänzt werden ?
EDIT: Die Funktionen mit den angegebenen Zeilen werden anscheinend nur bei Adapter-Start aufgerufen. Damit erübrigt sich die zusätzliche Abfrage.
-
-
Habe erst jetzt die Diskussion entdeckt, bevor aber auch die Datei geändert. :?
Ist noch nicht getestet, aber bei mir sind mehr Verbesserungen drin. ;)
48_hm-rega.js -
Man kann jetzt vom git updaten und ausprobieren. Ich hoffe es wird was für Performance sorgen.
Du (nobody) hast schon gut die Stelle gefunden. Wenn die Leute update alle 5-10 Sekunden haben und dazu noch 100-150 Alarme/Variable/Programme, dann ist es ordentlich last gewesen.