Hilfe! MPI 10K per Modbus steuern

Hallo liebe Forumgemeide!

Gibt es eine Möglichkeit per Modbus Adapter den Wechselrichter MPPSolar MPI 10k zu steuern.

Kurze Erklärung meines Problems.

Ich besitze eine 20KWP Anlage (10kWP MPI 10K u. 10KWP Huawei huawei sun2000 10ktl) und einen 12KW Speicher und mein Netzbetreiber hat mir in diesem Jahr vorgeschrieben, dass ich nur mehr 10KW einspeisen darf.
Den Rest was die Anlage erzeugt muss ich übern WR abregeln was echt schade ist.
Jetzt habe ich seit lägeren versucht den MPI 10K den Akku zu laden, wenn ich Sonne am höchsten steht was auch supper funktioniert per SHH Steuerbefehle (curl -X GET " http://192.168.1.130/befehl.steuerung.p ... 0&config=1 ").
Aber leider lässt sich die Akkuladung nur so ein- oder ausschalten und nicht Watt genau Regel.

Bessere Lösung wäre, wenn ich per Modbus dem WR vorgaugelt bei 10KW Einspeißung --> 0KW Einspeißung.
Wenn die Anlage dann 11kW Einspeißung hat, lädt sie nur 1KW in Akku und ich muss die Anlage nicht frühzeitig abregeln, weil der Akku das absaugt, was ich nicht mehr einspeißen darf.

Ich schaffe es, dass ich die Daten von Smartmeter SDM630 in Iobroker per Modbus Adpter auslese, aber ich schaffe es nicht den WR die Daten zuzusende.

Ich habe in diesem Forum https://www.photovoltaikforum.com/core/ ... d-10k-pdf/ die Modbus Regelung von WR gefunden.
Leiden scheidere ich wegen Fachkenntnissen daran und weiß nicht wie ich das in den Modbus Adapter in IObroker eintragen muss.

Hat hier zufällig ein Geistesblitz für mich, wie ich dieses Projekt umsetze? :slight_smile:

In welchem Modus betreibst du denn MPI denn? Wenn der schon im (eig. dafür vogesehenen) Hybrid-Modus mit ModusII-Karte (für 0-Ausregelung) und SDM630 im "Grid-Tie with Backup II"-Modus läuft, dann sollte das alles faktisch von selbst gehn.
Anhand der Leistungsaufnahme deines Hauses (SDM630->) entscheidet der WR, ob er in die Batterie speichern soll, oder liefern. "Überleistung" deines 2. WR genehmigt er sich gerne und speist in die eigene Batterie ein.
Vorher muss man natürlich einige Sachen wie FW-Version und Config beachten, aber grundsätzlich wäre der MPI für genau solche Szenarien in der Lage.
Da ist m.M.n. keine externe Regelung mit ioBroker usw. notwendig.

Du hast vollkommen Recht und er macht das genau so wie du sagst aber mein Problem ist das der 12kw Akku schon um 10:30 Rand voll ist und ab dieser Zeit ich weit über die 10kw Einspeisung ins öffentliche Netz komme.
Und der Huawei WR alles was über die 10kw drüber ist abregelt.
Besser wäre es das der MPI 10k ab 10kw Einspeisung ins öffentliche Netz Anfang den Akku zu laden.
So würde die Anlage auch besser Netz Dienlich arbeiten.

Das bringt dir ja nichts wenn der Akku eh um 10:30 schon voll ist.

Die Nulleinspeisung bringt wie schon gesagt eigentlich alles mit. Aber ich vermute du willst erreichen dass der MPI auf 10Kw Einspeisung aufstockt wenn vom Huawei weniger kommt, oder.
Dazu müsstest du wahrscheinlich die direkte Verbindung zum SDM kappen und den SDM anderweitig auslesen. Auf den Messwert dann 10Kw dazurechnen und dem MPI als "Nullwert" zusenden. So sollte dann der WR real auf -10KW ausregeln.

