Hoymiles Wechselrichter Limit Active Power per Modbus

Hallo,
ich habe einen Hoymiles Wechselrichter HM-600 im Einsatz und eine DTU-Pro dazu.
Die DTU-Pro wird benötigt, damit man per Modbus mit dem Wechselrichter kommunizieren kann.
Werte auslesen usw. funktioniert soweit auch prima.
Nur bei der Limit Active Power komme ich nicht weiter.
Die komplette Anleitung der Modbus Register kann man hier einsehen.

Mir geht es konkret um das hier


Wenn ich Function Code 0x05 schreibe kann ich nur 1 bit schreiben.
Laut der Register Tabelle kann man Werte von 2-100 % schreiben.
Kann mir da jemand der sich mit Modbus gut auskennt auf die Sprünge helfen?

Ich habe zwischenzeitlich eine Lösung gefunden.
Zum einem ist die PDF Anleitung wohl fehlerhaft.
Die Registeradresse stimmen nicht und man muss 0x06 also Write Register senden.
Damit hat es dann mit der DTU-Pro tatsächlich funktioniert.

Beim weiteren suchen im Netz bin ich zwischenzeitlich auf das hier gestoßen.

Damit geht das Auslesen und das Power Limit viel eleganter per MQTT.
Wemos D1 oder NodeMCU flashen den nRF24L01+ besorgen und es kann losgehen.
Damit kann ich das Power Limit nun ganz einfach über MQTT senden.
Das Webinterface am Wemos sieht so aus:


und in IPS sieht es so aus

Damit komme ich nun gut zurecht.
Die Hoymiles Wechselricher der HM Serie Gen. 3 können also ohne großen Aufwand in IPS integriert werden und es reicht ein Wemos D1 bzw. NodeMCU oder ein ESP32.
Die relativ teure DTU-Pro braucht man nicht unbedingt.
Wobei die Cloud von Hoymiles auch ganz nett ist.

1 „Gefällt mir“

Hey Super, mein WR kommt die Tage. Kannst du mir kurz zeigen wie du der DTU den zu Limitierenden Wert schickst? Also ich möchte so eine Art Nulleinspeisung realisieren und den Wert von meinem Stromzähler wenn eingespeist wird der AHOY DTU senden um den WR zu Limitieren.

Vielen Dank
Gruß Jens

Hallo Jens,
zwischenzeitlich ist dies recht gut Dokumentiert bei Ahoy.

Absatz " Active Power Limit via MQTT"
Wenn die Daten/Werte bei IPS mit MQTT ankommen,
musst eigentlich nur noch ein MQTT Server Device erstellen mit dem passenden Topic.
z.B. DTU1 ist in diesem Fall bei mir das übergeordnete Topic das im ESP festgelegt wurde.
image
In diesem Fall wird der Wert in Watt gesendet und nicht dauerhaft im Wechselrichter gespeichert.

Noch einen Tipp von mir.
Ich hatte zuerst einen WemosD1 (ESP8266) verwendet.
Der machte aber immer wieder Probleme also nach 1-2 Tagen war der nicht mehr erreichbar und ich musste den immer neu starten.

Seit kurzem gibt es Ahoy für ESP32.
Seit ich das verwende läuft es bei mir sehr Stabil.

Gruß
Giuseppe

Vielen lieben Dank für deine Unterstützung.
Gruß Jens

Muß man den Grenzwert zyklisch senden?

1 „Gefällt mir“

Hallo Helmut,
man kann wahlweise das Limit Dauerhaft setzen oder bis zum nächsten Neustart des Wechselrichter.
Ich empfehle die nicht dauerhafte Variante weil der Wert dann nicht dauerhaft ins eeprom geschrieben wird.

Ich habe das mit dem Limit setzen getestet und es funktioniert sehr gut, muss aber zugeben, dass ich aktuell nichts limitiere. Meine persönliche Meinung ist, dass aktuell jede kWh im Stromnetz gut tut. Eine Drosselung eines eh schon kleinen Balkonkraftwerk kommt moralisch für mich nicht in Frage. Den Strom bekomme ich eh nicht vergütet. Die Drosselung wäre oder ist nur sinnvoll wenn man keinen Strom an das EVU verschenken möchte oder man Aufgrund der Strombelastbarkeit beeinträchtigt ist. Wobei bei letzterem eine harte Limitierung sinnvoll wäre.

Gruß
Giuseppe

Ergänzung:
Es gibt natürlich auch rechtliche Vorgaben die eine Limitierung nötig machen können, wobei ich davon ausgehe, dass in der aktuellen Energiekrise kein EVU etwas dagegen haben dürfte, wenn Sie mehr Energie als erlaubt geschenkt bekommen.

Also ich wollte den Wert alle 10sec senden. Nur wie berechne ich den am besten?

Ich habe ja von Stromzähler die Leistungswerte. Mein WR kann 1500 (100%)
wenn ich also 200Watt einspeise und ich 500Watt produziere, müsste ich den Wert doch von den 100% abziehen 1500-500-200 = 800 und den Wert senden oder?

Gruß Jens

Ich habe zwar meinen 1500er, aber wegen einer Fußverletzung komme ich nicht dazu Den zu installieren.
Aber ich meine, Du mußt den Wert senden, der max geleistet werden soll.
Welche Soft hast Du drauf?
Gruß Helmut

Hallo Jens,
der Wechselrichter reagiert zwar recht schnell auf das Limit,
dennoch würde ich den nicht alle 10 Sekunden befeuern.
Also meine Empfehlung wäre 30 Sekunden oder sogar minütlich.

