All devices

Marstek · Home battery

Venus A / Venus D Modbus register map

Download JSONSupplier documentationSuggest an edit

Default configuration

Protocol
RS485
Port
502
Unit ID
1
Addressing
0-based
Byte order
Big endian
Word order
High word first
Baud rate
115200
Parity
None
Data bits
8
Stop bits
1

This device has an RS-485 interface. Reach it through a Modbus RTU-to-TCP gateway, configured with the factory serial settings above.

Register map

AddressCountNameTypeUnitScaleAccess
300011
Battery power
AC-side battery charge/discharge power; per evcc, this register covers only the AC-side charge/discharge transaction. The cited sources do not document the sign convention.
Int16W1R
300061
AC power
AC-side power; positive = discharging.
Int16W1R
301001
Battery voltage
UInt16V0.01R
301011
Battery current
Int16A0.1R
3100010
Device name
20-character device name.
Ascii-1R
321041
Battery state of charge
UInt16%1R
321051
Battery stored energy
UInt16kWh0.001R
322001
AC voltage
UInt16V0.1R
322041
AC frequency
Int16Hz0.1R
330002
Total charging energy
UInt32kWh0.01R
330022
Total discharging energy
Int32kWh0.01R
330042
Daily charging energy
UInt32kWh0.01R
330062
Daily discharging energy
Int32kWh0.01R
330082
Monthly charging energy
UInt32kWh0.01R
330102
Monthly discharging energy
Int32kWh0.01R
340031
Battery cycle count
UInt16-1R
350001
Internal temperature
Int16°C0.1R
350011
MOS1 temperature
Int16°C0.1R
350021
MOS2 temperature
Int16°C0.1R
350101
Maximum cell temperature
Int16°C0.1R
351001
Inverter state
0 = sleep, 1 = standby, 2 = charge, 3 = discharge, 4 = backup mode, 5 = OTA upgrade, 6 = bypass.
UInt16-1R
370071
Maximum cell voltage
Int16V0.001R
370081
Minimum cell voltage
Int16V0.001R
420001
RS-485 control mode
Enables control over Modbus (write commands). 21930 = on, 21947 = off.
UInt16-1RW
420101
Force mode
0 = none, 1 = charge, 2 = discharge.
UInt16-1RW
420111
Charge/discharge target SoC
SoC at which a forced charge or discharge stops.
UInt16%1RW
420201
Forced charge power setpoint
UInt16W1RW
420211
Forced discharge power setpoint
UInt16W1RW
430001
User work mode
0 = manual, 1 = anti-feed (self-consumption), 2 = trade mode.
UInt16-1RW
440021
Maximum charge power
UInt16W1RW
440031
Maximum discharge power
UInt16W1RW

Notes

Register map from the Marstek Venus Modbus integration for Home Assistant (ViperRNMC/marstek_venus_modbus, registers/a.yaml and d.yaml plus the README register table, retrieved 2026-10-24), cross-checked against evcc's marstek-venus-a.yaml, which reads AC power (30006) and the MPPT powers from the same map. The source itself opens with this caveat, quoted verbatim: "Venus A/D registers are untested. Base register map generated from CSV (v3 Description). Verify all addresses, names, and mappings on real hardware before use. Some entries may be incorrect, duplicated, or unmatched." This map is therefore machine-generated and not validated on hardware - unlike the Venus E Gen 3 file. Venus A and Venus D share the layout; addresses and scale factors are identical in both files. The discharging counters (33002, 33006, 33010) are signed in the definitions and unsigned in evcc's template; the signed form is kept. RS-485 device at 115200 8N1 (Venus A/D also answer on Ethernet where the firmware serves Modbus TCP; evcc offers both transports), so use a Modbus RTU-to-TCP gateway with these serial settings; unit ID 1 is the integration's default and can be changed on the device (register 41100 reports it). 32-bit energy counters are big-endian, high word first, as the integration decodes them. Left out: the PV MPPT input registers (30020-30027, 30037-30040), because they only exist on units with PV inputs and the source does not say which models have them; the per-pack cell voltage blocks, because pack 1 SoC at 34002 collides with the cycle counter block on some firmware and they are cell-level diagnostics only; and the alarm/fault bit fields (36000, 36100), whose bit meanings the source does not document.