Marstek Venus E 3.0 über CFOS Charging Manager steuern

Marstek Venus E 3.0 über CFOS Charging Manager steuern

▲
0
▼
♥ 0

Hallo zusammen,

es gibt zwar 3 ältere Fäden zum Thema Marstek Venus E, diese wollte ich aber nicht kapern. Daher einmal separat.

Ich habe mir neu eine Marstek Venus E 3.0 zugelegt. Da diese in der offiziellen Geräteliste des cFos Charging Managers (https://www.cfos-emobility.de/de/cfos-charging-manager/list-of-supported-devices.htm#battery-storage-list) als unterstützt geführt wird, wollte ich sie direkt einbinden.
Habe keinen Shelly 3EM oder Marstek CT002 in Betrieb, auf Emulation über ESP32 oder Home Assistant wollte ich wenn möglich verzichten.

Setup

  • Power Brain Solar mit cFos Charging Manager aktuellste version
  • SMA Home Manager 2.0 (M5)
  • SMA Sunny Tripower (M4)
  • Marstek Venus E 3.0 (M6), FW V147

Die Venus hängt per LAN-Kabel im Netzwerk und ist im cFos Manager über das Profil „Marstek Venus E 3.0“ mit LAN IP, Port 502 und ID 1 eingerichtet. Die Kommunikation läuft, ich sehe SOC und Entladeleistung im manuellen Modus.
Ich habe Laderegeln angelegt und mich dabei am Beitrag von „domsom“ orientiert (https://www.cfos-emobility.de/network/antworten/solved-marstek-venus-und-pv-ueberschussladen-ueber-charging-manager-steuern/). Laderegeln verursachen keinen Fehler bzgl. Formeln.

Problem ist, dass damit der Speicher nicht mit Überschuss lädt, oder nach Bedarf entlädt. Auch simplifizierte Regel wie „Entlade immer 500W“ werden nicht angenommen.

Bevor ich also irgendwelche Regeln poste, habe ich die Integration an der Stelle falsch verstanden? BRauche ich doch einen separaten Energiemesser (oder emulation), obwohl in der CFOS ja alle Daten vorliegen?
Wenn nein, wo muss ich den Fehler suchen? Kommunikation läuft ja grundlegend?!

Vielen Dank für eure Hilfe!

markiert als Spam
Posted by (Fragen: 2, Antworten: 16)
Gefragt am 27. September 2026 0:07
193 views

Antworten (24)

▲
0
▼
✔
Private answer

Hi, klar, ohne Zähler regelt der Speicher natürlich nicht. Da hab ich nicht dran gedacht.

Um so schöner, dass du so weit gekommen bist.

Die Glättung könnte man vielleicht mit der Variable _dt hinbekommen. (Ich hab da aber keine Erfahrung.)

https://www.cfos-emobility.de/de/cfos-charging-manager/documentation/formulas.htm

 

Die Schalter werden über die Globale Charging-Manager-Variablen erstellt:

https://www.cfos-emobility.de/de/cfos-charging-manager/documentation/user-defined-meters.htm

Die Variablen kannst du dann direkt in den Laderegeln benutzen

 

Edit: Danke für Hinweis mit dem Tipfehler in der Variable! Ich bin auch drauf reingefallen. Wurde in der Anleitung korrigiert.

Anhänge:
markiert als Spam
Posted by Top Networker (Fragen: 0, Antworten: 2021)
Answered on 5. Oktober 2026 22:09
▲
0
▼
✔
Private answer

Hallo @Geotec,

Zu Deiner Frage:

Spannend finde ich, dass du die komplette Regelung von Charging Manager machen lässt. Welchen Grund hat das? Ist die interne Regelung zum Auf- und Entladen nicht so gut?

Der Speicher kann die Regelung selbst machen, aber nur, wenn ein kompatibles Messsystem wie ein Shelly Pro 3EM vorhanden ist. Mit dem SMA Home Manager 2.0 spricht die Marstek direkt nicht. Das habe ich nicht und will ich eigentlich auch nicht installieren. Daher der Weg über die cFos. Schön zu wissen gewesen wäre, dass die von cFos bereitgestellte Zählerdefinition die Regelung nicht unterstützt. Aber gut ...
Alternativ nutzen sehr viele Home Assistant. Hatte ich mal aufgesetzt, dann aber praktisch keine Funktionen aktiv genutzt --> ist nicht aktiv :-).

Vielen Dank für Deine Unterstützung! Vielleicht hast Du ja noch hilfreiche Ideen zu meinem letzten Stand?
Werde jetzt erstmal das System im Betrieb einige Tage beobachten.

-----------------------

(Vorerst) Funktionierender Stand

Folgenden Stand habe ich aktuell am laufen. Möglichst komplett, als Dokumentation für andere und mich selbst.

  • Zählerdefinition: marstek_venus_e_3_battery_preprod2.json
  • Laderegelsatz: Speicher-PreProd-2.json
  • Screenshot Config: 261004-Zählerdefinition-UI-Komplett.png
  • Screenshot Kachel: 261004-Kachel-Speicher.png

Zählerdefinition

  • Zählerdefinition soweit möglich kommentiert
  • Die Zählerdefinition holt sich nun alle möglichen Informationen vom Speicher selbst
    • Auch Temperatur und Versionsnummer
    • Auf Seriennummer etc. aus Speicher auslesen habe ich bewusst verzichtet (mit "-undef" fest definiert)
  • Die Steuerung über die Outputs ist nochmals vereinfacht um möglichst wenige Aufrufe zu machen
  • "resets" sorgt nun dafür, dass der Speicher laden/entladen stoppt, wenn der Zähler auf inaktiv gesetzt wird

Laderegelsatz

  • Weiterhin grob an der Vorgehensweise von "domsom" in https://www.cfos-emobility.de/network/antworten/solved-marstek-venus-und-pv-ueberschussladen-ueber-charging-manager-steuern/ orientiert --> kudos!
  • Nutzung der eingebauten Bedingung wie "Netzbezug" oder "PV-Überschuss" hat keine funktionierenden Ergebnisse gebracht
    • Daher ist alles auf Formeln basiert, aber rein mit globalen Variablen
    • So sollte der Laderegelsatz auch auf anderen Controllern ohne Änderungen laufen :-)
  • Der Versuch der Optimierung/Glättung bei Speicher Laden in Zählerdefinition sollte dort noch raus und in den Laderegelsatz rein
  • In der gespeicherten Laderegeln sprint der bei der Ausgabe von "Formel" auf "Parameter"
    • Komisch, scheint aber trotzdem zu gehen

