Easy Modbus
  1. Home
  2. Modbus register maps
  3. Victron Energy
  4. GX device Modbus-TCP (Cerbo GX, Venus GX, Color Control GX)

Battery inverter (GX gateway for inverter/chargers, batteries and solar chargers) · Modbus register map

Victron Energy GX device Modbus-TCP (Cerbo GX, Venus GX, Color Control GX) Modbus register map

Updated 24 October 2026

Short answer

A Victron GX device is a Modbus-TCP gateway: one IP address on port 502, with the unit ID choosing which connected product you talk to (unit ID 100 for whole-system totals and ESS settings, other IDs for each Multi/Quattro, battery monitor or MPPT). Every register in this map is a single 16-bit integer whose raw value is divided by Victron's scale factor. The map covers system power flows and battery summary, VE.Bus AC/DC measurements, state, alarms and ESS mode 3 control, battery monitor/BMS values and alarms, solar charger readings, and the ESS mode 2 settings.

This page lists 128 Modbus registers for the Victron Energy GX device Modbus-TCP (Cerbo GX, Venus GX, Color Control GX) — 21 writable — with the table, 0-based wire address, data type, word order, scale, units and access of each, re-typed from Victron Energy’s own free documentation (linked below) and checked against it.

Manufacturer
Victron Energy
Model
GX device Modbus-TCP (Cerbo GX, Venus GX, Color Control GX)
Equipment type
Battery inverter (GX gateway for inverter/chargers, batteries and solar chargers)
Registers
128 (21 writable)
Transport
Modbus TCP
Default unit ID
100
TCP port
502
Documented addressing
0-based (the number printed is the address on the wire)
Firmware
Venus OS; register list 3.81. Some registers need a minimum Venus version (e.g. 2716 needs 3.50+).
Also known as
Cerbo GX, Cerbo-S GX, Venus GX, Color Control GX, CCGX, Ekrano GX, Octo GX, MultiPlus-II GX, EasySolar-II GX, Venus OS, dbus-modbustcp
Source document
Modbus-TCP register list (CCGX-Modbus-TCP-register-list-3.81.xlsx) · Register list 3.81, document revision Rev 54
Download CSV all columns JSON Manufacturer PDF ↗

Integration notes: Victron Energy GX device Modbus-TCP (Cerbo GX, Venus GX, Color Control GX)

Integration in brief

Enable the Modbus-TCP service on the GX, read the 'Available services' list to get each device's unit ID, then poll unit ID 100 (registers 817-866) for the system picture and the VE.Bus unit ID (registers 3-36) for the inverter/charger. All listed values are one 16-bit register each: apply the scale, and treat INT16 rows as signed.

Minimum registers to map

Addresses are 0-based wire addresses. Enough to monitor and run the unit; map more as the job needs.

RegisterNameTypeWhyAccess
HR 843Battery state of charge (system) [unit ID 100]UINT16System battery state of charge (unit ID 100)Read
HR 842Battery power (system) [unit ID 100]INT16System battery power, + charging / - discharging (unit ID 100)Read
HR 820Grid power L1 [unit ID 100]INT16Grid power L1 (unit ID 100)Read
HR 817AC consumption L1 [unit ID 100]UINT16AC consumption L1 (unit ID 100)Read
HR 850DC-coupled PV power [unit ID 100]UINT16Total DC-coupled PV power (unit ID 100)Read
HR 31VE.Bus state [VE.Bus unit ID]UINT16VE.Bus state (VE.Bus unit ID)Read
HR 32VE.Bus error [VE.Bus unit ID]UINT16VE.Bus error (VE.Bus unit ID)Read
HR 33Switch position (mode) [VE.Bus unit ID]UINT16Switch position: remote on/off/charger-only (VE.Bus unit ID)Read/write
HR 22Active input current limit [VE.Bus unit ID]INT16AC input current limit (VE.Bus unit ID)Read/write

Enable Modbus control & writes

Modbus-TCP is off by default. On the GX, enable it under Settings > Services > Modbus TCP (newer Venus OS: Settings > Integrations > Modbus TCP server). The same menu lists 'Available services' with each device's unit ID and shows the last Modbus error. ESS mode 3 control needs ESS mode set to external control (register 2902 = 3, or the GUI).

Communication loss & watchdog

ESS mode 3: the VE.Bus power setpoints (37, 40, 41) must be rewritten at least every 60 seconds or the Multi drops to passthru. No general Modbus timeout is documented for other writes.

