Victron Victron DC-Charger Modbus TCP template

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

NameUnitAccessAddress (Hidden until you enter your email)Function (hidden)Type (hidden)
battery_voltageVRead
battery_currentARead
battery_temperature°CRead
charger_on_offRead
charge_stateRead
voltageVRead
currentARead
equalization_pendingRead
equalization_time_remainingsRead
relay_on_the_chargerRead
low_battery_voltage_alarmRead
high_battery_voltage_alarmRead
yield_todaykWhRead
max_charge_power_todayWRead
yield_yesterdaykWhRead
max_charge_power_yesterdayWRead
error_codeRead
actual_powerWRead
actual_energyWhRead
mpp_operation_modeRead
pv_voltage_tracker_0VRead
pv_voltage_tracker_1VRead
pv_voltage_tracker_2VRead
pv_voltage_tracker_3VRead
yield_today_tracker_0kWhRead
yield_today_tracker_1kWhRead
yield_today_tracker_2kWhRead
yield_today_tracker_3kWhRead
yield_yesterday_tracker_0kWhRead
yield_yesterday_tracker_1kWhRead
yield_yesterday_tracker_2kWhRead
yield_yesterday_tracker_3kWhRead
max_charge_power_today_tracker_0WRead
max_charge_power_today_tracker_1WRead
max_charge_power_today_tracker_2WRead
max_charge_power_today_tracker_3WRead
max_charge_power_yesterday_tracker_0WRead
max_charge_power_yesterday_tracker_1WRead
max_charge_power_yesterday_tracker_2WRead
max_charge_power_yesterday_tracker_3WRead

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

  1. 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.

  2. 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.

  3. 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.

  4. 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?

Electrician working in an open distribution board