Genau so habe ich das vor das ich den MPI 10k die -10KW vorgaukelt.
Wenn das geschafft ist kann man per Blockyscript es noch verfeinern und wetter daten einfließen lassen.
Ich habe jetzt schon so ein Script dass wunderbar funktioniert nur halt mit der Befehle Steuerung wie oben beschrieben.
Es ist halt blöde wenn die Regelungen greift lädt der Akku mit voller Leistung (bei mir 5kw).
Wenn die Regelungen um ca. 11UHR greift und der Akku 5kw lädt ist der Akku spätestens um 13 Uhr voll und in der Zeit speiste ich nicht die 10Kw ein sondern ja nur 5-bis 7 kw ein.
Ech blöd zu erklären :thinking::thinking:
Wenn so ein Tag kommt mach ich euch per Grafana einen Screenshot da wo man ganz genau sieht das ca. 30 bis 40% an schönen Tagen die Anlagen runter regel muss!

Steuerbefehle die der MPI 10k unterstützt
curl -X GET "http://192.168.1.130:80/befehl.steuerung.php?befehl=EDF1&config=1"

1 = EDA0 // Batterie Ladung per Netz/AC deaktivieren
2 = EDA1 // Batterie Ladung per Netz/AC aktivieren
3 = EDB0 // Batterie Ladung per PV deaktivieren
4 = EDB1 // Batterie Ladung per PV aktivieren
5 = EDC0 // Einspeisung ins Netz deaktivieren
6 = EDC1 // Einspeisung ins Netz aktivieren
7 = EDD0 // Batterie Entladung zur Last mit PV deaktivieren
8 = EDD1 // Batterie Entladung zur Last mit PV aktivieren
9 = EDE0 // Batterie Entladung zur Last ohne PV deaktivieren
10 = EDE1 // Batterie Entladung zur Last ohne PV aktivieren
11 = EDF0 // Netzeinspeisung aus der Batterie mit PV deaktivieren
12 = EDF1 // Netzeinspeisung aus der Batterie mit PV aktivieren
13 = EDG0 // Netzeinspeisung aus der Batterie ohne PV deaktivieren
14 = EDG1 // Netzeinspeisung aus der Batterie ohne PV aktivieren
15 = EDH0 // reserviert aus
16 = EDH1 // reserviert an
17 = SEP00 // PV Energie Priorität: Batterie-Last-Netz
18 = SEP01 // PV Energie Priorität: Last-Batterie-Netz
19 = SEP02 // PV Energie Priorität: Last-Netz-Batterie
20 = DM058 // WR Modus Hybrid nach VDE4105
21 = DM108 // WR Modus Netzwechselrichter nach VDE4105

Um kurz zu erklären wie ich vorgehen will um diesen Projekt umzusetzen!
Ich trenne die Modbus Verbindung von SDM zum MPI 10K und setzte dazwischen ein Raspi ein die die Daten von SDM auslest und dann so wie ich es brauche zum MPI 10k schickt!

56540=9194-AC2.png

Jetzt stellt sich für mich die Frage wie schaffe ich es diese Daten von Raspi zum MPI 10K zu senden?

SDM 630 Modbus Register.png

SDM 630 Modbus.png

Muss ich einfach die Daten von SDM in HOLDING Register eintragen und per Blocky Script jede Sec den Wert was ich brauche aktualisieren?
Und die MPI 10k baut dann selbstständig eine Verbindung auf und im Display erscheint da das EC-ON2?

20250326_111922.jpg

Oder stelle ich mir das zu einfach vor :shock:

1 „Gefällt mir“

Nein, das sollte schon gehn. Ich hab dafür in meinem Github Account einge Scripte, die beide Seiten (Richtung SDM630 und Richtung WR) simulieren. sdm630poller und powerctrl.
Damit hast du zumindest eine Idee, wie ich das lange laufen gehabt habe. Den Wert ZUM WR kannst du dann natürlich beliebig manipulieren, um ihm zu sagen, was und wieviel er einspeisen soll.
Mit der Configuration (Max Feed-In Grrid Power) musst du halt aufpassen, nicht dass dich diese hier irgendwie limitiert.

1 „Gefällt mir“

Das habe ich schon gefunden und mir auch angesehen aber leider scheitere ich hier wieder wegen fachkenntnisse :frowning:
Wie muss ich mit dem SDM630poller vorgehen oder besser gesagt wo muss ich die .php datei einfügen ....?

Zudem benutzt du glaube ich ein IP to rs485 Konverter?
Ich benutzte ein glanz simplen USB-zu-RS485 Konverter

Stimmt, ohne die IP2Serial Wandler funktionieren meine Scripts nicht (gleich).
Das herumgebastle mit USB2Serial Convertern wollte ich schon alleine wegen der räumlichen Entfernung der Gerätschaften vermeiden - mit IP geht das überall.