sphings-dev.de

Marstek Venus D: Alle Modbus-Register von 30000 bis 49999 gescannt

Die Home-Assistant-Integration ViperRNMC/marstek_venus_modbus beschreibt Registertabellen für mehrere Marstek-Varianten. Wie vollständig sie für die Venus D ist, lässt sich nur prüfen, indem man das Gerät abfragt. Marstek Modbus Register dokumentiert genau das: einen Scan aller Register von 30000 bis 49999 an einer Venus D mit zwei Packs zu je 16 LFP-Zellen.

Aufbau des Scans

Das Gerät hing über RS485 an einem WLAN-Gateway und wurde per Modbus TCP abgefragt. Ein eigenes Python-Skript fragt jedes Register einzeln ab, mit einem Heartbeat-Register (41000) zur Kontrolle und adaptivem Backoff, damit das Gerät nicht überfordert wird:

python modbus_scanner.py --ip <Geraete-IP> --port 502 \
  --start 30000 --count 10000 -v \
  --heartbeat-reg 41000 --csv scan_30000.csv

Die Parameter: 0,3 s Verzögerung, 3 s Timeout, alle 50 Register 3 s Pause und nach höchstens fünf Fehlversuchen 30 s Abkühlzeit. Von 10.000 Registern im 30000er-Block antworteten 278 mit gültigen Daten, ein Register (32085) lieferte einen Fehler. Im 40000er-Block waren es 93 von 10.000.

Zuordnung zur ViperRNMC-Tabelle

Jedes Register wurde der Tabelle der Integration zugeordnet, mit der Priorität d, dann e_v3, zuletzt a. Die e_v12-Spalte blieb ausgeschlossen: Dieses Modell hat ein vollständig anderes Registerlayout. Register, die im Scan Daten liefern, aber in der Tabelle fehlen, stehen in einer eigenen Datei „unknown“ mit einer Best-Guess-Deutung.

Was die Dokumentation nicht kannte

  • Pack-Header: Die README der Integration definiert für die Venus D nur Pack-1-Register. Im Scan fallen die Header-Register auf, etwa 34000 (Gesamtspannung, ×0,01 V), 34005/34006 (maximale und minimale Zellspannung, ×0,001 V), 34010 (Pack-Temperatur, ×0,1 °C), 34011 (maximale Zelltemperatur) und 34012–34016 (fünf Zelltemperatursensoren). Auch das zweite Pack wiederholt die Struktur exakt 100 Register später.
  • Netzwerk: Die Register 30400–30403 enthalten als uint16-Paare die IP-Adresse des Kommunikationsmoduls und die Gateway-Adresse.
  • Strings: 41500–41515 enthalten ASCII-Texte des Kommunikationsmoduls: eine Modell- oder Seriennummern-Kennung, eine vermutliche WLAN-SSID des integrierten Hotspots und einen weiteren, unklaren Text. Die Deutungen sind Vermutungen.
  • Register, die laut Tabelle nur für e_v12 gelten: 32100 (Batteriespannung) und 32104 (SoC) sind auf der Venus D aktiv.

Steuerregister

Schreibzugriff auf die Steuerregister 42010 bis 42021 ist nur möglich, wenn das Gerät im RS485-Steuermodus steht. Register 42000 zeigt das: 0x55AA (21930) für aktiv, 0x55BB (21947) für inaktiv. Die Steuerregister sollte man nie ohne Prüfung des Modus beschreiben. Sie können Laden und Entladen erzwingen oder Leistungsgrenzen verändern. Der Scan zeigt außerdem Geräteeinstellungen wie Backup-Funktion, Zielladestand, Betriebsmodus und Leistungsgrenzen im Ausgangszustand, die sechs Zeitpläne waren leer.

Die Ergebnisse stammen von einem einzelnen Gerät. Alle Deutungen unbekannter Register sind Vermutungen. Wer eine Venus A, D oder E besitzt und ähnliche Scans gemacht hat, ist eingeladen, Ergebnisse beizusteuern.

Tags

Zum Projekt

Unterstützen

Diese Tools entstehen in meiner Freizeit und bleiben kostenlos, offen und cloud-frei. Wenn dir eins davon einen Nachmittag gespart hat, freue ich mich über einen Kaffee oder ein Stück Pizza.

Kaffee oder Pizza

Weitere Beiträge