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.
    • 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

                                701
                                Online

                                31.9k
                                Users

                                80.2k
                                Topics

                                1.3m
                                Posts

                                5
                                15
                                2783
                                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