Victron Energy GX VE.Bus inverter/charger Modbus register map
MultiPlus, Quattro and other VE.Bus inverter/chargers, read through a GX device
- Official
- 144 registers
- Modbus TCP
- Revision 2 · 2026-10-14
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
- 227
- 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
- 144 holding registers
- Revision
- 2 · 2026-10-14
- Firmware
- Venus OS; register list 3.81
- Added
- ()
- File
- maps/victron-energy/gx-vebus.mbmap.json · 32 KB · history
- SHA-256
- 81fc2a44955b67e5e0908de3cce91814029c7934d0add1ded420f849edd3edd4
- Manufacturer
- victronenergy.com
Sources and notes
- CCGX Modbus TCP register list · version 3.81 Field list, service com.victronenergy.vebus
Source: Victron Energy, CCGX Modbus TCP register list 3.81
- Registers of the com.victronenergy.vebus service of the GX Modbus TCP server (Settings > Integrations > Modbus TCP server).
- Each device on the GX has its own unit ID. Since Venus OS 2.60 they are assigned dynamically: see the list of available services on the GX device.
- All registers are holding registers (FC03; FC06/FC16 for the writable ones).
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 3 | uint16 | R | V | ×0.1 | D-Bus /Ac/ActiveIn/L1/V | |
| HR | 4 | uint16 | R | V | ×0.1 | D-Bus /Ac/ActiveIn/L2/V | |
| HR | 5 | uint16 | R | V | ×0.1 | D-Bus /Ac/ActiveIn/L3/V | |
| HR | 6 | int16 | R | A | ×0.1 | D-Bus /Ac/ActiveIn/L1/I; Positive: current flowing from mains to Multi. Negative: current flowing from Multi to mains | |
| HR | 7 | int16 | R | A | ×0.1 | D-Bus /Ac/ActiveIn/L2/I; Positive: current flowing from mains to Multi. Negative: current flowing from Multi to mains | |
| HR | 8 | int16 | R | A | ×0.1 | D-Bus /Ac/ActiveIn/L3/I; Positive: current flowing from mains to Multi. Negative: current flowing from Multi to mains | |
| HR | 9 | int16 | R | Hz | ×0.01 | D-Bus /Ac/ActiveIn/L1/F | |
| HR | 10 | int16 | R | Hz | ×0.01 | D-Bus /Ac/ActiveIn/L2/F | |
| HR | 11 | int16 | R | Hz | ×0.01 | D-Bus /Ac/ActiveIn/L3/F | |
| HR | 12 | int16 | R | W | ×10 | D-Bus /Ac/ActiveIn/L1/P; Sign meaning equal to Input current | |
| HR | 13 | int16 | R | W | ×10 | D-Bus /Ac/ActiveIn/L2/P; Sign meaning equal to Input current | |
| HR | 14 | int16 | R | W | ×10 | D-Bus /Ac/ActiveIn/L3/P; Sign meaning eaqual to Input current | |
| HR | 15 | uint16 | R | V | ×0.1 | D-Bus /Ac/Out/L1/V | |
| HR | 16 | uint16 | R | V | ×0.1 | D-Bus /Ac/Out/L2/V | |
| HR | 17 | uint16 | R | V | ×0.1 | D-Bus /Ac/Out/L3/V | |
| HR | 18 | int16 | R | A | ×0.1 | D-Bus /Ac/Out/L1/I; Postive: current flowing from Multi to the load. Negative: current flowing from load to the Multi | |
| HR | 19 | int16 | R | A | ×0.1 | D-Bus /Ac/Out/L2/I; Postive: current flowing from Multi to the load. Negative: current flowing from load to the Multi | |
| HR | 20 | int16 | R | A | ×0.1 | D-Bus /Ac/Out/L3/I; Postive: current flowing from Multi to the load. Negative: current flowing from load to the Multi | |
| HR | 21 | int16 | R | Hz | ×0.01 | D-Bus /Ac/Out/L1/F | |
| HR | 22 | int16 | RW | A | ×0.1 | D-Bus /Ac/ActiveIn/CurrentLimit; See Venus-OS manual for limitations, for example when VE.Bus BMS or DMC is installed | |
| HR | 23 | int16 | R | W | ×10 | D-Bus /Ac/Out/L1/P; Sign meaning equal to Output current | |
| HR | 24 | int16 | R | W | ×10 | D-Bus /Ac/Out/L2/P; Sign meaning equal to Output current | |
| HR | 25 | int16 | R | W | ×10 | D-Bus /Ac/Out/L3/P; Sign meaning equal to Output current | |
| HR | 26 | uint16 | R | V | ×0.01 | D-Bus /Dc/0/Voltage | |
| HR | 27 | int16 | R | A | ×0.1 | D-Bus /Dc/0/Current; Positive: current flowing from the Multi to the dc system. Negative: the other way around | |
| HR | 28 | uint16 | R | D-Bus /Ac/NumberOfPhases | |||
| HR | 29 | uint16 | R | D-Bus /Ac/ActiveIn/ActiveInput | |||
| HR | 30 | uint16 | RW | % | ×0.1 | D-Bus /Soc | |
| HR | 31 | uint16 | R | D-Bus /State | |||
| HR | 32 | uint16 | R | D-Bus /VebusError | |||
| HR | 33 | uint16 | RW | D-Bus /Mode; See Venus-OS manual for limitations, for example when VE.Bus BMS or DMC is installed | |||
| HR | 34 | uint16 | R | D-Bus /Alarms/HighTemperature | |||
| HR | 35 | uint16 | R | D-Bus /Alarms/LowBattery | |||
| HR | 36 | uint16 | R | D-Bus /Alarms/Overload | |||
| HR | 37 | int16 | RW | W | D-Bus /Hub4/L1/AcPowerSetpoint; ESS Mode 3 - Instructs the multi to charge/discharge with giving power. Negative = discharge. Used by the control loop in grid-parallel systems | ||
| HR | 38 | uint16 | RW | D-Bus /Hub4/DisableCharge; ESS Mode 3 - Enables/Disables charge (0=enabled, 1=disabled). Note that power setpoint will yield to this setting | |||
| HR | 39 | uint16 | RW | D-Bus /Hub4/DisableFeedIn; ESS Mode 3 - Enables/Disables feedback (0=enabled, 1=disabled). Note that power setpoint will yield to this setting | |||
| HR | 40 | int16 | RW | W | D-Bus /Hub4/L2/AcPowerSetpoint; ESS Mode 3 - Instructs the multi to charge/discharge with giving power. Negative = discharge. Used by the control loop in grid-parallel systems | ||
| HR | 41 | int16 | RW | W | D-Bus /Hub4/L3/AcPowerSetpoint; ESS Mode 3 - Instructs the multi to charge/discharge with giving power. Negative = discharge. Used by the control loop in grid-parallel systems | ||
| HR | 42 | uint16 | R | D-Bus /Alarms/TemperatureSensor | |||
| HR | 43 | uint16 | R | D-Bus /Alarms/VoltageSensor | |||
| HR | 44 | uint16 | R | D-Bus /Alarms/L1/HighTemperature | |||
| HR | 45 | uint16 | R | D-Bus /Alarms/L1/LowBattery | |||
| HR | 46 | uint16 | R | D-Bus /Alarms/L1/Overload | |||
| HR | 47 | uint16 | R | D-Bus /Alarms/L1/Ripple | |||
| HR | 48 | uint16 | R | D-Bus /Alarms/L2/HighTemperature | |||
| HR | 49 | uint16 | R | D-Bus /Alarms/L2/LowBattery | |||
| HR | 50 | uint16 | R | D-Bus /Alarms/L2/Overload | |||
| HR | 51 | uint16 | R | D-Bus /Alarms/L2/Ripple | |||
| HR | 52 | uint16 | R | D-Bus /Alarms/L3/HighTemperature | |||
| HR | 53 | uint16 | R | D-Bus /Alarms/L3/LowBattery | |||
| HR | 54 | uint16 | R | D-Bus /Alarms/L3/Overload | |||
| HR | 55 | uint16 | R | D-Bus /Alarms/L3/Ripple | |||
| HR | 56 | uint16 | RW | D-Bus /PvInverter/Disable; Disable PV inverter on AC out (using frequency shifting). Only works when vebus device is in inverter mode. Needs ESS or PV inverter assistant | |||
| HR | 57 | uint16 | R | D-Bus /Bms/AllowToCharge; VE.Bus BMS allows the battery to be charged | |||
| HR | 58 | uint16 | R | D-Bus /Bms/AllowToDischarge; VE.Bus BMS allows the battery to be discharged | |||
| HR | 59 | uint16 | R | D-Bus /Bms/BmsExpected; Presence of VE.Bus BMS is expected based on vebus settings (presence of ESS or BMS assistant) | |||
| HR | 60 | uint16 | R | D-Bus /Bms/Error | |||
| HR | 61 | int16 | R | °C | ×0.1 | D-Bus /Dc/0/Temperature | |
| HR | 62 | uint16 | RW | D-Bus /SystemReset; Any write action will cause a reset | |||
| HR | 63 | uint16 | R | D-Bus /Alarms/PhaseRotation | |||
| HR | 64 | uint16 | R | D-Bus /Alarms/GridLost | |||
| HR | 65 | uint16 | RW | D-Bus /Hub4/DoNotFeedInOvervoltage | |||
| HR | 66 | uint16 | RW | W | ×100 | D-Bus /Hub4/L1/MaxFeedInPower | |
| HR | 67 | uint16 | RW | W | ×100 | D-Bus /Hub4/L2/MaxFeedInPower | |
| HR | 68 | uint16 | RW | W | ×100 | D-Bus /Hub4/L3/MaxFeedInPower | |
| HR | 69 | uint16 | R | D-Bus /Ac/State/IgnoreAcIn1 | |||
| HR | 70 | uint16 | R | D-Bus /Ac/State/IgnoreAcIn2 | |||
| HR | 71 | uint16 | RW | D-Bus /Hub4/TargetPowerIsMaxFeedIn; When set to 1, the Multi behaves as if DoNotFeedInOvervoltage is disabled and AcPowerSetpoint is the maximum allowed feed-in | |||
| HR | 72 | uint16 | RW | D-Bus /Hub4/FixSolarOffsetTo100mV; When feeding overvoltage into the grid, the solar chargers are set to a higher voltage. This flag determines the size of the offset (per 12V increment) | |||
| HR | 73 | uint16 | R | D-Bus /Hub4/Sustain | |||
| HR | 74 | uint32 ABCD | R | kWh | ×0.01 | D-Bus /Energy/AcIn1ToAcOut; PLEASE NOTE: | |
| HR | 76 | uint32 ABCD | R | kWh | ×0.01 | D-Bus /Energy/AcIn1ToInverter; Energy counters from the Multi(s) are volatile | |
| HR | 78 | uint32 ABCD | R | kWh | ×0.01 | D-Bus /Energy/AcIn2ToAcOut; These energy counters reset to zero when the Multi is switched off | |
| HR | 80 | uint32 ABCD | R | kWh | ×0.01 | D-Bus /Energy/AcIn2ToInverter; These energy counters ALSO reset to zero when the GX-device reboots | |
| HR | 82 | uint32 ABCD | R | kWh | ×0.01 | D-Bus /Energy/AcOutToAcIn1 | |
| HR | 84 | uint32 ABCD | R | kWh | ×0.01 | D-Bus /Energy/AcOutToAcIn2 | |
| HR | 86 | uint32 ABCD | R | kWh | ×0.01 | D-Bus /Energy/InverterToAcIn1 | |
| HR | 88 | uint32 ABCD | R | kWh | ×0.01 | D-Bus /Energy/InverterToAcIn2 | |
| HR | 90 | uint32 ABCD | R | kWh | ×0.01 | D-Bus /Energy/InverterToAcOut | |
| HR | 92 | uint32 ABCD | R | kWh | ×0.01 | D-Bus /Energy/OutToInverter | |
| HR | 94 | uint16 | R | D-Bus /Alarms/BmsPreAlarm | |||
| HR | 95 | uint16 | R | D-Bus /VebusChargeState | |||
| HR | 96 | int32 ABCD | RW | W | D-Bus /Hub4/L1/AcPowerSetpoint; 32-bit compliment to 37, 40 and 41 | ||
| HR | 98 | int32 ABCD | RW | W | D-Bus /Hub4/L2/AcPowerSetpoint | ||
| HR | 100 | int32 ABCD | RW | W | D-Bus /Hub4/L3/AcPowerSetpoint | ||
| HR | 102 | uint16 | RW | D-Bus /Dc/0/PreferRenewableEnergy; Must be enabled in VE.Configure. This causes the system to charge from the grid at a lower sustain voltage. See manual | |||
| HR | 103 | uint16 | RW | D-Bus /Ac/Control/RemoteGeneratorSelected; Informs Multi that a generator is active on AC-in | |||
| HR | 104 | uint16 | R | D-Bus /Ac/State/RemoteGeneratorSelected | |||
| HR | 105 | uint16 | RW | D-Bus /RedetectSystem | |||
| HR | 106 | uint16 | RW | ×0.01 | D-Bus /Settings/AssistCurrentBoostFactor; These 4 settings were first introduced I Venus 3.30, but immediately redefined as they did not work properly | ||
| HR | 107 | uint16 | RW | V | ×0.01 | D-Bus /Settings/InverterOutputVoltage | |
| HR | 108 | uint16 | RW | D-Bus /Settings/PowerAssistEnabled | |||
| HR | 109 | uint16 | RW | D-Bus /Settings/UpsFunction | |||
| HR | 110 | uint16 | R | D-Bus /Devices/0/ExtendStatus/RelayTestOk | |||
| HR | 111 | uint16 | R | D-Bus /Devices/1/ExtendStatus/RelayTestOk | |||
| HR | 112 | uint16 | R | D-Bus /Devices/2/ExtendStatus/RelayTestOk | |||
| HR | 113 | uint16 | R | D-Bus /Devices/3/ExtendStatus/RelayTestOk | |||
| HR | 114 | uint16 | R | D-Bus /Devices/4/ExtendStatus/RelayTestOk | |||
| HR | 115 | uint16 | R | D-Bus /Devices/5/ExtendStatus/RelayTestOk |
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).