Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Modbus Adapter ineffizient? Abfrage parallel möglich?

NEWS

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    8
    1
    189

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    1.8k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    11
    1
    767

Modbus Adapter ineffizient? Abfrage parallel möglich?

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
13 Beiträge 5 Kommentatoren 939 Aufrufe 5 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • C Offline
    C Offline
    cyberthom
    schrieb am zuletzt editiert von cyberthom
    #1

    Ich nutze den Modbus Adapter um Daten von meinem Fronius Wechselrichter abzufragen. Alles läuft wie erwartet. Ich habe jedoch festgestellt, das die einzelnen Abfragen der Register-Einträge sequentiell erfolgt, also eine nach der anderen. Die nächste Abfrage wird erst gesendet, nachdem die Antwort der vorigen Abfrage vorliegt. Das führt bei mir schon zu einer Verzögerung von 3 Sekunden zwischen der ersten und der letzten Abfrage. Was zu einer Verfälschung der Daten führt.
    Ist es möglich, alle Registerabfragen auf einmal abzusenden? Ich bin mir nicht sicher, ob es das Modbus/TCP Protokoll erlaubt auch mehrere Anfragen in einem Paket zu senden, aber ich denke das geht nicht.
    Scheinbar ist es sogar besser, alle Register im Modbus-Adapter zu konfigurieren, da er zusammenhängende Register als eine Anfrage absenden kann.
    Ich hatte mich eigentlich für Modbus entschieden, da es weniger Ressourcen benötigt als der Adapter für die Fronius API. Der Fronius-Adapter sendet jedoch alle Anfragen zeitgleich.
    Wahrscheinlich ist die einzige Möglichkeit dies zu umgehen, alle Registereinträge im Adapter zu konfigurieren. Dann kann die Abfrage als ein Paket versendet werden....

    B S 2 Antworten Letzte Antwort
    0
    • C cyberthom

      Ich nutze den Modbus Adapter um Daten von meinem Fronius Wechselrichter abzufragen. Alles läuft wie erwartet. Ich habe jedoch festgestellt, das die einzelnen Abfragen der Register-Einträge sequentiell erfolgt, also eine nach der anderen. Die nächste Abfrage wird erst gesendet, nachdem die Antwort der vorigen Abfrage vorliegt. Das führt bei mir schon zu einer Verzögerung von 3 Sekunden zwischen der ersten und der letzten Abfrage. Was zu einer Verfälschung der Daten führt.
      Ist es möglich, alle Registerabfragen auf einmal abzusenden? Ich bin mir nicht sicher, ob es das Modbus/TCP Protokoll erlaubt auch mehrere Anfragen in einem Paket zu senden, aber ich denke das geht nicht.
      Scheinbar ist es sogar besser, alle Register im Modbus-Adapter zu konfigurieren, da er zusammenhängende Register als eine Anfrage absenden kann.
      Ich hatte mich eigentlich für Modbus entschieden, da es weniger Ressourcen benötigt als der Adapter für die Fronius API. Der Fronius-Adapter sendet jedoch alle Anfragen zeitgleich.
      Wahrscheinlich ist die einzige Möglichkeit dies zu umgehen, alle Registereinträge im Adapter zu konfigurieren. Dann kann die Abfrage als ein Paket versendet werden....

      B Online
      B Online
      badsnoopy667
      schrieb am zuletzt editiert von badsnoopy667
      #2

      @cyberthom
      Das würde mich auch interessieren.
      Bei meinem Huawei SUN2000 kommen die Werte über Modbus (mit node-red) auch zeitverzögert. Ich habe mir jetzt so geholfen, das ich die Werte die z.B. ca. alle 3 Sekunden kommen erstmal in eine Liste schreibe (also eine Liste pro Datenpunkt). Dann nehme ich alle 15 Sekunden einfach den Mittelwert der Liste. Wenn ich das für alle Datenpunkte so mache und das Mittelwert-Ziehen gleichzeitig mache, dann habe ich Werte die einigermaßen zusammenpassen.

      Listen erstellen:

      listen.png

      Mittelwerte bilden:

      mittelwerte.png

      Achso: Die "Sperre" braucht man, damit er, während die Mittelwerte geschrieben werden nicht noch weitere Werte in die Listen schreibt. Sonst passt das nämlich wieder nicht zusammen.

      1 Antwort Letzte Antwort
      0
      • C cyberthom

        Ich nutze den Modbus Adapter um Daten von meinem Fronius Wechselrichter abzufragen. Alles läuft wie erwartet. Ich habe jedoch festgestellt, das die einzelnen Abfragen der Register-Einträge sequentiell erfolgt, also eine nach der anderen. Die nächste Abfrage wird erst gesendet, nachdem die Antwort der vorigen Abfrage vorliegt. Das führt bei mir schon zu einer Verzögerung von 3 Sekunden zwischen der ersten und der letzten Abfrage. Was zu einer Verfälschung der Daten führt.
        Ist es möglich, alle Registerabfragen auf einmal abzusenden? Ich bin mir nicht sicher, ob es das Modbus/TCP Protokoll erlaubt auch mehrere Anfragen in einem Paket zu senden, aber ich denke das geht nicht.
        Scheinbar ist es sogar besser, alle Register im Modbus-Adapter zu konfigurieren, da er zusammenhängende Register als eine Anfrage absenden kann.
        Ich hatte mich eigentlich für Modbus entschieden, da es weniger Ressourcen benötigt als der Adapter für die Fronius API. Der Fronius-Adapter sendet jedoch alle Anfragen zeitgleich.
        Wahrscheinlich ist die einzige Möglichkeit dies zu umgehen, alle Registereinträge im Adapter zu konfigurieren. Dann kann die Abfrage als ein Paket versendet werden....

        S Offline
        S Offline
        Schimi
        schrieb am zuletzt editiert von
        #3

        @cyberthom

        Bei meinen KACOS passiert das quasi in echtzeit (gefühlt ist keine verzögerung da)...

        Ich frage über Modbus aber auch nur 3 werte ab (Aktuelle Erzeugung, Gesamtertrag und Temp)...

        falls du nur gewisse sachen benötigst und überhaupt die abfragemenge reduzieren kannst...

        1 Antwort Letzte Antwort
        0
        • wendy2702W Online
          wendy2702W Online
          wendy2702
          schrieb am zuletzt editiert von
          #4

          3 Sekunden verfälschen die Daten?

          Für was benötigt ihr die schneller?

          Bitte keine Fragen per PN, die gehören ins Forum!

          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

          B 1 Antwort Letzte Antwort
          1
          • wendy2702W wendy2702

            3 Sekunden verfälschen die Daten?

            Für was benötigt ihr die schneller?

            B Online
            B Online
            badsnoopy667
            schrieb am zuletzt editiert von
            #5

            @wendy2702
            Wenn es bewölkt ist, geht die PV-Erzeugung schonmal innerhalb einer Sekunde um +/- 2000 Watt hoch und runter. Wenn dann der Wert der Erzeugung nicht synchron mit dem Wert für den Verbrauch ist zerhaut es dir komplett die Diagramme und die Berechnung der Einspeisung etc.
            Hätte selbst nicht gedacht, das so ein System so "schnell" ist, ist aber so.

            C wendy2702W 2 Antworten Letzte Antwort
            0
            • B badsnoopy667

              @wendy2702
              Wenn es bewölkt ist, geht die PV-Erzeugung schonmal innerhalb einer Sekunde um +/- 2000 Watt hoch und runter. Wenn dann der Wert der Erzeugung nicht synchron mit dem Wert für den Verbrauch ist zerhaut es dir komplett die Diagramme und die Berechnung der Einspeisung etc.
              Hätte selbst nicht gedacht, das so ein System so "schnell" ist, ist aber so.

              C Offline
              C Offline
              cyberthom
              schrieb am zuletzt editiert von
              #6

              Genau das ist das Problem. Es geht vor allem um die Berechnungen wie z.B. Eigenverbrauch usw. Da ist der Fehler über den Tag summiert schon durchaus relevant. Durch die sequenzielle Abarbeitung sind die Daten vom Smartmeter (hat eine höhere ID als der Inverter) 3 Sekunden älter.

              1 Antwort Letzte Antwort
              0
              • C Offline
                C Offline
                cyberthom
                schrieb am zuletzt editiert von
                #7

                Ich hab das jetzt erst einmal so gelöst, indem ich die Lücken in den Abfragen einfach mit "leeren" Abfragen auffülle. Dafür habe ich dann jeweils eine Abfrage vom Typ String mit der Länge der jeweiligen Lücke dazwischen gesetzt. Im PCAP Trace sehe ich nun, dass die Anfragen in einem IP-Paket versendet werden. Dadurch konnte ich die Zeitdifferenz auf 250ms reduzieren. Die Zeitdifferenz kommt zustande, da der Inverter und das Smartmeter eine andere Modbus-Adresse haben, daher müssen zwei Pakete gesendet werden.
                Ich nehme aber an, dass es bestimmt noch eine elegantere Lösung gibt.
                Ich habe mir da momentan scheinbar auch noch einen kleinen Fehler eingebaut, da ich folgende Warnung im Log sehe:

                Poll error count: 1 code: {"errorCode":131,"exceptionCode":3,"message":"ILLEGAL DATA VALUE"}
                
                1 Antwort Letzte Antwort
                0
                • C Offline
                  C Offline
                  cyberthom
                  schrieb am zuletzt editiert von
                  #8

                  Das sieht dann so aus:
                  4e31e253-5d01-47ce-b064-2f89d148cfe8-image.png
                  d385186b-00f6-46c4-af2d-4fde63bb5c9c-image.png

                  1 Antwort Letzte Antwort
                  0
                  • B badsnoopy667

                    @wendy2702
                    Wenn es bewölkt ist, geht die PV-Erzeugung schonmal innerhalb einer Sekunde um +/- 2000 Watt hoch und runter. Wenn dann der Wert der Erzeugung nicht synchron mit dem Wert für den Verbrauch ist zerhaut es dir komplett die Diagramme und die Berechnung der Einspeisung etc.
                    Hätte selbst nicht gedacht, das so ein System so "schnell" ist, ist aber so.

                    wendy2702W Online
                    wendy2702W Online
                    wendy2702
                    schrieb am zuletzt editiert von
                    #9

                    @badsnoopy667 sagte in Modbus Adapter ineffizient? Abfrage parallel möglich?:

                    Berechnung der Einspeisung

                    Könnte man, wenn man den Tageswert haben will,pro Tag genau mit den Zählerständen des Smartmeter Adapters für Einspeisung berechnen --> Differenz aus z.B. Wert um 23:59Uhr am 10.03. und 0:00Uhr Nachts am 10.03., also übergang vom 09.03.-10.03.. Weil auch nur das der Wert ist den das EVU, die Steuer und was weiß ich noch wen alles intererssiert. Will man den aktuellen Wert haben liefert der Smartmeter diesen besser als jeder WR.

                    @cyberthom sagte in Modbus Adapter ineffizient? Abfrage parallel möglich?:

                    Eigenverbrauch

                    Ist der Wert Erzeugung PV Anlage plus Bezug Netzbetreiber. Selbst wenn Modbus schneller liefert, in welchem Intervall bekommt ihr die Daten vom Zähler?

                    Ist also eigentlich aus meiner Sicht kein Problem des Adapters und der Poll bzw. Antwortzeiten sondern lediglich für eure Kurven ein Thema. Ihr werdet mit Sicherheit kein Gerät im Sekundentakt schalten oder Steuern bloß wenn gerade mal eine Wolke durchzieht, oder doch?

                    Ich kenne jetzt den Fronius Adapter nicht da ich nur SMA WRs habe, kann mir aber kaum vorstellen das er die Werte im Sekundentakt oder noch schneller liefert.

                    Aber das sind bloß meine Gedanken dazu und das der Adapter deshalb ineffizient sei lese ich hier zum ersten mal. Kann mich auch nicht erinnern jemals etwas negatives wegen der Zeiten gelesen zu haben.

                    Meine Kurven und Tabellen in Grafana sehen auf den Tag oder längere Zeiträume betrachtet Schlüssig aus.

                    Bitte keine Fragen per PN, die gehören ins Forum!

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    B 1 Antwort Letzte Antwort
                    0
                    • wendy2702W wendy2702

                      @badsnoopy667 sagte in Modbus Adapter ineffizient? Abfrage parallel möglich?:

                      Berechnung der Einspeisung

                      Könnte man, wenn man den Tageswert haben will,pro Tag genau mit den Zählerständen des Smartmeter Adapters für Einspeisung berechnen --> Differenz aus z.B. Wert um 23:59Uhr am 10.03. und 0:00Uhr Nachts am 10.03., also übergang vom 09.03.-10.03.. Weil auch nur das der Wert ist den das EVU, die Steuer und was weiß ich noch wen alles intererssiert. Will man den aktuellen Wert haben liefert der Smartmeter diesen besser als jeder WR.

                      @cyberthom sagte in Modbus Adapter ineffizient? Abfrage parallel möglich?:

                      Eigenverbrauch

                      Ist der Wert Erzeugung PV Anlage plus Bezug Netzbetreiber. Selbst wenn Modbus schneller liefert, in welchem Intervall bekommt ihr die Daten vom Zähler?

                      Ist also eigentlich aus meiner Sicht kein Problem des Adapters und der Poll bzw. Antwortzeiten sondern lediglich für eure Kurven ein Thema. Ihr werdet mit Sicherheit kein Gerät im Sekundentakt schalten oder Steuern bloß wenn gerade mal eine Wolke durchzieht, oder doch?

                      Ich kenne jetzt den Fronius Adapter nicht da ich nur SMA WRs habe, kann mir aber kaum vorstellen das er die Werte im Sekundentakt oder noch schneller liefert.

                      Aber das sind bloß meine Gedanken dazu und das der Adapter deshalb ineffizient sei lese ich hier zum ersten mal. Kann mich auch nicht erinnern jemals etwas negatives wegen der Zeiten gelesen zu haben.

                      Meine Kurven und Tabellen in Grafana sehen auf den Tag oder längere Zeiträume betrachtet Schlüssig aus.

                      B Online
                      B Online
                      badsnoopy667
                      schrieb am zuletzt editiert von
                      #10

                      @wendy2702 Guten Morgen!
                      Ich glaube gar nicht, das der Modbus Adapter irgendwie ineffizient wäre. Meine Anwort dazu wäre: Nein, der Adapter ist gut, aber das Protokoll an sich ist vielleicht nicht das Beste, wenn man hochfrequent Daten abrufen möchte. Denn auch über node-red ist ja der Verzug da!
                      Das mit dem Smartmeter Adapter gucke ich mir mal an! Ich hatte es jetzt mit dem sourceanalytix Adapter versucht, aber ich versteh noch nicht, wie ich den korrekt einstellen muss.

                      C 1 Antwort Letzte Antwort
                      0
                      • wendy2702W Online
                        wendy2702W Online
                        wendy2702
                        schrieb am zuletzt editiert von
                        #11

                        @badsnoopy667 Source Analytixs benötig auch Daten von Smartmeter oder ähnlichem und übernimmt nur das „Rechnen“.

                        Bitte keine Fragen per PN, die gehören ins Forum!

                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                        1 Antwort Letzte Antwort
                        0
                        • B badsnoopy667

                          @wendy2702 Guten Morgen!
                          Ich glaube gar nicht, das der Modbus Adapter irgendwie ineffizient wäre. Meine Anwort dazu wäre: Nein, der Adapter ist gut, aber das Protokoll an sich ist vielleicht nicht das Beste, wenn man hochfrequent Daten abrufen möchte. Denn auch über node-red ist ja der Verzug da!
                          Das mit dem Smartmeter Adapter gucke ich mir mal an! Ich hatte es jetzt mit dem sourceanalytix Adapter versucht, aber ich versteh noch nicht, wie ich den korrekt einstellen muss.

                          C Offline
                          C Offline
                          cyberthom
                          schrieb am zuletzt editiert von
                          #12

                          @badsnoopy667 Sorry für die späte Rückmeldung, war eine Weile nicht online da Kind bekommen :-)
                          Ich möchte aber noch einmal kurz erklären, warum ich nach wie vor der Meinung bin, dass der Modbus Adapter sogar u.U. extrem ineffizient ist. Das Modbus Protokoll ist sogar extrem effizient. Im Vergleich zu REST API basierten Protokollen (wie z.B. Fronius Solar API), muss der Wechselrichter nicht jedes Mal die Nachricht (z.B. als JSON) zusammen bauen. Zudem ist die Datenmenge über REST und co um ein vielfaches höher als bei Modbus. Das geniale an Modbus ist ja, dass einfach nur die Registerwerte übertragen werden. Das ist sowohl für den Wechselrichter wesentlich Ressourcen-schonender als auch von den übertragenen Datenmenge nur ein Bruchteil (geringeres Sequenzialisierungs-Delay).
                          Der Modbus Adapter nutzt diese Stärken leider nicht ganz aus. Falls die konfigurierten Registerwerte nicht zusammenhängend sind, sendet der Adapter für jedes einzelne Register eine separate Anfrage.
                          Was der Adapter jedoch richtig gut macht z.B. im Vergleich zum Fronius Adapter: Es wird eine einzige TCP-Session verwendet und nicht nach jeder Anfrage eine neue TCP-Session aufgebaut (TCP-Handshake).
                          Ein Vorschlag zur Optimierung: Der Adapter könnte die Zwischenräume zwischen den abzufragenden Registern intelligent auffüllen und bei den Antworten dann wieder "ignorieren". Der wichtige Parameter zur maximalen Anforderungslänge ist ja schon vorhanden.

                          ? 1 Antwort Letzte Antwort
                          0
                          • C cyberthom

                            @badsnoopy667 Sorry für die späte Rückmeldung, war eine Weile nicht online da Kind bekommen :-)
                            Ich möchte aber noch einmal kurz erklären, warum ich nach wie vor der Meinung bin, dass der Modbus Adapter sogar u.U. extrem ineffizient ist. Das Modbus Protokoll ist sogar extrem effizient. Im Vergleich zu REST API basierten Protokollen (wie z.B. Fronius Solar API), muss der Wechselrichter nicht jedes Mal die Nachricht (z.B. als JSON) zusammen bauen. Zudem ist die Datenmenge über REST und co um ein vielfaches höher als bei Modbus. Das geniale an Modbus ist ja, dass einfach nur die Registerwerte übertragen werden. Das ist sowohl für den Wechselrichter wesentlich Ressourcen-schonender als auch von den übertragenen Datenmenge nur ein Bruchteil (geringeres Sequenzialisierungs-Delay).
                            Der Modbus Adapter nutzt diese Stärken leider nicht ganz aus. Falls die konfigurierten Registerwerte nicht zusammenhängend sind, sendet der Adapter für jedes einzelne Register eine separate Anfrage.
                            Was der Adapter jedoch richtig gut macht z.B. im Vergleich zum Fronius Adapter: Es wird eine einzige TCP-Session verwendet und nicht nach jeder Anfrage eine neue TCP-Session aufgebaut (TCP-Handshake).
                            Ein Vorschlag zur Optimierung: Der Adapter könnte die Zwischenräume zwischen den abzufragenden Registern intelligent auffüllen und bei den Antworten dann wieder "ignorieren". Der wichtige Parameter zur maximalen Anforderungslänge ist ja schon vorhanden.

                            ? Offline
                            ? Offline
                            Ein ehemaliger Benutzer
                            schrieb am zuletzt editiert von Ein ehemaliger Benutzer
                            #13

                            @cyberthom
                            Vielleicht ein blöde Idee, aber könnte man nicht all die Werte (Register), die Du über Modbus-Adapter sequentiell ausliest unter mehreren Instanzen des Modbus-Adapters aufteilen und so quasi "parallel" diese abfragen?

                            Ah ja,... herzlichen Glückwunsch und viel Spaß mit dem Nachwuchs :)

                            1 Antwort Letzte Antwort
                            0

                            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
                            Antworten
                            • In einem neuen Thema antworten
                            Anmelden zum Antworten
                            • Älteste zuerst
                            • Neuste zuerst
                            • Meiste Stimmen


                            Support us

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

                            523

                            Online

                            32.9k

                            Benutzer

                            83.0k

                            Themen

                            1.3m

                            Beiträge
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                            ioBroker Community 2014-2025
                            logo
                            • Anmelden

                            • Du hast noch kein Konto? Registrieren

                            • Anmelden oder registrieren, um zu suchen
                            • Erster Beitrag
                              Letzter Beitrag
                            0
                            • Home
                            • Aktuell
                            • Tags
                            • Ungelesen 0
                            • Kategorien
                            • Unreplied
                            • Beliebt
                            • GitHub
                            • Docu
                            • Hilfe