So realisiere ich eine dynamische Leistungsreduzierung meines SolarEdge PV-Wechselrichters v2

IM EINSATZ?

Dann schau dir UNSEREN LOXKURS an und profitiere von unserem Wissen!

Nachdem ich erst vor wenigen Tagen die extern gesteuerte Leistungsreduzierung meines SolarEdge Wechselrichters per GPIO-Pins hier vorgestellt hatte, konnte ich nun bereits die Ansteuerung per Modbus realisieren, welche im direkten Vergleich eine “punktgenaue” Drosselung in 1%-Schritten ermöglicht. Dadurch werden nun auch die GPIO-Pins am Inverter wieder frei, welche ich evtl. später für den extern getriggerten Wechsel des SolarEdge-Inverters in den Inselbetrieb im Kontext meiner Victron-ESS-Anlage benötige.

Wie die Integration per Modbus funktioniert, welche Register dazu angesprochen werden müssen und wie ich die Werte einfach per Loxone senden kann, um die gewünschte Leistungsreduzierung dynamisch zu setzen, ist Inhalt des nachfolgenden Blogpost.

Modbus 4thewin

Die SolarEdge-Inverter lassen sich per Netzwerkschnittstelle per Modbus ansprechen – primär, um Messwerte auszulesen. Sofern die Modbus-Option im Inverter softwareseitig per SetApp aktiviert wurde, lassen sich damit bspw. die aktuelle Produktion in kW oder auch die Leistung am Netzübergabepunkt (vorausgesetzt das SolarEdge-Smartmeter ist installiert) auslesen.

Kompatibel sollten alle neueren SolarEdge Wechselrichter sein, auch die kleineren Modelle und nicht nur so große Teile wie der SE30k…

Die nutzbaren Modbus-Register sind im Dokument Technical Note – SunSpec Logging in SolarEdge Inverters (externer Link) einsehbar.

Rainer hat mich in seinem Kommentar kürzlich darauf hingewiesen, dass es auch eine Steuerungsmöglichkeit über die Home Assistant HACS-Integration “Solaredge Modbus (GithubLink) gibt. Danke nochmal Rainer, das war ein super Tipp!

Auf Github ist glücklicherweise auf die betreffende SolarEdge-Doku namens Technical Note – Power Control Protocol for SolarEdge Inverters (externer Link) referenziert, welche Aufschluss über die nutzbaren Modbus-Register zwecks der gewünschten Leistungssteuerung gibt. Hier gibt es sogar noch eine neuere Version des Dokuments.

Informationen zur Leistungsdrosselung lassen sich dabei über die Funktion “Global dynamic power control” einsehen.

Steuerung des SolarEdge Wechselrichters über Modbus

Der Inverter lässt sich über verschiedene Parameter steuern. Am einfachsten ist es für meinen Anwendungsfall die gewünschte Maximalleistung in Prozent zu senden. Mein Inverter ist so konfiguriert, dass er maximal 30 kW ausgeben kann. Wenn ich das “Active Power Limit” dann bspw. auf 10% setze, gibt er nur noch maximal 3 kW aus.

Damit das klappt, muss man beim SolarEdge Wechselrichter erstmal einen “virtuellen Schalter” namens “AdvancedPwrControlEn” aktivieren, damit er über Modbus nachfolgende Steuerbefehle entgegennimmt. Dieser Wert muss auch nach jedem Neustart des Inverters gesetzt werden, genauso wie die gewünschte Leistungslimitierung. Am besten schickt man den ganzen Schlonz einfach zyklisch, dann ist dieses Thema auch vom Tisch.

Also erstmal zyklisch – bzw. zumindest nach einem Inverterneustart – den Wert “AdvancedPwrControlEn” aktivieren. Hierbei handelt es sich um das Modbus-Register F142 / 61762 (int32), welches auf “1” gestellt werden muss.

Die Maximalleistung wird dann über den Wert “Active Power Limit” gesetzt. Die gewünschte Maximalleistung in % wird über das Modbus-Register F001 / 61441 (uint16) übermittelt. Werte sind sinnvollerweise im Bereich 0-100 möglich.

Damit der neu übermittelte Wert auch greift, wartet der Inverter noch auf eine Transaktionsbestätigung. Diese wird über den Wert “Commit Power Control” gesendet, welche das Modbus-Register F100 / 61696 (int16) besitzt. Hier einfach eine 1 für ein “Execute commit” übertragen und fertig.