Byte order & addressing

Network setup

Watch out for

Victron Energy GX device Modbus-TCP (Cerbo GX, Venus GX, Color Control GX) Modbus registers

Address = 0-based wire address (the documented number is shown under it when it differs) · Order: ABCD = high word first, CDAB = low word first · Scale: engineering value = raw × scale.

128 of 128 shown
Victron Energy GX device Modbus-TCP (Cerbo GX, Venus GX, Color Control GX) Modbus register map
TableAddressNameDescriptionTypeOrderScaleUnitsAccessValues / bits
HR3Input voltage L1 [VE.Bus unit ID]Voltage on the active AC input, phase 1.UINT16× 0.1VRead
HR4Input voltage L2 [VE.Bus unit ID]UINT16× 0.1VRead
HR5Input voltage L3 [VE.Bus unit ID]UINT16× 0.1VRead
HR6Input current L1 [VE.Bus unit ID]Positive from mains into the Multi; negative when feeding back.INT16× 0.1ARead
HR7Input current L2 [VE.Bus unit ID]INT16× 0.1ARead
HR8Input current L3 [VE.Bus unit ID]INT16× 0.1ARead
HR9Input frequency L1 [VE.Bus unit ID]INT16× 0.01HzRead
HR12Input power L1 [VE.Bus unit ID]Same sign as input current. Raw value times 10 gives W.INT16× 10WRead
HR13Input power L2 [VE.Bus unit ID]Raw value times 10 gives W.INT16× 10WRead
HR14Input power L3 [VE.Bus unit ID]Raw value times 10 gives W.INT16× 10WRead
HR15Output voltage L1 [VE.Bus unit ID]UINT16× 0.1VRead
HR16Output voltage L2 [VE.Bus unit ID]UINT16× 0.1VRead
HR17Output voltage L3 [VE.Bus unit ID]UINT16× 0.1VRead
HR18Output current L1 [VE.Bus unit ID]Positive from the Multi to the loads.INT16× 0.1ARead
HR19Output current L2 [VE.Bus unit ID]INT16× 0.1ARead
HR20Output current L3 [VE.Bus unit ID]INT16× 0.1ARead
HR21Output frequency [VE.Bus unit ID]INT16× 0.01HzRead
HR22Active input current limit [VE.Bus unit ID]AC input current limit; may be locked by a VE.Bus BMS or DMC.INT16× 0.1ARead/write
HR23Output power L1 [VE.Bus unit ID]Same sign as output current. Raw value times 10 gives W.INT16× 10WRead
HR24Output power L2 [VE.Bus unit ID]Raw value times 10 gives W.INT16× 10WRead
HR25Output power L3 [VE.Bus unit ID]Raw value times 10 gives W.INT16× 10WRead
HR26Battery voltage (VE.Bus) [VE.Bus unit ID]DC voltage measured by the inverter/charger.UINT16× 0.01VRead
HR27Battery current (VE.Bus) [VE.Bus unit ID]Positive when the Multi charges the DC side.INT16× 0.1ARead
HR28Phase count [VE.Bus unit ID]Number of AC phases in the VE.Bus system.UINT16Read
HR29Active AC input [VE.Bus unit ID]UINT16Read0 = AC Input 1; 1 = AC Input 2; 240 = Disconnected
HR30VE.Bus state of charge [VE.Bus unit ID]SoC as known to the VE.Bus system; listed as writable.UINT16× 0.1%Read/write
HR31VE.Bus state [VE.Bus unit ID]Operating state of the inverter/charger.UINT16Read0 = Off; 1 = Low Power; 2 = Fault; 3 = Bulk; 4 = Absorption; 5 = Float; 6 = Storage; 7 = Equalize; 8 = Passthru; 9 = Inverting; 10 = Power assist; 11 = Power supply; 244 = Sustain; 252 = External control
HR32VE.Bus error [VE.Bus unit ID]VE.Bus error number; 0 means no error.UINT16Read0 = No error; 1 = VE.Bus Error 1: Device is switched off because one of the other phases in the system has switched off; 2 = VE.Bus Error 2: New and old types MK2 are mixed in the system; 3 = VE.Bus Error 3: Not all- or more than- the expected devices were found in the system; 4 = VE.Bus Error 4: No other device whatsoever detected; 5 = VE.Bus Error 5: Overvoltage on AC-out; 6 = VE.Bus Error 6: Error in DDC Program; 7 = VE.Bus BMS connected- which requires an Assistant- but no assistant found; 10 = VE.Bus Error 10: System time synchronisation problem occurred; 14 = VE.Bus Error 14: Device cannot transmit data; 16 = VE.Bus Error 16: Dongle missing; 17 = VE.Bus Error 17: One of the devices assumed master status because the original master failed; 18 = VE.Bus Error 18: AC Overvoltage on the output of a slave has occurred while already switched off; 22 = VE.Bus Error 22: This device cannot function as slave; 24 = VE.Bus Error 24: Switch-over system protection initiated; 25 = VE.Bus Error 25: Firmware incompatibility. The firmware of one of the connected device is not sufficiently up to date to operate in conjunction with this device; 26 = VE.Bus Error 26: Internal error
HR33Switch position (mode) [VE.Bus unit ID]Remote on / off / charger-only / inverter-only command.UINT16Read/write1 = Charger Only; 2 = Inverter Only; 3 = On; 4 = Off
HR34High temperature alarm [VE.Bus unit ID]UINT16Read0 = Ok; 1 = Warning; 2 = Alarm
HR35Low battery alarm [VE.Bus unit ID]UINT16Read0 = Ok; 1 = Warning; 2 = Alarm
HR36Overload alarm [VE.Bus unit ID]UINT16Read0 = Ok; 1 = Warning; 2 = Alarm
HR37ESS power setpoint L1 [VE.Bus unit ID]ESS mode 3 AC-input power target, positive = import. Rewrite within 60 s.INT16WRead/write
HR38ESS disable charge [VE.Bus unit ID]ESS mode 3: 1 blocks charging, which also blocks feed-back.UINT16Read/write0 = Charge allowed; 1 = Charge disabled
HR39ESS disable feed-in [VE.Bus unit ID]ESS mode 3: 1 stops the inverter feeding the grid.UINT16Read/write0 = Feed in allowed; 1 = Feed in disabled
HR40ESS power setpoint L2 [VE.Bus unit ID]ESS mode 3, phase 2. Rewrite within 60 s.INT16WRead/write
HR41ESS power setpoint L3 [VE.Bus unit ID]ESS mode 3, phase 3. Rewrite within 60 s.INT16WRead/write
HR56Disable PV inverter [VE.Bus unit ID]Curtails AC-out PV inverters by frequency shift; inverter mode only.UINT16Read/write0 = PV enabled; 1 = PV disabled
HR61Battery temperature (VE.Bus) [VE.Bus unit ID]INT16× 0.1°CRead
HR63Phase rotation warning [VE.Bus unit ID]UINT16Read0 = Ok; 1 = Warning
HR64Grid lost alarm [VE.Bus unit ID]UINT16Read0 = Ok; 2 = Alarm
HR94Low cell voltage imminent [VE.Bus unit ID]BMS pre-alarm.UINT16Read0 = OK; 1 = Warning
HR95Charge state [VE.Bus unit ID]Charger stage of the inverter/charger.UINT16Read0 = Initialising; 1 = Bulk; 2 = Absorption; 3 = Float; 4 = Storage; 5 = Absorb repeat; 6 = Forced absorb; 7 = Equalise; 8 = Bulk stopped; 9 = Unknown
HR259Battery voltage [battery unit ID]UINT16× 0.01VRead
HR260Starter battery voltage [battery unit ID]Auxiliary input on a battery monitor used for a starter battery.UINT16× 0.01VRead
HR261Battery current [battery unit ID]Positive while charging, negative while discharging.INT16× 0.1ARead
HR262Battery temperature [battery unit ID]INT16× 0.1°CRead
HR263Mid-point voltage [battery unit ID]Battery bank mid-point voltage.UINT16× 0.01VRead
HR264Mid-point deviation [battery unit ID]UINT16× 0.01%Read
HR265Consumed Ah [battery unit ID]Always negative, matching the sign of discharge current.UINT16× -0.1AhRead
HR266State of charge [battery unit ID]UINT16× 0.1%Read
HR268Low voltage alarm [battery unit ID]UINT16Read0 = No alarm; 2 = Alarm
HR269High voltage alarm [battery unit ID]UINT16Read0 = No alarm; 2 = Alarm
HR272Low SoC alarm [battery unit ID]UINT16Read0 = No alarm; 2 = Alarm
HR273Low temperature alarm [battery unit ID]UINT16Read0 = No alarm; 2 = Alarm
HR274High temperature alarm [battery unit ID]UINT16Read0 = No alarm; 2 = Alarm
HR280Battery relay state [battery unit ID]Writable on some batteries only; not on CAN-bus BMS batteries.UINT16Read/write0 = Open; 1 = Closed
HR284Charge cycles [battery unit ID]Not available from CAN-bus BMS batteries.UINT16Read
HR303Time to go [battery unit ID]Raw value times 100 gives seconds; 0 while charging. Not on CAN-bus BMS.UINT16× 100sRead
HR304State of health [battery unit ID]Third-party CAN-bus batteries and Lynx; not every Victron product.UINT16× 0.1%Read
HR305Max charge voltage (CVL) [battery unit ID]Limit requested by a managed battery.UINT16× 0.1VRead
HR306Min discharge voltage [battery unit ID]Low-voltage limit reported by a managed battery.UINT16× 0.1VRead
HR307Max charge current (CCL) [battery unit ID]Limit requested by a managed battery.UINT16× 0.1ARead
HR308Max discharge current (DCL) [battery unit ID]Limit requested by a managed battery.UINT16× 0.1ARead
HR309Capacity [battery unit ID]Battery capacity.UINT16× 0.1AhRead
HR318Minimum cell temperature [battery unit ID]INT16× 0.1°CRead
HR319Maximum cell temperature [battery unit ID]INT16× 0.1°CRead
HR320High charge current alarm [battery unit ID]UINT16Read0 = No alarm; 2 = Alarm
HR321High discharge current alarm [battery unit ID]UINT16Read0 = No alarm; 2 = Alarm
HR322Cell imbalance alarm [battery unit ID]UINT16Read0 = No alarm; 2 = Alarm
HR323Internal failure alarm [battery unit ID]UINT16Read0 = No alarm; 2 = Alarm
HR326Low cell voltage alarm [battery unit ID]UINT16Read0 = No alarm; 1 = Almost discharged; 2 = Alarm
HR771Battery voltage (solar charger) [solar charger unit ID]UINT16× 0.01VRead
HR772Battery current (solar charger) [solar charger unit ID]Charge current into the battery.INT16× 0.1ARead
HR774Charger on/off [solar charger unit ID]Remote on/off; VE.Can MPPTs only.UINT16Read/write1 = On; 4 = Off
HR775Charge state [solar charger unit ID]UINT16Read0 = Off; 2 = Fault; 3 = Bulk; 4 = Absorption; 5 = Float; 6 = Storage; 7 = Equalize; 11 = Other (Hub-1); 245 = Wake-up; 252 = External control
HR776PV voltage [solar charger unit ID]Not available when several VE.Can chargers are combined.UINT16× 0.01VRead
HR777PV current [solar charger unit ID]Derived from PV power and PV voltage.INT16× 0.1ARead
HR784Yield today [solar charger unit ID]UINT16× 0.1kWhRead
HR785Max charge power today [solar charger unit ID]UINT16WRead
HR786Yield yesterday [solar charger unit ID]UINT16× 0.1kWhRead
HR788Error code [solar charger unit ID]Solar charger error number; 0 means no error.UINT16Read0 = No error; 1 = Battery temperature too high; 2 = Battery voltage too high; 3 = Battery temperature sensor miswired (+); 4 = Battery temperature sensor miswired (-); 5 = Battery temperature sensor disconnected; 6 = Battery voltage sense miswired (+); 7 = Battery voltage sense miswired (-); 8 = Battery voltage sense disconnected; 9 = Battery voltage wire losses too high; 17 = Charger temperature too high; 18 = Charger over-current; 19 = Charger current polarity reversed; 20 = Bulk time limit reached; 22 = Charger temperature sensor miswired; 23 = Charger temperature sensor disconnected; 34 = Input current too high
HR789PV power [solar charger unit ID]Older 16-bit PV power with 0.1 W resolution.UINT16× 0.1WRead
HR790User yield [solar charger unit ID]Energy since the last user reset.UINT16× 0.1kWhRead
HR791MPP operation mode [solar charger unit ID]UINT16Read0 = Off; 1 = Voltage/current limited; 2 = MPPT active; 255 = Not available
HR806GX relay 1 state [unit ID 100]Open/close GX relay 1 when its function is set to manual.UINT16Read/write0 = Open; 1 = Closed
HR807GX relay 2 state [unit ID 100]Second GX relay, on models that have one.UINT16Read/write0 = Open; 1 = Closed
HR808AC-coupled PV on output L1 [unit ID 100]Total of AC-coupled PV inverters on the AC output, phase 1.UINT16WRead
HR809AC-coupled PV on output L2 [unit ID 100]UINT16WRead
HR810AC-coupled PV on output L3 [unit ID 100]UINT16WRead
HR811AC-coupled PV on input L1 [unit ID 100]Total of AC-coupled PV inverters on the grid side, phase 1.UINT16WRead
HR812AC-coupled PV on input L2 [unit ID 100]UINT16WRead
HR813AC-coupled PV on input L3 [unit ID 100]UINT16WRead
HR817AC consumption L1 [unit ID 100]Power delivered to AC loads, phase 1.UINT16WRead
HR818AC consumption L2 [unit ID 100]UINT16WRead
HR819AC consumption L3 [unit ID 100]UINT16WRead
HR820Grid power L1 [unit ID 100]Power taken from the grid, phase 1; signed.INT16WRead
HR821Grid power L2 [unit ID 100]INT16WRead
HR822Grid power L3 [unit ID 100]INT16WRead
HR823Genset power L1 [unit ID 100]Power supplied by a generator, phase 1.INT16WRead
HR824Genset power L2 [unit ID 100]INT16WRead
HR825Genset power L3 [unit ID 100]INT16WRead
HR826Active AC input source [unit ID 100]What the active AC input is configured as; 240 = nothing connected.INT16Read0 = Unknown; 1 = Grid; 2 = Generator; 3 = Shore power; 240 = Not connected
HR840Battery voltage (system) [unit ID 100]Best available battery voltage: BMV first, then Multi, MPPT, charger.UINT16× 0.1VRead
HR841Battery current (system) [unit ID 100]Positive while charging, negative while discharging.INT16× 0.1ARead
HR842Battery power (system) [unit ID 100]Positive while charging, negative while discharging.INT16WRead
HR843Battery state of charge (system) [unit ID 100]Best available SoC across the system's battery measurements.UINT16%Read
HR844Battery state (system) [unit ID 100]UINT16Read0 = idle; 1 = charging; 2 = discharging
HR845Battery consumed Ah (system) [unit ID 100]Scale is negative, so the result is a negative Ah figure.UINT16× -0.1AhRead
HR846Battery time to go (system) [unit ID 100]Raw value times 100 gives seconds; 0 while charging.UINT16× 100sRead
HR850DC-coupled PV power [unit ID 100]Sum of output power of all solar chargers.UINT16WRead
HR851DC-coupled PV current [unit ID 100]Sum of output current of all solar chargers.INT16× 0.1ARead
HR855Charger power [unit ID 100]DC power from AC chargers on the system.UINT16WRead
HR860DC system power [unit ID 100]Power the battery supplies to DC loads.INT16WRead
HR865VE.Bus DC current (system) [unit ID 100]Positive: Multi charging the DC side; negative: Multi drawing from it.INT16× 0.1ARead
HR866VE.Bus DC power (system) [unit ID 100]Positive: Multi charging the DC side; negative: Multi drawing from it.INT16WRead
HR1290Minimum cell voltage [battery unit ID]Lowest single-cell voltage in the battery system.UINT16× 0.01VRead
HR1291Maximum cell voltage [battery unit ID]Highest single-cell voltage in the battery system.UINT16× 0.01VRead
HR2700ESS grid power setpoint [unit ID 100]ESS mode 2 grid target, positive = import. Prefer 2716 on Venus 3.50+.INT16WRead/write
HR2703ESS grid power setpoint (x100 W) [unit ID 100]Same setpoint as 2700; raw value times 100 W, for over 32 kW.INT16× 100WRead/write
HR2705DVCC max system charge current [unit ID 100]Combined battery charge current limit; -1 = no limit.INT16ARead/write
HR2706Max system grid feed-in [unit ID 100]Raw value times 100 gives W; raw -1 = no limit.INT16× 100WRead/write
HR2707Feed excess DC-coupled PV [unit ID 100]1 = feed surplus DC-coupled PV into the grid.INT16Read/write0 = Don’t feed excess DC-tied PV into grid; 1 = Feed excess DC-tied PV into the grid
HR2708Block excess AC-coupled PV feed-in [unit ID 100]Inverted logic: 1 = do not feed AC-coupled PV surplus.INT16Read/write0 = Feed excess AC-tied PV into grid; 1 = Don’t feed excess AC-tied PV into the grid
HR2709Grid feed-in limiting active [unit ID 100]INT16Read0 = Feed-in limiting is inactive; 1 = Feed-in limiting is active
HR2901ESS minimum SoC [unit ID 100]Minimum SoC kept unless the grid fails; same as the GUI setting.UINT16× 0.1%Read/write
HR2902ESS mode [unit ID 100]3 hands control to an external system (ESS mode 3).UINT16Read/write1 = ESS with Phase Compensation; 2 = ESS without phase compensation; 3 = Disabled/External Control
HR2903ESS BatteryLife SoC limit [unit ID 100]Dynamic BatteryLife limit; the active limit is the lower of this and 2901.UINT16× 0.1%Read

