Ess Mode 3 - kein feed in per modbus

Hallo,

ich kriege den Multiplus 2 gx nicht dazu einzuspeisen. Modbus Register lesen und schreiben funktioniert. Ess Mode 3 aktiv, Pylontech mit originalem Kabel verbunden und funktionsfähig. Gx Ess sagt Mode 3 (external control) Ess mit grid 4105 und pylontech Einstellungen.

ID 228

register 57 = 1 = Batterie darf laden
register 58 = 1 = Batterie darf entladen
register 38 = 0 = Charger an
register 39 = 0 = Inverter an

ID 100
register 2902 = 3 = Ess Mode 3

Wenn ich auf Register 37 200 schreibe, zieht er 200W.
Wenn ich in register 37 65000 schreibe (negativer Wert) speist er nicht ein.
Es gibt keine Modbus-Fehler…

Ich bin mit meinem Latein am Ende und glaube, ich hab irgend einen Bug.

Hat jemand eine Idee woran das liegen kann?

Wenn ich im ess Mode 2 den grid point im gx auf -250w setze müsste er doch dauerhaft 250w einspeisen oder? Das macht er auch nicht. Aus irgendeinem Grund hat das System eine feed in Sperre.

hast du denn die Netzeinspeisung bei DC und/oder AC Überschuss aktiviert ?

2707 und 2708

Hallo Steffen,

register 2707 und 2708 von UnitID 100 haben beide den Wert “1”.

Hier mal alle sinnvollen Register von Unit ID 100, wobei die Frage ist ob die überhaupt eine Rolle spielen im ESS Modus 3 ?

Register 2700: Wert = 65400
Register 2701: Wert = 100
Register 2702: Wert = 100
Register 2703: Wert = 65535
Register 2704: Wert = 100
Register 2705: Wert = 3
Register 2706: Wert = 9
Register 2707: Wert = 1
Register 2708: Wert = 1
Register 2709: Wert = 0
Register 2710: Wert = 518
Register 2711: Wert = 1
Register 2712: Wert = 0
Register 2713: Wert = 0
Register 2714: Wert = 0
Register 2715: Wert = 1
Register 2716: Wert = 65000
Register 2717: Wert = 1
Register 2900: Wert = 5
Register 2901: Wert = 150
Register 2902: Wert = 3
Register 2903: Wert = 750

warum überhaupt mode 3 ?
arbeitet denn das System normal im Modus “Optimiert ohne Battery Life” ?

1 Like

Mode 3 soll es werden, weil ich bisher eine Nulleinspeisung per Python mit einem Shelly3em und einem SoyoSource Wechselrichter erfolgreich praktiziert habe. Also eigener Loop mit Berücksichtigung SoC usw.
Ich brauche nur den Code um dem Multiplus Einspeisewerte zu schicken. Danach würde ich mein Nulleinspeisungs-Python-Script entsprechend anpassen. Ich schaffe es aber nicht den Multiplus 2 GX zur Einspeisung zu überreden.
Im Modbus gibt es keinerlei Fehlermeldungen.

Im Mode 2 findet ebenfalls keinerlei Einspeisung statt.
Sollwert Netz steht auf -136W…




Was heißt Originalkabel beim Pylontech ? das schwarze ? funktioniert nicht !!! du benötigst das blaue CAN Typ A von Victron …
Hast die Pylontech in deiner Geräteliste ?
Was steht bei Batteriewächter ?

Der Pylonstack aus US3000C und 2000C ist mit dem blauen Typ-A Kabel verbunden. Die Pylons haben die UnitID 225.

Batteriewächter ist der Multiplus. Wobei ich festgestellt habe, dass die Werte für Leistung und Strom sich unterscheiden je nachdem was ich als Batteriewächter auswähle. Der SoyoSource speisst aktuell aus der Batterie ein und wenn ich als Batteriewächter die Pylons nehme, sehe ich zB -8A -400W. Wähle ich den Multiplus als Batteriewächter sind beide Werte wie im Screenshot zu sehen 0…

Wenn ich parallel zur Einspeisung des SoyoSource den Multiplus 200W ziehen lasse, sehe ich bei Batteriewächter “Multiplus” nur die Werte des 200W Ziehens, also positiver Strom. Wähle ich als Batteriewächter die Pylon, sehe ich die richtigen Werte, also zB -4A…

Super … auch richtig herum gesteckt ? der 3000 ist Master ? und beide richtig zusammen gestartet ?

Ja die 3000er ist Master, starten zusammen…

Batteriewächter ist der Pylontech ausgewählt ? dann auch in der Geräteliste verfügbar ? mit Details ?

So sieht es aus, wenn der Batteriewächter auf Pylon steht:

und so wenn der Batteriewächter der Multiplus selbst ist:

Pylontech Gerätedetails:

lass ihn auf dem Pylontech … wohin entschwinden denn die 10A ?
wo sind deine Lasten angeschlossen und was steht dann im Menü ? AC in oder Out …
Du musst deine Lasten alle am AC out haben, da du keinen Zähler hast …

Die -10A sind die aktuelle Nulleinspeisung für all 3 Phasen. Eingespeisst wird nur auf Phase 1 durch den SoyoSource (hängt am gleichen DC Block wie Pylons, Laderegler und Multiplus) per PythonScript.
Ich habe am Multiplus nur AC-In verbunden, keine Lasten an einem AC-Out. Daher wollte ich ja ESS Mode 3 nutzen, um dem Multiplus als “dummen” Inverter einfach per Loop zu sagen, was er Einspeisen soll.

