Victron Energy GX battery Modbus register map
Battery monitors (BMV, SmartShunt, Lynx) and managed batteries, read through a GX device
- Official
- 106 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
- 225
- 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
- 106 holding registers
- Revision
- 2 · 2026-10-14
- Firmware
- Venus OS; register list 3.81
- Added
- ()
- File
- maps/victron-energy/gx-battery.mbmap.json · 26 KB · history
- SHA-256
- afe718e48cd1b6e224e49fd5697ea1199aafd43f4b33540fa8a0378c2a4b6971
- Manufacturer
- victronenergy.com
Sources and notes
- CCGX Modbus TCP register list · version 3.81 Field list, service com.victronenergy.battery
Source: Victron Energy, CCGX Modbus TCP register list 3.81
- Registers of the com.victronenergy.battery 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 | 256 | int32 ABCD | R | W | D-Bus /Dc/0/Power | ||
| HR | 258 | int16 | R | W | D-Bus /Dc/0/Power; Older 16-bit variant of 256 | ||
| HR | 259 | uint16 | R | V | ×0.01 | D-Bus /Dc/0/Voltage | |
| HR | 260 | uint16 | R | V | ×0.01 | D-Bus /Dc/1/Voltage | |
| HR | 261 | int16 | R | A | ×0.1 | D-Bus /Dc/0/Current; Postive: battery begin charged. Negative: battery being discharged | |
| HR | 262 | int16 | R | °C | ×0.1 | D-Bus /Dc/0/Temperature; In degrees Celsius | |
| HR | 263 | uint16 | R | V | ×0.01 | D-Bus /Dc/0/MidVoltage | |
| HR | 264 | uint16 | R | % | ×0.01 | D-Bus /Dc/0/MidVoltageDeviation | |
| HR | 265 | uint16 | R | Ah | ×-0.1 | D-Bus /ConsumedAmphours; Always negative (to have the same sign as the current) | |
| HR | 266 | uint16 | R | % | ×0.1 | D-Bus /Soc | |
| HR | 267 | uint16 | R | D-Bus /Alarms/Alarm; 2015-01-19: Deprecated for CCGX. Value is always 0 | |||
| HR | 268 | uint16 | R | D-Bus /Alarms/LowVoltage | |||
| HR | 269 | uint16 | R | D-Bus /Alarms/HighVoltage | |||
| HR | 270 | uint16 | R | D-Bus /Alarms/LowStarterVoltage | |||
| HR | 271 | uint16 | R | D-Bus /Alarms/HighStarterVoltage | |||
| HR | 272 | uint16 | R | D-Bus /Alarms/LowSoc | |||
| HR | 273 | uint16 | R | D-Bus /Alarms/LowTemperature | |||
| HR | 274 | uint16 | R | D-Bus /Alarms/HighTemperature | |||
| HR | 275 | uint16 | R | D-Bus /Alarms/MidVoltage | |||
| HR | 276 | uint16 | R | D-Bus /Alarms/LowFusedVoltage; 2014-12-13: Deprecated because over-engineered. Value is always 0 | |||
| HR | 277 | uint16 | R | D-Bus /Alarms/HighFusedVoltage; 2014-12-13: Deprecated because over-engineered. Value is always 0 | |||
| HR | 278 | uint16 | R | D-Bus /Alarms/FuseBlown | |||
| HR | 279 | uint16 | R | D-Bus /Alarms/HighInternalTemperature | |||
| HR | 280 | uint16 | RW | D-Bus /Relay/0/State; Not supported by CAN.Bus BMS batteries | |||
| HR | 281 | uint16 | R | Ah | ×-0.1 | D-Bus /History/DeepestDischarge; Not supported by CAN.Bus BMS batteries | |
| HR | 282 | uint16 | R | Ah | ×-0.1 | D-Bus /History/LastDischarge; Not supported by CAN.Bus BMS batteries | |
| HR | 283 | uint16 | R | Ah | ×-0.1 | D-Bus /History/AverageDischarge; Not supported by CAN.Bus BMS batteries | |
| HR | 284 | uint16 | R | D-Bus /History/ChargeCycles; Not supported by CAN.Bus BMS batteries | |||
| HR | 285 | uint16 | R | D-Bus /History/FullDischarges; Not supported by CAN.Bus BMS batteries | |||
| HR | 286 | uint16 | R | Ah | ×-0.1 | D-Bus /History/TotalAhDrawn; Not supported by CAN.Bus BMS batteries | |
| HR | 287 | uint16 | R | V | ×0.01 | D-Bus /History/MinimumVoltage; Not supported by CAN.Bus BMS batteries | |
| HR | 288 | uint16 | R | V | ×0.01 | D-Bus /History/MaximumVoltage; Not supported by CAN.Bus BMS batteries | |
| HR | 289 | uint16 | R | s | ×100 | D-Bus /History/TimeSinceLastFullCharge; Not supported by CAN.Bus BMS batteries | |
| HR | 290 | uint16 | R | D-Bus /History/AutomaticSyncs; Not supported by CAN.Bus BMS batteries | |||
| HR | 291 | uint16 | R | D-Bus /History/LowVoltageAlarms; Not supported by CAN.Bus BMS batteries | |||
| HR | 292 | uint16 | R | D-Bus /History/HighVoltageAlarms; Not supported by CAN.Bus BMS batteries | |||
| HR | 293 | uint16 | R | D-Bus /History/LowStarterVoltageAlarms; Not supported by CAN.Bus BMS batteries | |||
| HR | 294 | uint16 | R | D-Bus /History/HighStarterVoltageAlarms; Not supported by CAN.Bus BMS batteries | |||
| HR | 295 | uint16 | R | V | ×0.01 | D-Bus /History/MinimumStarterVoltage; Not supported by CAN.Bus BMS batteries | |
| HR | 296 | uint16 | R | V | ×0.01 | D-Bus /History/MaximumStarterVoltage; Not supported by CAN.Bus BMS batteries | |
| HR | 297 | uint16 | R | D-Bus /History/LowFusedVoltageAlarms; 2014-12-13: Deprecated because over-engineered. Value is always 0 | |||
| HR | 298 | uint16 | R | D-Bus /History/HighFusedVoltageAlarms; 2014-12-13: Deprecated because over-engineered. Value is always 0 | |||
| HR | 299 | uint16 | R | V | ×0.01 | D-Bus /History/MinimumFusedVoltage; 2014-12-13: Deprecated because over-engineered. Value is always 0 | |
| HR | 300 | uint16 | R | V | ×0.01 | D-Bus /History/MaximumFusedVoltage; 2014-12-13: Deprecated because over-engineered. Value is always 0 | |
| HR | 301 | uint16 | R | kWh | ×0.1 | D-Bus /History/DischargedEnergy; Not supported by CAN.Bus BMS batteries | |
| HR | 302 | uint16 | R | kWh | ×0.1 | D-Bus /History/ChargedEnergy; Not supported by CAN.Bus BMS batteries | |
| HR | 303 | uint16 | R | s | ×100 | D-Bus /TimeToGo; Special value: 0 = charging. Not supported by CAN.Bus BMS batteries | |
| HR | 304 | uint16 | R | % | ×0.1 | D-Bus /Soh; Not supported by all Victron products. Supported by third-party CAN.Bus batteries and Lynx NG | |
| HR | 305 | uint16 | R | V | ×0.1 | D-Bus /Info/MaxChargeVoltage; Not supported by all Victron products. Supported by third-party CAN.Bus batteries and Lynx NG | |
| HR | 306 | uint16 | R | V | ×0.1 | D-Bus /Info/BatteryLowVoltage; Not supported by all Victron products. Supported by third-party CAN.Bus batteries and Lynx NG | |
| HR | 307 | uint16 | R | A | ×0.1 | D-Bus /Info/MaxChargeCurrent; Not supported by all Victron products. Supported by third-party CAN.Bus batteries and Lynx NG | |
| HR | 308 | uint16 | R | A | ×0.1 | D-Bus /Info/MaxDischargeCurrent; Not supported by all Victron products. Supported by third-party CAN.Bus batteries and Lynx NG | |
| HR | 309 | uint16 | R | Ah | ×0.1 | D-Bus /Capacity | |
| HR | 310 | int32 ABCD | R | D-Bus /Diagnostics/LastErrors/1/Time | |||
| HR | 312 | int32 ABCD | R | D-Bus /Diagnostics/LastErrors/2/Time | |||
| HR | 314 | int32 ABCD | R | D-Bus /Diagnostics/LastErrors/3/Time | |||
| HR | 316 | int32 ABCD | R | D-Bus /Diagnostics/LastErrors/4/Time | |||
| HR | 318 | int16 | R | °C | ×0.1 | D-Bus /System/MinCellTemperature | |
| HR | 319 | int16 | R | °C | ×0.1 | D-Bus /System/MaxCellTemperature | |
| HR | 320 | uint16 | R | D-Bus /Alarms/HighChargeCurrent | |||
| HR | 321 | uint16 | R | D-Bus /Alarms/HighDischargeCurrent | |||
| HR | 322 | uint16 | R | D-Bus /Alarms/CellImbalance | |||
| HR | 323 | uint16 | R | D-Bus /Alarms/InternalFailure | |||
| HR | 324 | uint16 | R | D-Bus /Alarms/HighChargeTemperature | |||
| HR | 325 | uint16 | R | D-Bus /Alarms/LowChargeTemperature | |||
| HR | 326 | uint16 | R | D-Bus /Alarms/LowCellVoltage | |||
| HR | 327 | uint16 | R | D-Bus /Alarms/BmsCable; Supported only by Lynx BMS | |||
| HR | 328 | uint16 | R | D-Bus /Alarms/Contactor; Supported only by Lynx BMS | |||
| HR | 329 | uint16 | R | D-Bus /Alarms/HighCurrent; Supported only by Lynx BMS | |||
| HR | 330 | uint32 ABCD | R | Ah | ×-1 | D-Bus /ConsumedAmphours; 32-bit compliment to register 265 | |
| HR | 1282 | uint16 | R | D-Bus /State | |||
| HR | 1283 | uint16 | R | D-Bus /ErrorCode | |||
| HR | 1284 | uint16 | R | D-Bus /SystemSwitch | |||
| HR | 1285 | uint16 | R | D-Bus /Balancing | |||
| HR | 1286 | uint16 | R | D-Bus /System/NrOfBatteries | |||
| HR | 1287 | uint16 | R | D-Bus /System/BatteriesParallel | |||
| HR | 1288 | uint16 | R | D-Bus /System/BatteriesSeries | |||
| HR | 1289 | uint16 | R | D-Bus /System/NrOfCellsPerBattery | |||
| HR | 1290 | uint16 | R | V | ×0.01 | D-Bus /System/MinCellVoltage | |
| HR | 1291 | uint16 | R | V | ×0.01 | D-Bus /System/MaxCellVoltage | |
| HR | 1292 | uint16 | R | D-Bus /Diagnostics/ShutDownsDueError | |||
| HR | 1293 | uint16 | R | D-Bus /Diagnostics/LastErrors/1/Error | |||
| HR | 1294 | uint16 | R | D-Bus /Diagnostics/LastErrors/2/Error | |||
| HR | 1295 | uint16 | R | D-Bus /Diagnostics/LastErrors/3/Error | |||
| HR | 1296 | uint16 | R | D-Bus /Diagnostics/LastErrors/4/Error | |||
| HR | 1297 | uint16 | R | D-Bus /Io/AllowToCharge | |||
| HR | 1298 | uint16 | R | D-Bus /Io/AllowToDischarge | |||
| HR | 1299 | uint16 | R | D-Bus /Io/ExternalRelay | |||
| HR | 1300 | uint16 | R | V | ×0.01 | D-Bus /History/MinimumCellVoltage | |
| HR | 1301 | uint16 | R | V | ×0.01 | D-Bus /History/MaximumCellVoltage | |
| HR | 1302 | uint16 | R | D-Bus /System/NrOfModulesOffline | |||
| HR | 1303 | uint16 | R | D-Bus /System/NrOfModulesOnline | |||
| HR | 1304 | uint16 | R | D-Bus /System/NrOfModulesBlockingCharge | |||
| HR | 1305 | uint16 | R | D-Bus /System/NrOfModulesBlockingDischarge | |||
| HR | 1306 | string[4] | R | D-Bus /System/MinVoltageCellId | |||
| HR | 1310 | string[4] | R | D-Bus /System/MaxVoltageCellId | |||
| HR | 1314 | string[4] | R | D-Bus /System/MinTemperatureCellId | |||
| HR | 1318 | string[4] | R | D-Bus /System/MaxTemperatureCellId | |||
| HR | 1322 | uint16 | RW | D-Bus /Mode | |||
| HR | 1323 | uint16 | R | D-Bus /Balancer/Status |
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).