MPII 5000 - ESS-Modus per modbus ändern

Ich möchte den ESS-Modus gerne per modbus ändern.

Im Normalbetrieb steht der ESS-Modus auf “Optimiert (ohne BatteryLife)”.
Wird die Batterie mangels PV nicht geladen und steht auf minimum-SOC, möchte ich gerne etwas Leerlauf-Energie am MPII sparen und den ESS-Modus auf “externe Steuerung” ändern. Das geht auch über modbus, indem ich die Adresse 2902=3 ändere.

Wenn dann wieder PB-Überschuss bereitsteht und die Batterie geladen werden kann, möchte ich den ESS-Modus gerne wieder auf “Optimiert (ohne BatteryLife)” ändern. Dazu setze ich die Adresse 2902=1.
Leider wird der ESS-Modus dann auf “Optimiert (mit BatteryLife)” gesetzt.
Nun habe ich gesehen, dass da scheinbar die Einstellung der Adresse 2900 (ESS BatteryLife state) mit reinspielt. Ich suche nun nach einer passenden Einstellung für die Adressen 2900 und 2902, so dass ich sicher wieder den ESS-Modus “Optimiert (mit BatteryLife)” einstellen kann.

Hat da schon jemand etwas und könnte das hier einmal reinstellen?

Guten Morgen,

ich schalte das ganze per HomeAssistant Integration. Die nutzt unter der Haube ModBus soviel ich weiß. Die ESS Setting BL…low-soc nehme ich als trigger, stelle ihn aber nicht um.

Ich schalte einfach nur den Ve Mode von on auf off.

Welche Register es braucht kann ich nicht sagen.

Beste grüße

Ich schalte einfach nur den Ve Mode von on auf off.

Kannst Du das näher beschreiben oder mit einem Screenshot zeigen? Das sagt mir so erstmal nichts.

Das ist sie Automatisierung im HomeAssistant.

PV-Live ist der Gesamt PV Ertrag. VE Bus wird auf OFF geändert.

Einschalten, wenn PV auf über 500W geht und VE Mode auf Off ist.

Ich kenne HomeAssistant nicht, da ich iobroker verwende.

vebus mode scheint ja irgend ein Datenpunkt zu sein, der da angesprochen wird. Den musst Du ja irgendwo auch ausgewählt haben. Was steckt da denn weiter dahinter?

VE Bus ist der Datenpunkt den mir die Hoomeassistant Integration Anbieter. Da muss ma nichts einstellen oder auswählen, abgesehen davon dass man den Cerbo angibt.

Daher kann ich leider nicht sagen welches ModBus Register da geändert werden muss.

Wie heißt denn die HA Integration genau? Dann recherchiere ich da mal weiter.

Das ist die Victron Intergestion aus dem HACS GitHub - sfstar/hass-victron: Integration for Home Assistant to fetch data from the victron gx device via modbusTCP

Danke.
Dann scheint dort die Stelle in der const.py angesprochen zu werden:

class vebus_mode(Enum):
"""Vebus mode."""

CHARGER = 1
INVERTER = 2
ON = 3
OFF = 4