Verhalten/Prioritäten/Ziele

  • E-Auto lädt → Speicher darf nicht entladen.
  • PV-Überschuss ≥ 300 W → Speicher nimmt den verfügbaren Überschuss auf.
  • Netzbezug ≥ 100 W → Speicher  deckt den Netzbezug.
  • Unterhalb dieser Schwellen → Speicher 0 W.

Tests

  • ENTlädt ein bei Bedarf und regelt nach? --> yess
  • Stoppt ENTladen, wenn ausreichend PV verfügbar oder Bedarf sinkt? --> yess
  • ENTlädt erneut an, wenn wieder Bedarf vorhanden? --> yess
  • Lädt mit Überschuss ab > 300W verfügbar und regelt nach? --> yess, Rundungsregel in Zählerdefinition aber nicht ideal
  • Lädt auch parallel zu e-Auto, wenn Rest-PV vorhanden? --> yess
  • ENTlädt auch tagsüber bei Ladepause e-Auto? --> yess
  • Deaktivieren Zähler setzt zurück und Speicher geht in Standby --> yess

Offene Punkte / Fehler

  • Leider kommt es häufiger zu Verbindungsfehlern
    • Das liegt sicher am Speicher, cFos wird nichts dafür können
    • Habe bereits verschiedenste Optionen getestet, sehe aber die Systematik noch nicht
    • Solange er grundsätzlich läuft und einigermassen sauber regelt ignoriere ich es noch
  • Die Rundungsregel bei "discharge_power_w" in der Zählerdefinition stört mich noch
    • Ich wollte sicherstellen, dass nicht immer wieder kleine Peaks aus dem Netz kommen, das hat sich in der Ansicht wenn parallel das Auto geladen hat etwas aufgeschaukelt
    • Ergebnis ist, dass nun teils > 400 W trotzdem ins Netz gehen
    • Das sollte nicht in der Zählerdefinition sein, sondern im Laderegelsatz hinterlegt werden --> ToDo
  • Während aufladen Elektroauto springt auch der Speicher oft sehr kurz zum laden an
    • Ursache m. E., dass die Wallbox die Leistung noch nachregelt, in der Zeit springt der Speicher schon an
    • Hier bräuchte es eine Glättung/Verzögerung/Sync
    • TBD: Vielleicht über "upd_delay" höheren Abfrageintervall einstellen. Nachteil: Dann regelt die Anlage aber auch beim ENTladen langsamer nach
  • Zum Schluss hier - sorry - aber die Dokumentation von cFos ist ausbaufähig
    • Die Beispiele sind eher verwirrend als genau
    • Sowas wie falsche Variable "discharg_power_w" statt "discharge_power_w" geht halt mal garnicht
    • In der Doku steht es sollen relative Pfade genutzt werden, "/cnf?" geht aber nicht, es braucht "localhost"
    • Ich hätte gerne noch Schalter eingebaut
      • z. B. um den Speicher über die UI aus dem Netz laden zu lassen oder laden/entladen zu pausieren
      • "Schalter" wird zwar in der Doku genannt, aber nirgendwo wie diese definiert werden
      • Vielleicht ist es "inputs"?
    • Temperaturangabe und EMS Version des Speichers hätte ich gerne noch  formatiert, aber "format" funktioniert nicht
