
Victron Ess
Victron Ess is the VE.Bus-based Energy Storage System integrating a Victron MultiPlus or Quattro inverter/charger with a GX device and battery, enabling grid-parallel and off-grid operation with solar. This Modbus TCP template reads the full VE.Bus register set: per-phase AC input and output voltage, current, frequency, and power; battery voltage, current, state of charge, temperature, and charge state; plus a comprehensive alarm set covering overload, low battery, ripple, grid loss, and BMS status. It also exposes per-phase ESS power setpoints and energy flow counters across all AC paths. Use it to monitor and control a Victron ESS installation from the ModbusCloud portal without writing any custom code.
- Protocol
- Modbus TCP
- Connection
- Ethernet, Modbus TCP
- Registers
- 94, read and write
- Brand
- Victron
- Last updated
Registers (94)
89 read, 5 write
| Name | Unit | Access | Address (Hidden until you enter your email) | Function (hidden) | Type (hidden) |
|---|---|---|---|---|---|
| voltage_input_l1 | V | Read | |||
| voltage_input_l2 | V | Read | |||
| voltage_input_l3 | V | Read | |||
| current_input_l1 | A | Read | |||
| current_input_l2 | A | Read | |||
| current_input_l3 | A | Read | |||
| frequency_input_l1 | Hz | Read | |||
| frequency_input_l2 | Hz | Read | |||
| frequency_input_l3 | Hz | Read | |||
| active_power_input_l1 | W | Read | |||
| active_power_input_l2 | W | Read | |||
| active_power_input_l3 | W | Read | |||
| voltage_output_l1 | V | Read | |||
| voltage_output_l2 | V | Read | |||
| voltage_output_l3 | V | Read | |||
| current_output_l1 | A | Read | |||
| current_output_l2 | A | Read | |||
| current_output_l3 | A | Read | |||
| frequency_output | Hz | Read | |||
| current_input_limit | A | Read | |||
| active_power_output_l1 | W | Read | |||
| active_power_output_l2 | W | Read | |||
| active_power_output_l3 | W | Read | |||
| battery_voltage | V | Read | |||
| battery_current | A | Read | |||
| phase_count | Read | ||||
| active_input | Read | ||||
| soc | % | Read | |||
| ve_bus_state | Read | ||||
| ve_bus_error | Read | ||||
| switch_position | Read | ||||
| temperature_alarm | Read | ||||
| low_battery_alarm | Read | ||||
| overload_alarm | Read | ||||
| ess_power_setpoint_phase_1 | W | Read | |||
| ess_disable_charge_flag_a | Read | ||||
| ess_disable_feedback_flag_a | Read | ||||
| ess_power_setpoint_phase_2 | W | Read | |||
| ess_power_setpoint_phase_3 | W | Read | |||
| temperature_sensor_alarm | Read | ||||
| voltage_sensor_alarm | Read | ||||
| temperature_alarm_l1 | Read | ||||
| low_battery_alarm_l1 | Read | ||||
| overload_alarm_l1 | Read | ||||
| ripple_alarm_l1 | Read | ||||
| temperature_alarm_l2 | Read | ||||
| low_battery_alarm_l2 | Read | ||||
| overload_alarm_l2 | Read | ||||
| ripple_alarm_l2 | Read | ||||
| temperature_alarm_l3 | Read | ||||
| low_battery_alarm_l3 | Read | ||||
| overload_alarm_l3 | Read | ||||
| ripple_alarm_l3 | Read | ||||
| disable_pv_inverter | Read | ||||
| ve_bus_bms_allow_battery_charge | Read | ||||
| ve_bus_bms_allow_battery_discharge | Read | ||||
| ve_bus_bms_expected | Read | ||||
| ve_bus_bms_error | Read | ||||
| battery_temperature | °C | Read | |||
| ve_bus_reset | Read | ||||
| phase_rotation_warning | Read | ||||
| grid_lost_alarm | Read | ||||
| feed_dc_overvoltage_to_grid | Read | ||||
| max_dc_overvoltage_power_to_grid_l1 | W | Read | |||
| max_dc_overvoltage_power_to_grid_l2 | W | Read | |||
| max_dc_overvoltage_power_to_grid_l3 | W | Read | |||
| ac_input1_ignored | Read | ||||
| ac_input2_ignored | Read | ||||
| ac_power_setpoint_as_feed_in_limit | Read | ||||
| solar_offset_voltage | V | Read | |||
| sustain_active | Read | ||||
| energy_from_ac_in_1_to_ac_out | Wh | Read | |||
| energy_from_ac_in_1_to_battery | Wh | Read | |||
| energy_from_ac_in_2_to_ac_out | Wh | Read | |||
| energy_from_ac_in_2_to_battery | Wh | Read | |||
| energy_from_ac_out_to_ac_in_1 | Wh | Read | |||
| energy_from_ac_out_to_ac_in_2 | Wh | Read | |||
| energy_from_battery_to_ac_in_1 | Wh | Read | |||
| energy_from_battery_to_ac_in_2 | Wh | Read | |||
| energy_from_battery_to_ac_out | Wh | Read | |||
| energy_from_ac_out_to_battery | Wh | Read | |||
| low_cell_voltage_imminent | Read | ||||
| charge_state | Read | ||||
| int32_ess_power_setpoint_phase_1 | W | Read | |||
| int32_ess_power_setpoint_phase_2 | W | Read | |||
| int32_ess_power_setpoint_phase_3 | W | Read | |||
| prefer_renewable_energy | Wh | Read | |||
| select_remote_generator | Read | ||||
| remote_generator_selected | Read | ||||
| set_active_power_l1 | W | Write | |||
| ess_disable_charge_flag_b | Write | ||||
| ess_disable_feedback_flag_b | Write | ||||
| set_active_power_l2 | W | Write | |||
| set_active_power_l3 | 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 and temperature in real time to verify BatteryLife operation across seasons.
- Track per-phase AC input and output power to detect load imbalances in three-phase residential installations.
- Alert on grid_lost_alarm or overload_alarm triggers to dispatch field engineers before a site goes dark.
- Compare energy_from_battery_to_ac_out against energy_from_ac_in_1_to_battery to verify round-trip efficiency over time.
- Verify ESS power setpoints written to set_active_power_l1 through L3 are reflected in the read-back registers.
Installation
Enable Modbus TCP on the GX device (Cerbo GX, Venus GX, or compatible) by navigating to Settings, then Services, and switching Modbus TCP to Enabled.
Connect the ModbusCloud Gateway to the same LAN as the GX device. The GX device exposes Modbus TCP on port 502; no additional wiring is needed for TCP.
In the ModbusCloud portal, add the Gateway, import the Victron Ess template, and set the unit ID to 246 for the VE.Bus device connected to the GX device's VE.Bus port.
Verify the connection by checking that register 30 (soc) returns a value between 0 and 100 and register 26 (battery_voltage) shows a plausible DC voltage.
Things to watch for
Voltage and current registers return values that seem ten times too high. Why?
Victron VE.Bus Modbus registers for AC voltage and DC battery voltage use a scale factor of 10: divide the raw register value by 10 to obtain the actual reading in volts. Similarly, current registers for the battery use a scale factor of 10. Always apply the scale factor listed in the Victron Modbus TCP register list spreadsheet before interpreting any value.
The Gateway connects but all VE.Bus registers return errors. What now?
The most common cause is an incorrect unit ID. The VE.Bus system connected to the GX device's VE.Bus port uses unit ID 246 by default. Check the actual unit ID under Settings in the GX device's Modbus TCP menu, then update the unit ID in the ModbusCloud portal to match.
Energy counter registers reset to zero unexpectedly. Is this a fault?
This is expected VE.Bus behaviour. The energy flow counters (energy_from_ac_in_1_to_ac_out and similar) are volatile: they reset to zero whenever the Multi or Quattro is switched off, and also whenever the GX device reboots. Use the ModbusCloud portal's historical logging to preserve cumulative data across resets.
I wrote a value to set_active_power_l1 but the inverter behaved unexpectedly. What should I check?
Write registers set_active_power_l1, set_active_power_l2, and set_active_power_l3 directly command the ESS control loop. Incorrect setpoints can push the inverter beyond its rated capacity, trigger protection shutdowns, or cause unintended grid export. Always test setpoint writes in small increments, confirm the ESS assistant is installed and active, and do not write setpoints while ess_disable_charge_flag_b or ess_disable_feedback_flag_b are set unless that is intentional.
Want to see how it works?








