
Marstek Venus E Gen 2.0 (battery)
The Marstek Venus E Gen 2.0 is an AC-coupled residential battery storage system designed to maximize solar self-consumption and reduce grid dependency. The ModbusCloud template reads battery state of charge, instantaneous power flow, and cumulative energy throughput via Modbus TCP, while also exposing write registers for RS485 control mode, user work mode, force charge/discharge mode, and forcible charge power. This gives installers and asset managers direct visibility and programmatic control over the Venus E, Venus E Gen 2.0, and Venus C from the ModbusCloud portal.
- Protocol
- Modbus TCP
- Connection
- Ethernet, Modbus TCP
- 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 | Wh | 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 confirm the Venus E is cycling as expected across the day.
- Track cumulative energy throughput to calculate effective cycle count and identify early capacity degradation.
- Alert on sustained negative power values to verify the battery is charging during planned solar surplus windows.
- Compare real-time power readings against smart meter data to verify zero-feed-in control is operating correctly.
- Report daily discharge energy across multiple Venus E units on a single site to validate self-consumption targets.
Installation
Connect the RS485 port of the Venus E to an RS485-to-Ethernet adapter (such as an Elfin EW11 or PUSR DR-134), wiring A(+) and B(-) terminals correctly, and note that swapped polarity causes communication errors.
Connect the RS485-to-Ethernet adapter to the same LAN segment as the ModbusCloud Gateway, set the adapter's TCP server port to 502, and confirm the baud rate matches the battery's default RS485 settings.
In the ModbusCloud portal, add the Gateway, import the Marstek Venus E Gen 2.0 template, and assign the correct unit ID (default 1) matching the battery's Modbus slave address.
Verify the connection by spot-checking the soc register (address 32104): a stable integer between 0 and 100 confirms correct framing; if reads fail, check that only one TCP client is connected to the adapter at a time.
Things to watch for
The soc and power registers return zeros or errors. Why?
The Venus E only allows one simultaneous Modbus TCP connection to the RS485 adapter. If another client such as a home automation system or evcc is already connected, the ModbusCloud Gateway will receive no response. Disconnect other clients or configure connection time-sharing before polling.
Write registers 42000 to 42020 have no effect. What is wrong?
RS485 control mode must be activated first by writing the value 21930 (0x55AA) to register 42000 before any control registers in the 42000 to 42999 range take effect. Without this enable step, writes to batterymode_e and batterymode_h are silently ignored by the battery.
Is it safe to leave RS485 control mode permanently enabled?
Use caution. Writing incorrect values to the force charge/discharge or work mode registers can cause the battery to charge or discharge outside the operating envelope expected by the battery management system. Always confirm target values before writing, and return batterymode_e to 0 (stop) when no active command is needed.
Register values change unexpectedly after a firmware update. Why?
Register addresses and their meanings have changed across Venus E firmware versions. Some users on firmware V139 and later have reported register behavior differences compared to earlier versions. After any firmware update on the battery, re-verify that the soc, power, and energy addresses still return plausible values before relying on the template for alerts or control.
Want to see how it works?