markiert als Spam
Posted by (Fragen: 2, Antworten: 16)
Answered on 4. Oktober 2026 18:00
▲
0
▼
✔
Private answer

Cool, dass du soweit gekommen ist! Interessant ist, das es ohne zyklische Wiederholungssendungen klappt.

Spannend finde ich, dass du die komplette Regelung von Charging Manager machen lässt. Welchen Grund hat das? Ist die interne Regelung zum Auf- und Endladen nicht so gut?

markiert als Spam
Posted by Top Networker (Fragen: 0, Antworten: 2021)
Answered on 3. Oktober 2026 12:28
▲
0
▼
✔
Private answer

Und etwas Wasser in den eigenen Wein. In der Nacht ist die Steuerung wieder ausgefallen. Die Ursache ist aber m. E. zumindest klar. Es scheint so zu sein, dass die Laderegel irgendwann nicht nur ENTWEDER ENTladen / "DisCha" ODER AUFladen "Cha" zurück meldet, sondern beides zugleich. Siehe Screenshot Kachel.

Dann springt "bat_mode" auf Wert "3". Also gibt es zwei Wege das abzufangen

  1. Die Laderegeln dürfen nur den einen oder den anderen Wert zurückmelden MIT dem entsprechenden "bat_mode"
    • Aktuell wüsste ich nicht, wie das zu bewerkstelligen wäre
  2. Die Fälle in den Outputs müssen anders abgefragt werden
    • Z. B. Vergleich grösse "charge_power_w" zu "discharg_power_w"
Anhänge:
markiert als Spam
Posted by (Fragen: 2, Antworten: 16)
Answered on 2. Oktober 2026 7:10
▲
0
▼
✔
Private answer

Zuallererst Danke an @Geotec! Es läuft, wenn auch noch nicht optimal, aber ohne Dich hätte ich aufgegeben :-)
Würde mich freuen, wenn Du noch Feedback hättest!

Folgendes habe ich jetzt zusammengestellt. Uff ..

marstek_venus_e_3_battery_test4-1-4.json

Mit der Definition werden die Register jeweils nur einmal geschrieben. Bei entladen ohne Sonne funktioniert es bisher und regelt auch nach meinem Verständnis sauber nach.

