Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Hm-rega Aktualisierung nur bei echter Änderung

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Hm-rega Aktualisierung nur bei echter Änderung

    This topic has been deleted. Only users with topic management privileges can see it.
    • N
      nobody last edited by

      Hallo,

      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.

      Hierfür wäre eine neue Methode (z.B. setStateIfChanged) im js-Controller sinnvoll, die die Wertprüfung direkt vor dem Speichern macht. Dann wäre keine zusätzliche Kommunkikation zwischen hm-rega-Adapter und js-controller erforderlich und die Latenz würde nicht wesentlich steigen.

      Gruß

      Markus

      1 Reply Last reply Reply Quote 0
      • Bluefox
        Bluefox last edited by

        @nobody:

        Hallo,

        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.

        Hierfür wäre eine neue Methode (z.B. setStateIfChanged) im js-Controller sinnvoll, die die Wertprüfung direkt vor dem Speichern macht. Dann wäre keine zusätzliche Kommunkikation zwischen hm-rega-Adapter und js-controller erforderlich und die Latenz würde nicht wesentlich steigen.

        Gruß

        Markus `
        Interessanter Vorschlag.

        1 Reply Last reply Reply Quote 0
        • N
          nobody last edited by

          Ich hab mal in die statesInRedis.js und statesInMemServer.js rein geschaut.

          Eigentlich ist da ja schon alles da. Der alte Wert wird ausgelesen und das Timestamp für die Änderung nur dann geändert, wenn eine Wertänderung stattgefunden hat. Man müsste nur per optionalem Parameter festlegen können, ob der Wert geschrieben werden soll, wenn sich nur der ts-Wert geändert hat.

          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 last edited by

            @nobody:

            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);
                        }    
            
            
            1 Reply Last reply Reply Quote 0
            • N
              nobody last edited by

              @paul53:

              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.

              1 Reply Last reply Reply Quote 0
              • N
                nobody last edited by

                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.

                1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 last edited by

                  @nobody:

                  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.

                  1 Reply Last reply Reply Quote 0
                  • N
                    nobody last edited by

                    ok.

                    Ich hab noch eine Kleinigkeit ergänzt:

                    Wenn ein State in der CCU gesetzt wird, der State nun anschließend direkt mit ack=true überschrieben, weil dies nur noch durch den Poll erfolgt, wenn sich der Wert unterscheidet.

                    1 Reply Last reply Reply Quote 0
                    • Bluefox
                      Bluefox last edited by

                      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

                      1 Reply Last reply Reply Quote 0
                      • N
                        nobody last edited by

                        Danke bluefox.

                        Ich hab die neue Version bei mir installiert. Bis jetzt läuft sie ohne Probleme und wie ich es mir vorgestellt hatte.

                        1 Reply Last reply Reply Quote 0
                        • Bluefox
                          Bluefox last edited by

                          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.

                          1 Reply Last reply Reply Quote 0
                          • apollon77
                            apollon77 last edited by

                            Auch installiert, alles ok bisher.

                            Ich beobachte mal die Lastdaten der CCU die nächsten Tage 🙂

                            1 Reply Last reply Reply Quote 0
                            • P
                              pix last edited by

                              Seit 23.8. installiert. Tablet reagiert viel besser. Beobachte weiter, aber sieht sehr gut aus!

                              Pix

                              1 Reply Last reply Reply Quote 0
                              • apollon77
                                apollon77 last edited by

                                Die Lastgraphen der CCU zeigen keine echte Veränderung. Vom CubieTruck hab ich keider keine 😞

                                1 Reply Last reply Reply Quote 0
                                • N
                                  nobody last edited by

                                  Hallo apollon77,

                                  hätte mich auch sehr gewundert, wenn sich für die ccu irgendwas geändert hätte. Es werden ja weiterhin alle Werte abgerufen und erst im Adapter gefiltert.

                                  Gesendet von meinem SM-G900F mit Tapatalk

                                  1 Reply Last reply Reply Quote 0
                                  • First post
                                    Last post

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate
                                  FAQ Cloud / IOT
                                  HowTo: Node.js-Update
                                  HowTo: Backup/Restore
                                  Downloads
                                  BLOG

                                  845
                                  Online

                                  31.8k
                                  Users

                                  80.0k
                                  Topics

                                  1.3m
                                  Posts

                                  5
                                  15
                                  2762
                                  Loading More Posts
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                  The ioBroker Community 2014-2023
                                  logo