Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [gelöst] Benötige Hilfe MODBUS TCP: Hoymiles HM-1500/DTU-PRO

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    [gelöst] Benötige Hilfe MODBUS TCP: Hoymiles HM-1500/DTU-PRO

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

      Das Problem war hier wie so häufig mindestens zum Teil vor dem Computer.

      Mit folgender Konfiguration:
      K4.jpg

      kommt jetzt folgendes richtiges Ergebnis:
      E4.jpg

      Die DTU-Seriennummer muss man übrigens noch von dem dezimalen Wert in Hexadezimal umwandeln und dann die drei Felder aneinanderhängen, um zum richtigen Ergebnis zu kommen.

      Eine Ergänzungsfrage: kann man die MODBUS-Abfragen eigentlich auf ein Zeitfenster von z.B. 5:00 bis 22:00 Uhr beschränken? Wenn ja: wie? Weil außerhalb tut sich ja am Wechselrichter eh nix.

      H J Sascha Roth 3 Replies Last reply Reply Quote 0
      • H
        Habib123 @seebaernd last edited by

        @seebaernd
        ich hab hier auch eine Teil meiner Anlage mit Hoymiles WR am laufen. Jetzt hab ich die DTU hinten im Garten mit WLAN in Betrieb und bekomme keinen Zugriff auf die Modbus Schnittstelle. Geht es nur mit ETH-Kabel?
        Kann man jeden einzelnen Wechselrichter getrennt auslesen?

        VG
        Habib

        J Johan Suck 2 Replies Last reply Reply Quote 0
        • J
          jauntyjosef @Habib123 last edited by

          @habib123
          Es geht nur, wenn die DTU Pro über Ethernet verbunden ist. Über Wlan geht es nicht.
          Ob man damit mehrere Wechselrichter getrennt auslesen kann, weiß ich leider nicht.

          1 Reply Last reply Reply Quote 0
          • J
            jauntyjosef @seebaernd last edited by

            @seebaernd
            Mit deinen Einstellungen funktioniert es bei mir auch mit der DTU Pro und dem HM-1500, aber ich versuche es gerade zu verstehen und vielleicht kannst du mir helfen. Man müsste ja weit mehr auslesen können.

            Die Adresse 4112 entspricht dem Register 0x1010 ... ok.
            Die Adresse 4113 müsste dann aber dem Register 0x1011 entsprechen (laut Doku wäre 0x1011 noch immer PV Voltage). Bei 4113 kommt allerdings TodayProduction und das wäre eigentlich das Register 0x1012 und 0x1013, was wiederum der Adresse 4114 und 4115 entsprechen würde. Das verstehe ich leider überhaupt nicht.
            Kann mir das jemand erklären? Habe ich da etwas komplett falsch verstanden??

            D 1 Reply Last reply Reply Quote 0
            • D
              DerFux @jauntyjosef last edited by DerFux

              @jauntyjosef
              Vielen Dank an seebaernd. Endlich läuft es auch bei mir. Die Einstellungen haben geholfen. Ich schließe mich der Frage an. Ich verstehe es auch nicht, obwohl es funktioniert.
              Ich habe eine kleine Änderung. Bei der Leistung habe ich die Einheit auf Watt gestellt und dann durch 10 geteilt (Formel: x / 10), dann stimmt es auch.

              J 1 Reply Last reply Reply Quote 0
              • J
                jauntyjosef @DerFux last edited by

                @derfux
                Kann man das mit x/10 auch gleich im Modus Adapter integrieren??

                D 1 Reply Last reply Reply Quote 0
                • D
                  DerFux @jauntyjosef last edited by

                  @jauntyjosef modbus.jpg
                  Ist direkt im Adapter drin.

                  J 1 Reply Last reply Reply Quote 0
                  • J
                    jauntyjosef @DerFux last edited by

                    @derfux
                    Danke, ich habs zufällig gefunden, als ich vor einem Windows PC saß. Seltsam, aber auf meinem Mac finde ich das weder mit dem Safari noch mit dem Firefox Browser ... egal, das ist ein anderen Thema.

                    Das mit dem ioBroker Modbus gebe ich jetzt auf. Da komme ich auf keine vernünftige Lösung.
                    Ich habe nun einen Node Red Flow gefunden, damit klappte es wunderbar. Damit wird alles ausgelesen.

                    BananaJoe 1 Reply Last reply Reply Quote 0
                    • BananaJoe
                      BananaJoe Most Active @jauntyjosef last edited by

                      @jauntyjosef sagte in [gelöst] Benötige Hilfe MODBUS TCP: Hoymiles HM-1500/DTU-PRO:

                      Ich habe nun einen Node Red Flow gefunden, damit klappte es wunderbar. Damit wird alles ausgelesen.

                      Kannst du den mal verlinken? Ich werde es zwar nicht mit NodeRed machen, aber ich kann mir ja abschauen wie es gemacht wurde.

                      J 1 Reply Last reply Reply Quote 0
                      • J
                        jauntyjosef @BananaJoe last edited by

                        @bananajoe
                        Natürlich:
                        NodeRed Flow Hoymiles

                        Das ist auch so, dass es logisch und verständlich ist. Warum das mit dem Modbus Adapter nicht klappt, ist mir noch ein vollkommenes Rätsel.

                        BananaJoe 1 Reply Last reply Reply Quote 0
                        • BananaJoe
                          BananaJoe Most Active @jauntyjosef last edited by

                          @jauntyjosef ich habe so einiges in meinem Leben beim Programmieren, Einrichten etc. auf Anhieb nur schwer hinbekommen.
                          Mit etwas zeitlichen Abstand und mehr Erfahrung klappte es dann später um so besser 🙂
                          Das Modbus-Protokoll bzw. die Art der Datenübertragung ist nun wirklich nicht mein Traumgebiet (ich stehe auf Web-API Schnittstellen mit JSON und MQTT). Wenn man bedenkt wo es historisch her kommt - da kam es halt auf jedes Bit und Byte an.

                          1 Reply Last reply Reply Quote 0
                          • Johan Suck
                            Johan Suck last edited by

                            Hallo an alle,
                            erstmal vielen Dank für diesen Thread und die Tipps. Ich habe es geschafft per modbus mich mit der DTU Pro zu verbinden.
                            Da ich noch recht neu im iobroker bin muss ich hier mal ne Frage loswerden.

                            Ich habe hier im Zweifamilienwohnhaus 2 Hoymiles HM 600 mit je 2 x 370 W Solarpanels aufgebaut. DTU Pro ist auch vorhanden, funktioniert soweit einwandfrei. Was mich an der Hoymiles Cloud nervt ist, das ich nur in Summe beide Anlagen auswerten kann, hatte dazu schon Kontakt mit dem Support, allerdings nicht zufriedenstellend.

                            Daher meine Idee das ganze per Modbus auszulesen.

                            Meine Frage:
                            Woher weiß ich welche Register ich auslesen muss, bzw. welche Register zu welchen Wechselrichter gehören. Ich komme
                            da gerade nicht weiter, auch die englische Hoymiles DTU Anleitung bringt mich da nicht weiter.

                            Ich hoffe es hat da jemand eine Idee.

                            Vorab schon mal vielen Dank.
                            Johan

                            BananaJoe 1 Reply Last reply Reply Quote 0
                            • BananaJoe
                              BananaJoe Most Active @Johan Suck last edited by BananaJoe

                              @johan-suck sagte in [gelöst] Benötige Hilfe MODBUS TCP: Hoymiles HM-1500/DTU-PRO:

                              Hallo an alle,
                              erstmal vielen Dank für diesen Thread und die Tipps. Ich habe es geschafft per modbus mich mit der DTU Pro zu verbinden.
                              Da ich noch recht neu im iobroker bin muss ich hier mal ne Frage loswerden.

                              Ich habe hier im Zweifamilienwohnhaus 2 Hoymiles HM 600 mit je 2 x 370 W Solarpanels aufgebaut. DTU Pro ist auch vorhanden, funktioniert soweit einwandfrei. Was mich an der Hoymiles Cloud nervt ist, das ich nur in Summe beide Anlagen auswerten kann, hatte dazu schon Kontakt mit dem Support, allerdings nicht zufriedenstellend.

                              Daher meine Idee das ganze per Modbus auszulesen.

                              Meine Frage:
                              Woher weiß ich welche Register ich auslesen muss, bzw. welche Register zu welchen Wechselrichter gehören. Ich komme
                              da gerade nicht weiter, auch die englische Hoymiles DTU Anleitung bringt mich da nicht weiter.

                              Ich hoffe es hat da jemand eine Idee.

                              Vorab schon mal vielen Dank.
                              Johan

                              In diesem Thread hier schaffen wir es gerade die Hoymiles auf andere Art auszulesen: https://forum.iobroker.net/post/822042 (ja, sind auch andere Diskussionen dazwischen)

                              Das ist die Projetseite dazu: https://github.com/grindylow/ahoy
                              und hier - und das könnte für dich interessanter sein - wird über die Datenpakete etc. diskutiert: https://www.mikrocontroller.net/topic/525778
                              Da sind auch Links zu Datenblättern mit Beschreibungen zu den Protokollen etc.

                              Johan Suck 1 Reply Last reply Reply Quote 0
                              • Johan Suck
                                Johan Suck @BananaJoe last edited by

                                @bananajoe, sorry dass ich erst heute antworte, zum einen war die Zeit etwas knapp bemessen, zum anderen hast du mir einige Links mit viel Lesestoff hinterlegt. Vielen Dank dafür.

                                Ich habe es für mich jetzt erstmal in der Form hinbekommen.

                                Ich habe erstmal die 4 Register
                                4112 Microwechselrichter 1; Modul 1 von 2
                                4152 Microwechselrichter 1; Modul 2 von 2
                                4192 Microwechselrichter 2; Modul 1 von 2
                                4232 Microwechselrichter 2; Modul 2 von 2
                                ausgelesen. Dann einen der beiden Wechselrichter ausgeschaltet. Dort gingen die Werte dann gegen null. Somit hatte ich schonmal die Zuordnung der Register zu den Wechselrichtern. Das funktioniert schonmal gut. Dass die DTU die Werte in deziWatt ausspuckt (wer kommt auf so eine Idee) kann man gut mit der Formel x/10 (stand ja schon weiter oben im Thread) korrigieren.

                                @seebaernd, vielen Dank für deine Ausführungen hat mir sehr geholfen. Eine Frage hätte ich noch an dich.
                                Ich hab gelesen, dass du einen Wechselrichter mit 4 Modulen hast. Wie errechnest du am Ende des Tages den Gesamtertrag deiner 4 Module. Rechnest du die 4 Today_Production mit einem seperatem Script zusammen?

                                Vorab schonmal Danke
                                Gruß Johan

                                S 1 Reply Last reply Reply Quote 0
                                • Johan Suck
                                  Johan Suck @Habib123 last edited by

                                  @habib123 said

                                  Kann man jeden einzelnen Wechselrichter getrennt auslesen?

                                  Ja kann man, habe zwei Hoymiles Wechselrichter und 4 Module. Man kann alle Module einzeln auslesen und dann mit
                                  mit einem Script addieren. Geht.

                                  LG
                                  Johan

                                  1 Reply Last reply Reply Quote 0
                                  • Sascha Roth
                                    Sascha Roth @seebaernd last edited by

                                    @seebaernd Wollte mal nachhören, ob du schon neue erkenntisse hast, bzw. noch mehr abfragen kannst. wenn ja, bestände die Möglichkeit, das du deine Modbus Register mal als Export zu verfügung stellst?

                                    S 1 Reply Last reply Reply Quote 0
                                    • S
                                      seebaernd @Johan Suck last edited by

                                      @johan-suck Sorry, irgendwie habe ich keine Benachrichtigungen zu neuen Themen erhalten, daher die späte Antwort. Gilt natürlich auch für die anderen Fragen an mich.

                                      Ja, ich rechne verschiedene Dinge mittels Script zusammen:

                                      on({id: 'modbus.0.inputRegisters.4232_Power_4', change: "ne"}, async function (obj) {
                                      var module1 = getState("modbus.0.inputRegisters.4112_Power_1").val;
                                      var module2 = getState("modbus.0.inputRegisters.4152_Power_2").val;
                                      var module3 = getState("modbus.0.inputRegisters.4192_Power_3").val;
                                      var module4 = getState("modbus.0.inputRegisters.4232_Power_4").val;
                                      var summe = Math.round((module1 + module2 +module3 + module4) /10);
                                      setState("0_userdata.0.Datenpunkte-iobroker.Hoymiles-WR.AC-aktuell"/AC-aktuell/,summe ,true);

                                      var tag1 = getState("modbus.0.inputRegisters.4113_Today_Production_1").val;
                                      var tag2 = getState("modbus.0.inputRegisters.4153_Today_Production_2").val;
                                      var tag3 = getState("modbus.0.inputRegisters.4193_Today_Production_3").val;
                                      var tag4 = getState("modbus.0.inputRegisters.4233_Today_Production_4").val;
                                      var tag = (tag1 + tag2 + tag3 + tag4) / 1000;
                                      // wenn kein aktueller Ertrag vorhanden, dann kommt ggf. unsinn als Tagesertrag
                                      if (summe>20) {
                                      setState("0_userdata.0.Datenpunkte-iobroker.Hoymiles-WR.Energie-Tag"/Energie-Tag/,tag ,true);
                                      }

                                      var gesamt1 = getState("modbus.0.inputRegisters.4114_Total_Production_1").val;
                                      var gesamt2 = getState("modbus.0.inputRegisters.4154_Total_Production_2").val;
                                      var gesamt3 = getState("modbus.0.inputRegisters.4194_Total_Production_3").val;
                                      var gesamt4 = getState("modbus.0.inputRegisters.4234_Total_Production_4").val;
                                      var gesamt = Math.round((gesamt1 + gesamt2 + gesamt3 + gesamt4) / 1000);
                                      setState("0_userdata.0.Datenpunkte-iobroker.Hoymiles-WR.Energie-Gesamt"/Energie-Gesamt/, gesamt, true);
                                      });

                                      Das Programm startet, wenn sich die Daten vom letzten Modul aktualisieren, dann sind die anderen Register auch schon ausgelesen.

                                      Ich habe dazu vorab einige Datenpunkte erstellt:
                                      0_userdata.0.Datenpunkte-iobroker.Hoymiles-WR.AC-aktuell
                                      0_userdata.0.Datenpunkte-iobroker.Hoymiles-WR.Energie-Tag
                                      0_userdata.0.Datenpunkte-iobroker.Hoymiles-WR.Energie-Gesamt
                                      und schreibe da jeweils die Summe aller Einzelwerte rein. Und konvertiere die ungewöhnlichen deziWatt in was sinnvolles.

                                      Gruß
                                      Bernd

                                      1 Reply Last reply Reply Quote 0
                                      • S
                                        seebaernd @Sascha Roth last edited by seebaernd

                                        @sascha-roth Hallo Sascha, mir reichen die o.g. Daten aus, daher habe ich keine weitere Arbeit da rein gesteckt. Mein Beispielscript zu Addition der Werte habe ich gerade schon gepostet. Zu Beginn hatte ich auch mal eine Seriennummer ausgelesen - brauchte ich aber nicht und habe ich wieder gelöscht.

                                        Eine Beschreibung aller ModBus-Register gibt es im Dokument
                                        https://www.shinetech-power.de/wp-content/uploads/2021/07/Technical-Note-Modbus-implementation-using-3Gen-DTU-Pro-V1.2.pdf

                                        Wenn du ein konkretes Register aus der Doku oben auslesen möchtest und das nicht schaffst, dann frage gerne noch mal konkret nach. Dann kann ich gerne versuchen zu helfen.

                                        Gruß
                                        Bernd

                                        Johan Suck K 2 Replies Last reply Reply Quote 0
                                        • Johan Suck
                                          Johan Suck @seebaernd last edited by

                                          @seebaernd
                                          Danke für dein Script. Hatte es für meine Zwecke schon selber hinbekommen.

                                          Eine Frage hätte ich dann doch noch. Ich habe seit einigen Tagen immer das Problem das der Modbus Adapter sich immer mal von der DTU trennt und somit die Werte nicht mehr ausließt. Muss dann immer die DTU vom Strom trennen, damit die sich wieder mit dem Netzwerk verbindet. Passiert das bei dir auch öfter?

                                          Danke
                                          Johan

                                          S 1 Reply Last reply Reply Quote 0
                                          • S
                                            seebaernd @Johan Suck last edited by

                                            @johan-suck said in [gelöst] Benötige Hilfe MODBUS TCP: Hoymiles HM-1500/DTU-PRO:

                                            Eine Frage hätte ich dann doch noch. Ich habe seit einigen Tagen immer das Problem das der Modbus Adapter sich immer mal von der DTU trennt und somit die Werte nicht mehr ausließt. Muss dann immer die DTU vom Strom trennen, damit die sich wieder mit dem Netzwerk verbindet. Passiert das bei dir auch öfter?

                                            Nein, das ist bei mir schon sehr lange nicht mehr passiert. Vorschlag wäre, evtl das Abfrageintervall zu erhöhen? Ich habe 120000 Millisekunden, also 2 Minuten, eingestellt.

                                            Johan Suck 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

                                            903
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            23
                                            86
                                            21150
                                            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