261001-syslog-test4-1-4.txt

  • Log mit Loglevel von "Charging Manager", "Modbus" und "http-API" auf Information
  • Ergebnisse m. E. OK, es wird aufgerufen, aber auch die COM-Fehler sind zu sehen
  • Habe einmal Verbraucher eingeschaltet, das sieht man auch in ändernden "discharge_power_w"

78235.json / 261001Regelsatz-78235.png

  • Die Laderegel, das Sorgenkind
  • Habe mich an "domsom" orientiert, verstehe aber an einigen Stellen noch nicht, warum es so kompliziert sein muss
  • Bin gespannt, wie sich das dann bei Sonne und Überschuss mit laden verhält

Allgemein

  • Es kommt weiterhin laufend zu Kommunikationsproblemen mit dem Speicher. Gibt es vielleicht noch die Option mit den Abfragezeiten/Timing rumzuspielen?
  • Etwas Bedenken habe ich bzgl. der Regelung. Häufige Änderungen an Ladeleistung OK, ich würde aber gerne sicher verhindern, dass der Speicher zu oft zwischen laden/entladen umschaltet.
  • Zusätzlich wäre zumindest eine mindest-Ladeleistung sinnvoll. Das wollte ich über Überschuss > 200 und Ladeleistung = Überschuss - 100 schonmal simulieren
markiert als Spam
Posted by (Fragen: 2, Antworten: 16)
Answered on 1. Oktober 2026 22:05
▲
0
▼
✔
Private answer

Habe gestern noch länger getestet, muss es aber noch sinnvoll zusammenschreiben. Ich nehme an, das periodische Schreiben in der Zählerdefinition ist garnicht notwendig. Ablauf grob:

  • Batteriesteuerung aktivieren
  • Ladeleistung und Entladeleistung schreiben (beides oder selektiv)
  • Entscheid, soll geladen werden oder nicht --> entsprechenden Modus schreiben
  • Batteriesteuerung schliessen

Sieht die CFOS Regelbedarf, wird mit Änderung geschrieben. So hatte es "domsom" in seinem Thread hier (https://www.cfos-emobility.de/network/antworten/solved-marstek-venus-und-pv-ueberschussladen-ueber-charging-manager-steuern/) auch in der Definition.

Grundsätzlich scheint das zu klappen, Aber ich struggle noch mit den Laderegeln. Das war gestern viel zu spät ... Werde nochmals mit klarem Kopf testen, Zählerdefinition und Laderegeln, sowie die Logs dazu aufnehmen.

Auf jeden Fall Danke bis hierher!

markiert als Spam
Posted by (Fragen: 2, Antworten: 16)
Answered on 1. Oktober 2026 7:02
▲
0
▼
✔
Private answer

In dem Log sind nur die Schreibvorgänge. Die Lesevorgänge sollte man sehen wenn du den Loglevel von "Modbus" auf Informationen stellst.

Müssen wirklich alle drei Register zyklisch beschrieben werden. Ich las, dass das zyklische Schreiben von Register 42010 ausreichen sollte.
Vielleicht kommt wegen der ganzen Schreiberei zu den Ausleseproblemen.

markiert als Spam
Posted by Top Networker (Fragen: 0, Antworten: 2021)
Answered on 30. September 2026 22:04
▲
0
▼
✔
Private answer

Das ganze verwirrt mich sehr ... Habe jetzt den Effekt, dass die Kachel des Speichers immer wieder fehlende Verbindung anzeigt / rot blinkt. ABER, die Wattzahl der Test-Entladeregel wird übernommen. passe ich an, springt der Wert auf die neue Einstellung.

Habe jetzt trotzdem einmal die Logs erzeugt, auch weil die fehlende Verbindung ja so nicht sein sollte. Loglevel von "Charging Manager" und "http-API" auf Information.

Datei "260930-syslog-test4.txt"

  • Zähler M6 war inaktiv
  • "marstek_venus_e_3_battery_test4.json"
  • Laderegel nur Regel 1 aktiv
    • "Entladen" "immer", "Auf Wert/Formel setzen", "300W" und "beenden"
  • Log beginnt mit aktivieren des Zählers

Sehe ich es richtig, dass das Log keine direkten Fehler zeigt? Warum wird der Speicher dann sporadisch in der Kachel als nicht verbunden gezeigt?
Auch der Zähler Test liefert im aktuellen Status nur "not connected".

markiert als Spam
Posted by (Fragen: 2, Antworten: 16)
Answered on 30. September 2026 19:58
▲
0
▼
✔
Private answer

Danke Geotec, hoffe heute Abend kann ich das machen!

Bzgl. IPs, I know. Hatte mal was gelesen bzgl. der Risiken, wenn die interne Struktur öffentlich ist. Aber dann steht der chinesische Speicher im Keller. Ist ja Quatsch ...

markiert als Spam
Posted by (Fragen: 2, Antworten: 16)
Answered on 30. September 2026 7:50
▲
0
▼
✔
Private answer

Moin,

setz mal den Loglevel von "Charging Manager" und "http-API" auf Information teste dann. Dann sollte der Datenverkehr im Protokoll stehen.

Das unkenntlich machen der IP-Adressen kannst du dir sparen. Niemand kann mit privaten IP-Adressen etwas anfangen. Sie werden im Internet nicht geroutet. ;-)