"vebus_mode": RegisterInfo(
register=33, dataType=UINT16, entityType=SelectWriteType(vebus_mode)

Das heißt, Adresse 33. Das wäre dann die Switch-Position, was auch zu den o.g. Werten 1-4 passt.

Genau das wollte ich eigentlich nicht, weil damit auch immer die Relais beansprucht werden.
Mal angenommen, der WR wird damit über das Jahr 300 Mal in den Energiesparmodus versetzt, hieße das auch 300 Mal Relaistests. Ob das für eine lange Lebensdauer zuträglich ist?

Daher wollte ich eben gerne über die Register 2900 und 2902 gehen.

Was sollen die Register 2900 und 2902 denn für Einstellungen sein? Da du die ESS Einstellungen suchst, könnten die ggf. als ess_batterylife_state geführt werden

Das mit den Relais ist natürlich ein Punkt.

Wie im ersten Beitrag geschrieben, ist das die Kombination für den ESS-Modus “Optimiert (mit/ohne BatteryLife)” und “ext. Stg.”. Wie ich die schreibe weiß ich schon.

Für “ext. Stg.” genügt es, 2902 auf “3” zu setzen.

Für “Optimiert (ohne BatteryLife)” muss 2902 auf 1 gesetzt werden. Und für 2900 gibt es verschiedene Möglichkeiten, die dann passen. Und genau das würde ich gerne wissen:
Wann wird welcher Wert in Register 2900 geschrieben?

Und wie sollen die Einstellungen jeden Strom zu sparen?

Mit oder ohne Battery Life ändert ja nur was an der Entladelogik.

Externe Steuerung sorgt, nach meiner Kenntnis auch nur dass der Cerbo nicht mehr regelt sondern externe Signale braucht, aber der MP bleibt dabei aktiv.

Kann es sein, dass Du den AES Modus meinst? Denn nur mit diesem kann der Standby-Verbrauch verringert werden. Aber auch nur im Einphasenbetrieb. Andere Möglichkeiten kenne ich nicht

Ich dachte AES funktioniert nur im Inselbetrieb…?

Kann ich nicht mit Sicherheit beantworten. Aber im Erklärvideo bei 1:40 min von Victron Energy sieht es aus, als ob am Eingang Spannung anliegt.

Der AES Modus spart doch dadurch Strom, das er periodisch prüft ob ein Verbraucher angeschlossen ist.

Das sollte nur am ACout nicht am ACin möglich sein.

Bist Du hier weiter gekommen?

Würde auch gerne per IOBroker und ModBus dem Victron wenigstens das Entladen abgewöhnen aber einer von mir berechneten Situation (SOC) im IOB. Das JK BMS taugt dazu ja bekantlich weniger. Natürlich muß dazu meine Schaltscgwelle vor der des BMS liegen sonst kann es nicht klappen.

Ja, ich habe ein Blockly-Script, welches zu meiner Zufriedenheit funktioniert. Damit wird die Leistungsaufnahme im Leerlauf auf 10-20 Watt begrenzt, ohne dass über den Switch auch die Relais immer wieder in den Test beim Einschalten gehen. Kann ich heute Abend gerne zur Verfügung stellen.
Als Schaltschwelle habe ich dabei definiert, dass der SOC<=10% oder V_Batt<=50V oder V_Cell_Min<=3,1V ist. Damit fange ich den ungenau gemessenen SOC des BMS ab.
Ich setze dann den ESS-Modus auf 3 = “ext. Steuerung”.

1 „Gefällt mir“

Danke das wäre toll ein Beispiel zu sehen. Bzgl ESS-Modus bin ich noch nicht ganz sicher was das für Auswirkungen hat. Ich verstehe dich aber so dass du um Zugriff zu bekommen auf auf "externe Steuerung" wechselst, damit mit dem IOB die volle Kontrolle übernimmst. Ist der Bedarf nicht gegeben schaltest Du zurück auf den "normalen Modus"?

Darf ich fragen wie du den SOC besser berechnest? Geht das vernünftig ohne Shunt?
Ich habe diverse Skripte mir schreiben lassen die über Coulumbzähler und diverse selbstlernende Faktoren die ungenaue Strommessung etc des JK BMS versuchen zu verbessern. Aber aktuell nach 12h Lernphase bin ich beim gemeinsamen berechneten SOC bei ganzen 0,5% Differenz zum JK und der Standardanzeige im Victron. Das erscheint mir wenig sinnvoll.

Ja genau

Ich nehme den des BMS. Ja, der kann auch mal sehr ungenau werden. Daher ja nicht nur eine Steuerung nach SOC, sondern auch nach Batterie- und Zellspannung.

Das Blockly habe ich zum Import beigefügt. Außerdem als Screenshots.
Der ESS-Modus wird über Modbus-Register 2902 gesteuert. Den habe ich zum schreiben als holdingRegister und zum Auslesen als inputRegister.
Außerdem schreibe ich beim Energiesparen AUS das Modbus-Register 2900, welches für “Optimiert mit / ohne Batterylife” zuständig ist.

blockly Victron.txt (22,1 KB)

2 „Gefällt mir“