Victron Energy GX system Modbus register map
System overview of a Victron GX device (Cerbo GX, Venus GX, Color Control GX, Ekrano GX)
- Official
- 72 registers
- Modbus TCP
- Revision 2 · 2026-11-10
- Identity: serial number
Official: Written from the manufacturer's documentation, but not tested on a device yet. Check the map against the manufacturer's documentation before you write to a live device. Tested it? Report a test.
Communication
- Protocol
- Modbus TCP
- Unit ID
- 100
- TCP port
- 502
- Byte / word order
- ABCD · bytes big-endian, words high first
- Addresses
- 0-based
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 72 holding registers
- Revision
- 2 · 2026-11-10
- Firmware
- Venus OS; register list 3.81
- Added
- ()
- File
- maps/victron-energy/gx-system.mbmap.json · 14 KB · history
- SHA-256
- b7a609f4f0c1d8305d5e4f497b5dabee620f301996bd01510559263f144727dd
- Manufacturer
- victronenergy.com
Device identity
What a tool can read to check that this map fits the connected device (SPEC.md section 4.7). Registers with a role are read like any other register.
| Role | Register | Address | Type | Values |
|---|---|---|---|---|
| Serial number | Serial (System) | holding 800 | string[6] |
Sources and notes
- CCGX Modbus TCP register list · version 3.81 Field list, service com.victronenergy.system
Source: Victron Energy, CCGX Modbus TCP register list 3.81
- Registers of the com.victronenergy.system service of the GX Modbus TCP server (Settings > Integrations > Modbus TCP server).
- The unit ID of this service is 100.
- All registers are holding registers (FC03; FC06/FC16 for the writable ones).
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 800 | string[6] | R | D-Bus /Serial; System value -> MAC address of CCGX (represented as string) | |||
| HR | 806 | uint16 | RW | D-Bus /Relay/0/State | |||
| HR | 807 | uint16 | RW | D-Bus /Relay/1/State; Relay 1 is available on Venus GX only | |||
| HR | 808 | uint16 | R | W | D-Bus /Ac/PvOnOutput/L1/Power; Summation of all AC-Coupled PV Inverters on the output | ||
| HR | 809 | uint16 | R | W | D-Bus /Ac/PvOnOutput/L2/Power | ||
| HR | 810 | uint16 | R | W | D-Bus /Ac/PvOnOutput/L3/Power | ||
| HR | 811 | uint16 | R | W | D-Bus /Ac/PvOnGrid/L1/Power; Summation of all AC-Coupled PV Inverters on the input | ||
| HR | 812 | uint16 | R | W | D-Bus /Ac/PvOnGrid/L2/Power | ||
| HR | 813 | uint16 | R | W | D-Bus /Ac/PvOnGrid/L3/Power | ||
| HR | 814 | uint16 | R | W | D-Bus /Ac/PvOnGenset/L1/Power; Summation of all AC-Coupled PV Inverters on a generator. Bit theoretic; this will never be used | ||
| HR | 815 | uint16 | R | W | D-Bus /Ac/PvOnGenset/L2/Power | ||
| HR | 816 | uint16 | R | W | D-Bus /Ac/PvOnGenset/L3/Power | ||
| HR | 817 | uint16 | R | W | D-Bus /Ac/Consumption/L1/Power; Power supplied by system to loads | ||
| HR | 818 | uint16 | R | W | D-Bus /Ac/Consumption/L2/Power | ||
| HR | 819 | uint16 | R | W | D-Bus /Ac/Consumption/L3/Power | ||
| HR | 820 | int16 | R | W | D-Bus /Ac/Grid/L1/Power; Power supplied by Grid to system | ||
| HR | 821 | int16 | R | W | D-Bus /Ac/Grid/L2/Power | ||
| HR | 822 | int16 | R | W | D-Bus /Ac/Grid/L3/Power | ||
| HR | 823 | int16 | R | W | D-Bus /Ac/Genset/L1/Power; Power supplied by Genset tot system | ||
| HR | 824 | int16 | R | W | D-Bus /Ac/Genset/L2/Power | ||
| HR | 825 | int16 | R | W | D-Bus /Ac/Genset/L3/Power | ||
| HR | 826 | int16 | R | D-Bus /Ac/ActiveIn/Source; 0 indicates that there is an active input, but it is not configured under Settings → System setup | |||
| HR | 830 | uint64 ABCD | R | s | |||
| HR | 834 | uint16 | R | Render in hexadecimal to get the text version | |||
| HR | 835 | uint16 | R | This is zero for official releases | |||
| HR | 840 | uint16 | R | V | ×0.1 | D-Bus /Dc/Battery/Voltage; Battery Voltage determined from different measurements. In order of preference: BMV-voltage (V), Multi-DC-Voltage (CV), MPPT-DC-Voltage (ScV), Charger voltage | |
| HR | 841 | int16 | R | A | ×0.1 | D-Bus /Dc/Battery/Current; Postive: battery begin charged. Negative: battery being discharged | |
| HR | 842 | int16 | R | W | D-Bus /Dc/Battery/Power; Postive: battery begin charged. Negative: battery being discharged | ||
| HR | 843 | uint16 | R | % | D-Bus /Dc/Battery/Soc; Best battery state of charge, determined from different measurements | ||
| HR | 844 | uint16 | R | D-Bus /Dc/Battery/State | |||
| HR | 845 | uint16 | R | Ah | ×-0.1 | D-Bus /Dc/Battery/ConsumedAmphours | |
| HR | 846 | uint16 | R | s | ×100 | D-Bus /Dc/Battery/TimeToGo; Special value: 0 = charging | |
| HR | 850 | uint16 | R | W | D-Bus /Dc/Pv/Power; Summation of output power of all connected Solar Chargers | ||
| HR | 851 | int16 | R | A | ×0.1 | D-Bus /Dc/Pv/Current; Summation of output current of all connected Solar Chargers | |
| HR | 855 | uint16 | R | W | D-Bus /Dc/Charger/Power | ||
| HR | 860 | int16 | R | W | D-Bus /Dc/System/Power; Power supplied by Battery to system | ||
| HR | 865 | int16 | R | A | ×0.1 | D-Bus /Dc/Vebus/Current; Current flowing from the Multi to the dc system. Negative: the other way around | |
| HR | 866 | int16 | R | W | D-Bus /Dc/Vebus/Power; System value etc. AND: Positive: power flowing from the Multi to the dc system. Negative: the other way around | ||
| HR | 868 | int32 ABCD | R | ×0.1 | D-Bus /Dc/InverterCharger/Current | ||
| HR | 870 | int32 ABCD | R | D-Bus /Dc/InverterCharger/Power | |||
| HR | 872 | int32 ABCD | R | W | D-Bus /Ac/ConsumptionOnInput/L1/Power; This is the power shown on the overview in the Loads box | ||
| HR | 874 | int32 ABCD | R | W | D-Bus /Ac/ConsumptionOnInput/L2/Power | ||
| HR | 876 | int32 ABCD | R | W | D-Bus /Ac/ConsumptionOnInput/L3/Power | ||
| HR | 878 | int32 ABCD | R | W | D-Bus /Ac/ConsumptionOnOutput/L1/Power | ||
| HR | 880 | int32 ABCD | R | W | D-Bus /Ac/ConsumptionOnOutput/L2/Power | ||
| HR | 882 | int32 ABCD | R | W | D-Bus /Ac/ConsumptionOnOutput/L3/Power | ||
| HR | 884 | uint32 ABCD | R | W | D-Bus /Ac/PvOnOutput/L1/Power; Summation of all AC-Coupled PV Inverters on the output | ||
| HR | 886 | uint32 ABCD | R | W | D-Bus /Ac/PvOnOutput/L2/Power | ||
| HR | 888 | uint32 ABCD | R | W | D-Bus /Ac/PvOnOutput/L3/Power | ||
| HR | 890 | uint32 ABCD | R | W | D-Bus /Ac/PvOnGrid/L1/Power; Summation of all AC-Coupled PV Inverters on the input | ||
| HR | 892 | uint32 ABCD | R | W | D-Bus /Ac/PvOnGrid/L2/Power | ||
| HR | 894 | uint32 ABCD | R | W | D-Bus /Ac/PvOnGrid/L3/Power | ||
| HR | 896 | uint32 ABCD | R | W | D-Bus /Ac/PvOnGenset/L1/Power; Summation of all AC-Coupled PV Inverters on a generator. Bit theoretic; this will never be used | ||
| HR | 898 | uint32 ABCD | R | W | D-Bus /Ac/PvOnGenset/L2/Power | ||
| HR | 900 | uint32 ABCD | R | W | D-Bus /Ac/PvOnGenset/L3/Power | ||
| HR | 902 | uint32 ABCD | R | W | D-Bus /Ac/Consumption/L1/Power; Power supplied by system to loads | ||
| HR | 904 | uint32 ABCD | R | W | D-Bus /Ac/Consumption/L2/Power | ||
| HR | 906 | uint32 ABCD | R | W | D-Bus /Ac/Consumption/L3/Power | ||
| HR | 908 | int32 ABCD | R | W | D-Bus /Ac/Grid/L1/Power; Power supplied by Grid to system | ||
| HR | 910 | int32 ABCD | R | W | D-Bus /Ac/Grid/L2/Power | ||
| HR | 912 | int32 ABCD | R | W | D-Bus /Ac/Grid/L3/Power | ||
| HR | 914 | int32 ABCD | R | W | D-Bus /Ac/Genset/L1/Power; Power supplied by Genset tot system | ||
| HR | 916 | int32 ABCD | R | W | D-Bus /Ac/Genset/L2/Power | ||
| HR | 918 | int32 ABCD | R | W | D-Bus /Ac/Genset/L3/Power | ||
| HR | 5400 | uint16 | R | D-Bus /DynamicEss/Active | |||
| HR | 5401 | uint16 | R | D-Bus /DynamicEss/AllowGridFeedIn | |||
| HR | 5402 | uint16 | R | D-Bus /DynamicEss/Available | |||
| HR | 5403 | uint16 | R | ×10 | D-Bus /DynamicEss/ChargeRate | ||
| HR | 5404 | uint16 | R | D-Bus /DynamicEss/ErrorCode | |||
| HR | 5405 | uint16 | R | D-Bus /DynamicEss/Restrictions | |||
| HR | 5406 | uint16 | R | D-Bus /DynamicEss/Strategy | |||
| HR | 5407 | uint16 | R | % | D-Bus /DynamicEss/TargetSoc |
No registers match
Try part of the name, an address (decimal or 0x hex) or clear the filters.
Help improve this map
- I tested it on a deviceReport whether it worked, even if you did not write the map.
- Suggest a correctionEdit the file on GitHub; it opens a pull request.
- Report a problemA wrong address, type, scale or byte order.
- Read the formatWhat each key of the file means (SPEC.md).