markiert als Spam
Posted by Top Networker (Fragen: 0, Antworten: 2021)
Answered on 30. September 2026 7:22
▲
0
▼
✔
Private answer

Habe noch etwas rumgespielt, Speicher zurückgesetzt und die Verbindungen getestet. Zuerst dachte ich, der Speicher ist ggf. garnicht erreichbar. Das ist aber nicht so.

Ich konnte dann über den Modbus Test der CFOS Register lesen / schreiben. Damit kann ich auch laden/entladen triggern, wenn ich die Befehle in der richtigen Reihenfolge ausführe.
Wenn ich diese Befehle in einer Zählerdefinition ausführe (marstek_venus_e_3_battery_test4-3.json anbei), tut sich aber nichts.

Entweder die Definition der Outputs hat irgend einen logischen Knick, der die Laderegel/Steuerung gibt die Outputs garnicht raus?

markiert als Spam
Posted by (Fragen: 2, Antworten: 16)
Answered on 29. September 2026 21:12
▲
0
▼
✔
Private answer

Wieder nur kurzer Test vor der Arbeit möglich - sorry. Ja, die Test4 verbindet und zeigt SoC :-). Steuerung ist aber weiter inaktiv, zumindest mit der Testladeregel 500W tut sich nichts.

Soll ich heute Abend noch mal die weiteren Regeln aktivieren, oder versuchen im LOG nach Informationen zu suchen?

markiert als Spam
Posted by (Fragen: 2, Antworten: 16)
Answered on 29. September 2026 7:03
▲
0
▼
✔
Private answer

So, einmal noch!

 

markiert als Spam
Posted by Top Networker (Fragen: 0, Antworten: 2021)
Answered on 28. September 2026 21:40
▲
0
▼
✔
Private answer

"marstek_venus_e_3_battery_test1.json" funktioniert die Verbindung. Aber halt die Steuerung nicht :-/

markiert als Spam
Posted by (Fragen: 2, Antworten: 16)
Answered on 28. September 2026 19:16
▲
0
▼
✔
Private answer

Ich bin mir nicht 100% sicher, ob Verbindung mit Test1 möglich war, das teste ich heute Abend gerne nochmals.

Melde mich, Danke!

markiert als Spam
Posted by (Fragen: 2, Antworten: 16)
Answered on 28. September 2026 12:03
▲
0
▼
✔
Private answer

Hmm, eigentlich hat sich an den Verbindungseinstellungen der drei Versionen nichts verändert.
Bekommst du denn mit der Test1 noch Verbindung?
Ich schaue es mir heute Abend noch Mal an.

markiert als Spam
Posted by Top Networker (Fragen: 0, Antworten: 2021)
Answered on 28. September 2026 9:26
▲
0
▼
✔
Private answer