So sieht es aus, wenn die Einspeisung durch den SoyoSource deaktiviert ist, Batteriewächter “Pylon”:

was steht denn bei Position der AC Lasten drin ?

Meinst du das?

Jap …
Aktiviere mal kurzzeitig auch die Lasten auch am AC Out … wir hatten mal einen Fall wo es tatsächlich danach ging … irgendein Bug …
Mir fehlt auch deine Anzeige der “DC Lasten” in der Übersicht :thinking:

und zeig doch nochmal zur Übersicht deine Zusammenstellung ESS aus der VE Configure …

Wenn ich im ESS Mode 2 per Python der Unit ID 100 folgendes schicke, passiert nichts.

ess control loop setpoint
write_response = client.write_register(2700, 65400, unit=UNIT_ID)
ess max charge current (fractional)
write_response = client.write_register(2701, 100, unit=UNIT_ID)
ess max discharge current(fractional)
write_response = client.write_register(2702, 100, unit=UNIT_ID)
ess control loop setpoint
#write_response = client.write_register(2703, 65400, unit=UNIT_ID) # scale 0,01 = 1 = 100W
ess max discharge current
write_response = client.write_register(2704, 100, unit=UNIT_ID) # 0,1
#ESSDVCC system max charge current
write_response = client.write_register(2905, 5, unit=UNIT_ID)
#Feed excess DC-coupled PV into grid
write_response = client.write_register(2707, 1, unit=UNIT_ID)
#AC export limit when peakshaving
write_response = client.write_register(2713, 0, unit=UNIT_ID)
#AC import limit when peakshaving
write_response = client.write_register(2714, 0, unit=UNIT_ID)
#Mode for peakshaving
write_response = client.write_register(2715, 1, unit=UNIT_ID)
#AC grid setpoint
write_response = client.write_register(2716, 65000, unit=UNIT_ID)
#Grid metering
write_response = client.write_register(2717, 1, unit=UNIT_ID)
ess BatteryLife state
#write_response = client.write_register(2900, 2, unit=UNIT_ID)
ess BatteryLife Mode
read_holding_register = client.write_register(2902, 2, unit=UNIT_ID)

Wenn ich im ESS Mode 3 folgendes schicke, fängt er an aus dem Netz zu ziehen, wobei es ungefähr eine Minute dauert bevor er bei den 249W ankommt. Setze ich einen negativen Wert uint16, passiert nichts außer das der Multiplus in “bulk” geht.

     power = 249 # Negative Werte = Einspeisung ins Netz
        if write_power_setpoint(client, power):
            print(f"Setpoint erfolgreich gesetzt: {power} W")
        else:
            print("Fehler beim Schreiben des Setpoints")

        #write_response = client.write_register(37, 200, unit=UNIT_ID)
        #if write_response.isError():
        # print("Fehler beim Schreiben von Register 37")
        #else:
        # print("ACSetPoint 37 erfolgeich")

        # -------- READ REGISTER 96 (ESS power setpoint phase 1) -----------
        read_response = client.read_holding_registers(96, 2, unit=UNIT_ID)
        if read_response.isError():
         print("Fehler beim Lesen von Register 96")
        else:
         decoder = BinaryPayloadDecoder.fromRegisters(
          read_response.registers,
          byteorder=Endian.Big,
          wordorder=Endian.Big
         )
         ess_power_setpoint = decoder.decode_32bit_int()
         print(f"Register 96 (ESS power setpoint phase 1): {ess_power_setpoint} W")

ESS Config:






ESS Assistent:








Perfekt für Pylontech …
Zeigt er die Leistungswerte auch in der Übersicht an wenn er die Akkus auflädt ?
Ist die kleine Steckbrücke am Anschluss des externen Stromsensor richtig gesteckt ?

Wenn er die Batterie aus dem grid lädt zeigt er Leistung und Strom korrekt in der Übersicht an. (mit beiden Batteriewächtern, Pylon und Multiplus.) Wobei bei Einstellung Batteriewächter Multiplus und Einspeisung durch den Soyo alles was der SoyoSource macht nicht angezeigt wird. Bei Einstellung Batteriewächter Pylon kommt das richtige Feedback.
Steckbrücke habe ich gerade kontrolliert, sitzt fest drin.

Firmware des Muitliplus 556, GX habe ich mit 3.54V und 3.60 getestet. Aktuell ist wieder die 3.54 drauf.

Müssten beide Batteriewächtermodi nicht eigentlich immer die selbe Ausgabe haben?

ps: Vielen Dank übrigens, dass du mir hier versuchst zu helfen! Ich bin auch gern bereit einen Spendenbeitrag per Paypal zu senden wenn du den Fehler findest. :winking_face_with_tongue:

Beide Systeme als Batteriewächter funktionieren. Der Multi ist im Grunde weniger geeignet aber bei Akkusystemen ohne BMS Anbindung die einzige Wahl. Da du den Pylontech hast und die Anbindung auch funktioniert, ist das natürlich die 1. Wahl.
Was mich aber wundert … beim Laden zeigen beide die richtigen Werte an ? auch die Netzseite vom AC in wird korrekt angegeben ?
Beim Entladen dagegen nichts ?

Schau nochmal in die Geräteliste / Parameter des Pylontech ob hier Lade / Entladewerte CCL / DCL auf 0 stehen …