NEWS
[gelöst] Benötige Hilfe MODBUS TCP: Hoymiles HM-1500/DTU-PRO
-
Ich habe einen Hoymiles Wechselrichter HM-1500 und zwecks Logging eine DTU-PRO. Logging in der Cloud klappt problemlos, ein Zugriff auf die Cloud über Webbrowser oder Android-App klappt ebenfalls problemlos.
Ich habe auf einem Server im Keller Ubuntu laufen und darauf iobroker installiert. Würde mich dabei noch als Neuling bezeichnen. Immerhin habe ich es geschafft, eine Verbindung über MODBUS-TCP zur DTU-PRO aufzubauen und kann einzelne Werte erfolgreich auslesen.
Zunächst ein Ausschnitt aus der Herstellerdoku zum MODBUS unter der Überschrift
"Microinverter Data Register List
The following registers provide a microinverter data register list, which can be read-only with the function code 0x03.":
Meine Grundkonfiguration des MODBUS-Adapters ist wie folgt:
Funktionieren tut beispielsweise folgende Konfiguration
mit folgendem Ergebnis
Im nächsten Post beschreibe ich mein Problem.
-
Wie im vorherigen Post zu sehen kann ich einzelne Werte über MODBUS TCP auslesen. Aber nur Werte, die NICHT aufeinanderfolgen.
Ich hoffe, an folgenden zwei Beispielen mein Problem verdeutlichen zu können:
Ich möchte das Feld 4114 mit dem Tagesertrag auslesen. Das klappt, wenn ich dieses alleine auslese, also das vorherige Feld 4112 mit der aktuellen Leistung nicht auslese:
Wenn ich aber das Feld 4112 und 4114 gleichzeitig auslesen möchte, dann fasst der Adapter die Übertragung der aufeinander folgenden Felder offensichtlich zusammen (laut Debug) - liefert aber nicht die gleichen/richtigen Werte, denn dann steht da auf einmal "0" statt "1499" beim Tagesertrag:
Die zugehörigen Konfigurationsänderungen sind
und
Frage: bin ich das Problem? Oder ist die Hoymiles DTU-PRO das Problem? Oder der MODBUS-Adapter?
Wer kann mir helfen?Ich habe noch weitere Probleme beim Auslesen anderer Felder, aber zunächst mal würde ich dieses Rätsel gerne verstehen wollen.
-
Cool, habe gar nicht gewusst, dass das überhaupt funktiniert.
Kann dir leider nicht helfen, wollte das aber nachspielen.
Ich bekomme gar keine Daten und Verbindung zur DTU.
Muss ich da noch etwas beachten?
Funktioniert das nur mit der DTU Pro oder auch mit der Wlite? -
@m-h-0
Das funktioniert nur mit der DTU-PRO.Du musst vorher über die Installer-App den MODBUS in der DTU-PRO richtig konfigurieren, bei mir war der standarmäßig anders eingestellt. Das geht wie folgt:
-
S-Miles Installer App öffnen
-
mit dem lokalen WLAN der DTU-PRO verbinden
-
Unten in der App den Schraubenschlüssel auswählen und dann den "lokaler Installationsassistent" auswählen
-
dann "DTU-Informationen" anklicken
-
und dort "RS485-Anschlusseinstellungen"
-
jetzt "Fernbedienung" am Radiobutton auswählen und eine Portadresse (ich habe 101 genommen) eintragen
-
-
@seebaernd
ok danke.
habe ich mittlerweile auch schon rausgefunden.
schade, ist dann leider nichts für mich -
Das Problem war hier wie so häufig mindestens zum Teil vor dem Computer.
Mit folgender Konfiguration:
kommt jetzt folgendes richtiges Ergebnis:
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.
-
@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 -
@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. -
@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?? -
@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. -
@derfux
Kann man das mit x/10 auch gleich im Modus Adapter integrieren?? -
@jauntyjosef
Ist direkt im Adapter drin. -
@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. -
@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.
-
@bananajoe
Natürlich:
NodeRed Flow HoymilesDas 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.
-
@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. -
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 -
@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.
JohanIn 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. -
@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 -
@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