SE-Inverter-BefehlModbus-RegisterFormatGenutzte Werte
AdvancedPwrControlEn61762int321
Active Power Limit61441uint160-100
Commit Power Control61696uint161

Fast instant regelt der SolarEdge-Wechselrichter dann auch die gerade übermittelte Leistungsdrosselung.

Die gesetzten Werte lassen sich übrigens auch wieder per die selben Modbus-Register auslesen, um den aktuellen Wert zu kontrollieren.

Es ist übrigens auch möglich verschiedene Leistungsdrosselungen “parallel” zu nutzen. Also neben der Modus-Variante auch die vor einigen Tagen gezeigte GPIO-Geschichte. Der Wechselrichter “hört” dann immer auf den kleinsten Wert – also auf die größte Drosselung.

Umsetzung der Modbus-Register und Steuerunglogik in Loxone

Hier mal die drei benötigen Modbus-Werte mit den korrekten Parametern in Loxone, um das Power-Limit zu setzen:

Und nier noch meine Loxone-Logik, um bei neuen Wunschwerten alles automatisch zu “tiggern”.

Hier musste ich “timiningtechnisch” etwas basteln, um keine Modbus-Übertragungsfehler zu erhalten. Wenn das jemand detaillierter sehen möchte, einfach einen Kommentar hinterlassen – dann kann ich das gerne auch mal in einem Video zeigen. Hier vorerst zumindest mal die Logik als Download:

Loxone Config SolarEdge Modbus Leistungssteuerung (108 Downloads)

Insgesamt bin ich super happy mit der Lösung. Einzig ist die Übertragungsrate der Modbus-Spezifikation echt lahm. Deshalb darf man Register nicht zu oft abfragen oder beschreiben, denn sonst laufen die Mitteilungen in einen Error. Aber mit dem in Loxone eingebauten Modbus-Monitor lässt sich das ganz gut analyisieren und die Timings sinnvoll anpassen, damit alle Nachrichten zuverlässig “durchflutschen”.

Tausend Dank am Ende auch nochmal an Matthias von haus-automatisierung.com, der sich die Zeit genommen hat, die Modbus-Spezifikationen mit mir durchzugehen. Ohne dich hätte ich viel länger gebraucht, um ans Ziel zu gelangen… Danke! 😘

Du willst in die Direktvermarktung? Kein Problem! Schau dir Lumenaza an... (Affiliate-Link) Lumenaza Community - Erloes Rechner
10 Kommentare
    1. 😍 Echt mega, dass ich dich bei solchen Themen nerven kann. 😘

      War echt überrascht, dass alles direkt auf Anhieb lief. Das passiert eher selten. Zumal sich die genutzten Modbus-Register ja anscheinend außerhalb der gängigen Spezifikationen befinden, was den Wertebereich angeht…

      Und ja, die Sache mit dem Inselbetrieb ist technisch gesehen ultra spannend, aber insgesamt leider nicht so mega trivial. Aber ich “robbe” mich durch. Morgen gibts vielleicht bereits den ersten Inhalt dazu im Blog…

      Viele Grüße
      Jörg

  1. Hallo, ModBus und SolarEdge ist bei mir das Problem! Würde gerne meine bestehende Anlage mit einem ESS von Victron erweitern, um nicht mehrere Zähler in der Anlage zu betreiben die sich eventuell gegenseitig stören, kann man den ModBus Zähler als „ Zähler“ für das ESS verwenden? Ich habe einige Sachen im Netz gefunden mit dem ändern der ID des WR. Da ich keinen Zugang am WR habe muss ich das irgendwie meinen „ netten“ Solateur erklären das er das für mich einstellt. Ich hoffe du weist was ich meine, da du ja solch ein System am laufen hast.
    Mfg

    1. Klar geht das. Nur: wenn du einen Zähler durch mehr als ein Systm nutzen willst, dann geht das nicht mehr via Modbus-RTU, weil am seriellen Modbus nur ein Master möglich ist. Du brauchst somit einen kleinen Computer als TCP-auf-RTU-Gateway (geht zB mit Raspberry Pi und einem minimalen Python-Skript), und der Rest der Welt muss TCP mit dem Teil reden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Das könnte dir auch gefallen