Wenn Du Ahoy nutzt, dann kannst Du ja Werte in % oder als Watt senden.
Wenn Du also Nulleinspeisung bzw. nahezu Nulleinspeisung fahren möchtest,
dann wäre bei dem oben genanntem Beispiel der richtige Wert dein Eigenverbrauch also Limit wäre 300 Watt.
Der Wert ergibt sich aus 500 Watt produziert und 200 Watt gehen zurück also ist der Eigenbedarf 300 Watt. Wenn das dann als Limit setzt macht der Wechselrichter soviel Strom wie Du selber benötigst und es geht nichts zurück.

Gruß
Giuseppe

Ich habe nun den ESP32 mit Ahoy geflasht, bekomme sie Übersicht der Daten auf der ESP ADR.
Wie binde ich das Teil in IP-Symon ein?
Daten per MQTT bekomme ich rein, aber die einzelnen Daten fehlen, muß ich für zB Leistung einen eigenen MQTT server Device erstellen? Oder wie mache ich Das?

Hallo Helmut,
habe erst jetzt Deine Frage gesehen.
Also wenn die Daten per MQTT ankommen, dann müssten doch auch die Werte da sein.
Beim ersten verbinden oder Morgens wenn der Wechselrichter frisch startet.
Kann es ca. 0,5 Stunden dauern bis Daten ankommen.
Wichtig ist auch noch die MQTT Daten entsprechend einzustellen also Float, Integer usw…
Ich habe einen separaten MQTT Konfigurator erstellt und dann damit alle Daten in IPS erstellt.

Ja,
alles ist per MQTT gekommen wie Du beschrieben hast.
Ich habe mir Platinen geroutet und machen lassen, da ist ein ESP32 und den NRF24L01 per Fassungen drauf.
Kann Ahoy oder OpenDTU, ich habe OpenDTU drauf.
Ein Script für Nulleinspeisung ( alle 4 Sek) habe ich mal laufen lassen um zusehen ob es Verbindungsabbrüche gibt.
Bin sehr zufrieden.

Hallo Helmut,
freut mich dass es Deinem Fuß wieder besser geht und die PV-Anlage nun Strom produzieren darf.
Magst vielleicht Dein Script hier teilen als Anregung / Anleitung für andere?

Gruß
Giuseppe

Ist nichts besonderes, diente in meinem Fall zum Testen meiner Platine.
Manche haben um den NRF Funkbaustein isolierte Alufolie gewickelt, weil es Ausfälle gab, brauchte ich bisher nicht :wink:

//  Script zur Sicherstellung der Nulleinspeisung, Ereignis muß freigegeben sein  !!!
// war bei mir zum Testen meiner ESP32 und Funkmodul Platine auf 4 Sekunden zyklisches Ereignis und 100 Watt eingestellt

// vom Wechselrichter :
$Solarleistung=GetValue(48141);
//echo $Solarleistung. "   ";
// vom Modbus Drehstromzähler :
$Momentanleistung=GetValue(53622);
//echo $Momentanleistung.  "    ";

$Dif = ($Solarleistung - $Momentanleistung);
//echo  $Dif;

If ($Dif <1)
{  
    // hier z.B. 100 (Watt) eintragen, das enspricht ~ Grundlast Mindest Angabe ist 10% von der Wechselrichter Leistung 
   RequestAction(52839,600 );
// ist der /cmd/limit_nonpersistent_absolute Befehl
}
If ($Dif >1)
{
    // hier die gewünschte maximal Leistung in Watt eintragen
   RequestAction(52839,600);
// ist der /cmd/limit_nonpersistent_absolute Befehl
}

Ich habe ein NRF Modul mit externer Antenne gewählt und bisher auch kein Problem mit der Kommunikation zum Wechselrichter. Bin aber auch recht nahe dran.

Du hast Ahoy mit ESP8266 drauf, wenn ich richtig informiert bin, ich habe OpenDTU mit ESP32 drauf.
Mit ex. und auch ohne ex. Antenne keine Probleme.

Ich habe zuerst OpenDTU auf ESP32 gehabt ,da gab es aber noch keine Möglichkeit Limit zu setzen. Deshalb habe ich dann Ahoy probiert, dass gab es aber zuerst nur für den ESP8266. Das lief bei mir sehr unstabil, nicht wegen der Kommunikation, sondern der ESP8266 stürzte ständig ab. Dann kam Ahoy auch für den ESP32, das nutze ich aktuell und es läuft sehr stabil, also ohne Probleme seit Wochen.

Hallo,

ich warte auch noch auf meinen Hoymiles WR und möchte dann Ahoy oder OpenDTU einsetzten. Derzeit scheinen mir beide Projekte funktional relativ gleichwertig - nur dass OpenDTU nur auf ESP32 läuft und Ahoy auf ESP8266 und ESP32. Gibt es da sonst noch wesentliche Unterschiede, auch hinsichtlich Stabilität?
Ich überlege auch, dann ein entsprechendes Modul zu schreiben, um die Einrichtung etwas komfortabler zu gestalten - auch hier frage ich mich ob ich mich lieber auf OpenDTU oder Ahoy fokussieren sollte.

Also ich persönlich würde OpenDTU empfehlen.
Zum einem läuft das ganze auf ESP32 stabiler, der andere große Vorteil von OpenDTU ist,
dass z.B. per VSCode auch sehr einfach ein Olimex Board mit POE oder WT32-ETH01 compliert und geflasht werden kann.

Ein weiteres Argument für OpenDTU ist die aus meiner Sicht deutlich bessere Anleitung/Dokumentation (für Einsteiger besser verständlich).

Ein Modul wäre natürlich sehr fein.

Gruß
Giuseppe