Notes on this map

Check it against the live device. A register map tells you what the controller can expose; the unit in front of you may differ by firmware or options. Read a few registers and compare them with the unit’s own display; for a 32-bit value the float and byte-order decoder shows all four word orders at once, so a wrong word order or scale is obvious. New to this? Read what a register map is and why addresses are off by one.

Questions about the Victron Energy GX device Modbus-TCP (Cerbo GX, Venus GX, Color Control GX)

What Modbus registers does the Victron Energy GX device Modbus-TCP (Cerbo GX, Venus GX, Color Control GX) have?

This map lists 128 registers: 128 holding registers. 21 of them can be written. Registers vary with firmware, options and configuration, so confirm against the device.

Are the Victron Energy GX device Modbus-TCP (Cerbo GX, Venus GX, Color Control GX) Modbus addresses 0-based or 1-based?

The manufacturer's document numbers registers 0-based (the number printed is the address on the wire). Every address on this page is the 0-based wire address you put in the request; the documented number is shown under it where it differs. The 'Address' column of Victron's register list goes into the request as-is. Victron's GX Modbus-TCP manual reads VE.Bus input voltage (register 3) by setting the first request register to 3, so the listed number is the wire address. Clients that add or subtract one (Modicon 4xxxx entry) will be off by one register. Function codes 3 and 4 return identical data; all registers are listed here as holding registers, and writes use 6 or 16.