Schneller Test vor der Arbeit. Auch mit der Version 3 keine Verbindung zum Speicher.

Adresse weiter auf lokaler LAN-IP und Port 502, ID 1. Habe auch mal die WLAN IP, Port 30000 (Locale API) getestet, auch damit keine Verbindung möglich :-/

Unten die Fehlermeldung und die Kachel, Entladeregel 500W zum testen aktiv.

COM errors: 1 Last error: invalid response

--------------------
Was ich sehe ist, dass in allen Zählerdefinitionen die Firmware Version mit "V147" fest belegt ist. Der Speicher steht auf V148.

Das sollte aber keinen Unterschied machen, zumal in der Ausgangsversion und Test1 die Kommunikation grundsätzlich ja klappt?

Anhänge:
markiert als Spam
Posted by (Fragen: 2, Antworten: 16)
Answered on 28. September 2026 6:46
▲
0
▼
✔
Private answer

Ich hab noch ein paar Fehler gefunden.

Versuch mal die 3

markiert als Spam
Posted by Top Networker (Fragen: 0, Antworten: 2021)
Answered on 27. September 2026 23:31
▲
0
▼
✔
Private answer

Habe erstmal neu gestartet (über die WebGUI) und nochmals mit Test1 versucht. Weiterhin kein entladen.

Die Test2 habe ich importiert, wenn ich diese dem Zähler zuweise, bekomme ich gar keine Verbindung. Auch nach Neustart oder Zähler deaktivieren und wieder aktivieren nicht.

COM errors: 1

Last error: invalid response

Soll ich ein erweitertes Log anlegen?

markiert als Spam
Posted by (Fragen: 2, Antworten: 16)
Answered on 27. September 2026 20:42
▲
0
▼
✔
Private answer

Ich hab noch mal eine Definition angehängt. Sieht die anders aus?

 

markiert als Spam
Posted by Top Networker (Fragen: 0, Antworten: 2021)
Answered on 27. September 2026 18:48
▲
0
▼
✔
Private answer

OK, ich habe den Zähler einmal deaktiviert und wieder aktiviert. Keine Veränderung. In der Zählerkachel sehe ich nicht mehr, als ich vorhin mit der alten Zählerdefinition gesehen hatte?

Ich kann nachher die Wallbox einmal neu starten, wenn ich wieder zuhause bin.

Anhänge:
markiert als Spam
Posted by (Fragen: 2, Antworten: 16)
Answered on 27. September 2026 16:22
▲
0
▼
✔
Private answer

Nö, da muss nichts ersetzt werden.

Stell mal auf der Hauptseite die "Erweiterte Informationen" an.

Siehst du unten in der Zählerkachel dann erweiterte Register?

Evtl. mal den Zähler/Zählerkachel deaktivieren und wieder aktivieren.

markiert als Spam
Posted by Top Networker (Fragen: 0, Antworten: 2021)
Answered on 27. September 2026 15:25
▲
0
▼
✔
Private answer

Hallo Geotec,

wollte nicht spekulieren, dass Du antwortest :-) ...

Die Zählerdefinition konnte ich so importieren und dem bestehenden Zähler zuweisen. Untenstehende Laderegel habe ich testweise aktiviert. Damit sollte einfach 500W entladen werden. Es passiert aber nichts.

Muss ich "localhost" in der Zählerdefinition durch die Speicher-IP ersetzen? Oder in der Marstek laderegeln etc. löschen?

Anhänge:
markiert als Spam
Posted by (Fragen: 2, Antworten: 16)
Answered on 27. September 2026 15:10
▲
0
▼
✔
Private answer

Moin,

in der verlinkten Definition sind keine Steuerbefehle eingebaut.

Ich habe das mal versucht einzubauen,

Schau mal ob zu damit etwas erreichst.

(Beim anlegen von Regeln, muss die erste Regel immer -1 zurück geben. Wie auch bei z.B. bei SMA)

markiert als Spam
Posted by Top Networker (Fragen: 0, Antworten: 2021)
Answered on 27. September 2026 11:22