
Marstek Venus C (battery)
The Marstek Venus C is a plug-in AC-coupled home battery storage system designed for residential solar self-consumption and grid peak-shaving. This Modbus RTU template reads AC power flow, cumulative energy throughput, and battery state of charge, and also exposes four write registers that control RS485 enable mode, user work mode, force charge or discharge mode, and charge power setpoint. Connecting a ModbusCloud Gateway to the Venus C or Venus E via an RS485 adapter gives installers live visibility and programmatic control over the battery without relying on the Marstek cloud app.
- Protocol
- Modbus RTU
- Connection
- RS485
- Registers
- 7, read and write
- Brand
- Marstek
- Compatible models
- Venus E · Venus E Gen 2.0 · Venus C
- Last updated
Registers (7)
3 read, 4 write
| Name | Unit | Access | Address (Hidden until you enter your email) | Function (hidden) | Type (hidden) |
|---|---|---|---|---|---|
| power | W | Read | |||
| energy | Read | ||||
| soc | % | Read | |||
| batterymode_a | Write | ||||
| batterymode_b | Write | ||||
| batterymode_e | Write | ||||
| batterymode_h | W | Write |
Loading registers…
Send your device list
If a device is not in the library yet, we build the template for free as soon as we have the register data.
Use cases
- Monitor battery state of charge continuously to detect unexpected overnight self-discharge between billing cycles.
- Track AC power flow register to verify the battery is charging from solar surplus rather than drawing from the grid.
- Alert on state of charge dropping below a defined threshold during peak evening hours to flag undersized storage.
- Compare cumulative energy throughput over months to estimate cycle count and plan preventive maintenance visits.
- Verify force charge mode activates correctly after writing the RS485 enable register, using live power readings.
Installation
Connect an RS485-to-Ethernet or RS485-to-Wi-Fi adapter to the Marstek Venus C or Venus E 5-pin RS485 port, wiring A(+) and B(-) correctly; swap if the battery shows a communication error on first power-up.
Configure the RS485 adapter for baud rate 115200, 8 data bits, no parity, 1 stop bit, and set TCP server mode on port 502; note that only one simultaneous Modbus TCP connection is allowed on this adapter.
In the ModbusCloud portal, add your ModbusCloud Gateway, import the Marstek Venus C template, and assign the correct unit ID (slave ID) matching your adapter configuration, typically 1.
Spot-check the soc register at address 32104 in the portal live data view; confirm the value matches the state of charge shown in the Marstek app before enabling any write-register automation.
Things to watch for
Write registers have no effect even though reads work fine. Why?
Register 42000 (batterymode_a) must be written with the value 21930 (0x55AA) before any other control registers take effect. This activates RS485 control mode on the battery. Write 42000 first, then write 42010 (batterymode_e) or 42020 (batterymode_h). Skipping this step causes the battery to silently ignore setpoints.
The gateway connects but all register reads return zero or an error.
The most common cause is swapped RS485 A and B wires. Reverse the two data lines on the adapter terminal and reconnect. Also confirm the adapter baud rate matches the battery default of 115200. If another Modbus client such as a home automation system is already connected, disconnect it first: only one TCP session is allowed at a time.
Is it safe to write force charge or discharge setpoints remotely?
Use caution. Writing incorrect values to batterymode_e (42010) or batterymode_h (42020) can force the battery to charge or discharge outside its normal operating strategy, potentially tripping protection limits or invalidating warranty conditions. Test setpoints locally and monitor the power register response before deploying automated writes.
The soc value reads correctly but the power register shows zero when the battery is active.
Register 32202 (power) is a signed int32 spanning two consecutive Modbus registers. Some RS485-to-TCP adapters return only the first 16-bit word if not configured for multi-register reads. Confirm your adapter and the ModbusCloud Gateway are reading two consecutive registers starting at 32202.
Want to see how it works?