What are the minimum Modbus registers to integrate the Victron Energy GX device Modbus-TCP (Cerbo GX, Venus GX, Color Control GX)?

Start with HR 843 Battery state of charge (system) [unit ID 100] (System battery state of charge (unit ID 100)); HR 842 Battery power (system) [unit ID 100] (System battery power, + charging / - discharging (unit ID 100)); HR 820 Grid power L1 [unit ID 100] (Grid power L1 (unit ID 100)); HR 817 AC consumption L1 [unit ID 100] (AC consumption L1 (unit ID 100)); HR 850 DC-coupled PV power [unit ID 100] (Total DC-coupled PV power (unit ID 100)); HR 31 VE.Bus state [VE.Bus unit ID] (VE.Bus state (VE.Bus unit ID)); HR 32 VE.Bus error [VE.Bus unit ID] (VE.Bus error (VE.Bus unit ID)); HR 33 Switch position (mode) [VE.Bus unit ID] (Switch position: remote on/off/charger-only (VE.Bus unit ID)); HR 22 Active input current limit [VE.Bus unit ID] (AC input current limit (VE.Bus unit ID)).

How do I enable Modbus control of the Victron Energy GX device Modbus-TCP (Cerbo GX, Venus GX, Color Control GX)?

Modbus-TCP is off by default. On the GX, enable it under Settings > Services > Modbus TCP (newer Venus OS: Settings > Integrations > Modbus TCP server). The same menu lists 'Available services' with each device's unit ID and shows the last Modbus error. ESS mode 3 control needs ESS mode set to external control (register 2902 = 3, or the GUI).

What happens when the Victron Energy GX device Modbus-TCP (Cerbo GX, Venus GX, Color Control GX) loses Modbus communication?

ESS mode 3: the VE.Bus power setpoints (37, 40, 41) must be rewritten at least every 60 seconds or the Multi drops to passthru. No general Modbus timeout is documented for other writes.

Where is the official Victron Energy GX device Modbus-TCP (Cerbo GX, Venus GX, Color Control GX) Modbus documentation?

The source is Modbus-TCP register list (CCGX-Modbus-TCP-register-list-3.81.xlsx) (Register list 3.81, document revision Rev 54), published free by Victron Energy at https://www.victronenergy.com/upload/documents/CCGX-Modbus-TCP-register-list-3.81.xlsx.

Source: Modbus-TCP register list (CCGX-Modbus-TCP-register-list-3.81.xlsx) · Register list 3.81, document revision Rev 54. Register numbers, types, scaling and units are reproduced as published; descriptions are our own.