
Victron DC-Charger
The Victron DC-Charger is a solar MPPT charge controller that converts PV array power into controlled DC battery charging, used in off-grid, marine, and mobile energy systems. This Modbus TCP template reads battery voltage, current, temperature, and active charge state alongside per-tracker PV voltages, per-tracker daily and yesterday yield, peak power records, alarm flags for low and high battery voltage, equalization status, and the active error code. Installers gain a complete real-time and historical picture of charger behaviour without polling the VRM portal manually.
- Protocol
- Modbus TCP
- Connection
- Ethernet, Modbus TCP
- Registers
- 40, read only
- Brand
- Victron
- Last updated
Registers (40)
40 read, 0 write
| Name | Unit | Access | Address (Hidden until you enter your email) | Function (hidden) | Type (hidden) |
|---|---|---|---|---|---|
| battery_voltage | V | Read | |||
| battery_current | A | Read | |||
| battery_temperature | °C | Read | |||
| charger_on_off | Read | ||||
| charge_state | Read | ||||
| voltage | V | Read | |||
| current | A | Read | |||
| equalization_pending | Read | ||||
| equalization_time_remaining | s | Read | |||
| relay_on_the_charger | Read | ||||
| low_battery_voltage_alarm | Read | ||||
| high_battery_voltage_alarm | Read | ||||
| yield_today | kWh | Read | |||
| max_charge_power_today | W | Read | |||
| yield_yesterday | kWh | Read | |||
| max_charge_power_yesterday | W | Read | |||
| error_code | Read | ||||
| actual_power | W | Read | |||
| actual_energy | Wh | Read | |||
| mpp_operation_mode | Read | ||||
| pv_voltage_tracker_0 | V | Read | |||
| pv_voltage_tracker_1 | V | Read | |||
| pv_voltage_tracker_2 | V | Read | |||
| pv_voltage_tracker_3 | V | Read | |||
| yield_today_tracker_0 | kWh | Read | |||
| yield_today_tracker_1 | kWh | Read | |||
| yield_today_tracker_2 | kWh | Read | |||
| yield_today_tracker_3 | kWh | Read | |||
| yield_yesterday_tracker_0 | kWh | Read | |||
| yield_yesterday_tracker_1 | kWh | Read | |||
| yield_yesterday_tracker_2 | kWh | Read | |||
| yield_yesterday_tracker_3 | kWh | Read | |||
| max_charge_power_today_tracker_0 | W | Read | |||
| max_charge_power_today_tracker_1 | W | Read | |||
| max_charge_power_today_tracker_2 | W | Read | |||
| max_charge_power_today_tracker_3 | W | Read | |||
| max_charge_power_yesterday_tracker_0 | W | Read | |||
| max_charge_power_yesterday_tracker_1 | W | Read | |||
| max_charge_power_yesterday_tracker_2 | W | Read | |||
| max_charge_power_yesterday_tracker_3 | W | Read |
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 charge_state transitions between bulk, absorption, float, and equalize to verify the charging algorithm runs correctly each day.
- Track yield_today and yield_yesterday across all four MPPT tracker channels to compare string performance and detect shading or soiling.
- Alert on low_battery_voltage_alarm or high_battery_voltage_alarm to catch wiring faults or battery issues before they cause damage.
- Compare max_charge_power_today_tracker_0 through tracker_3 to identify underperforming PV strings across multi-tracker installations.
- Report actual_power and actual_energy trends over time to verify the charger delivers expected output relative to installed panel capacity.
Installation
Enable Modbus TCP on the GX device (Cerbo GX, Venus GX, or equivalent): go to Settings, scroll to Services, and turn on Modbus-TCP. The default port is 502.
Connect the GX device to the same LAN as the ModbusCloud Gateway using a standard Ethernet cable, or verify it is reachable over the site network.
In the ModbusCloud portal, add the Gateway, import the Victron DC-Charger template, and set the unit ID to match the solar charger's Device Instance shown on the GX device under Settings, then Services, then Modbus-TCP, then Device list.
Verify the connection by reading register 771 (battery_voltage) and cross-checking the value against the GX device's live display or the VictronConnect app.
Things to watch for
All registers return zero or an error. What is wrong?
Modbus TCP is disabled by default on Victron GX devices. Navigate to Settings, then Services on the GX device and confirm Modbus-TCP is enabled. Also verify the unit ID in your portal matches the solar charger's Device Instance, which is listed on the Device list tab in the Modbus-TCP service menu of the GX device.
PV voltage registers 776 and 777 always read zero on multi-tracker units. Why?
On chargers with multiple independent MPPT trackers, the single-channel PV voltage (address 776) and current (address 777) may be unavailable because the device exposes per-tracker values instead. Read pv_voltage_tracker_0 through tracker_3 at addresses 3700 to 3703 for individual string voltages.
The charge_state register shows value 252. What does that mean?
A value of 252 on the charge_state register means the charger is under external control, typically because it is part of a Victron ESS system where the inverter-charger dictates the charge curve. This is normal behaviour in an ESS configuration and does not indicate a fault.
Yield registers show unexpected values after midnight. Is this a scaling issue?
Yield today registers reset at midnight local time on the GX device. Values are stored in kWh as uint16 with a scaling factor of 0.01 applied by the GX Modbus layer, so a raw register value of 350 equals 3.50 kWh. Confirm your polling client applies the correct scaling factor from the Victron CCGX Modbus TCP register list spreadsheet.
Want to see how it works?








