Victron Energy GX grid meter Modbus register map
Energy meters configured as grid meter (ET340, EM24, EM540...), read through a GX device
- Official
- 33 registers
- Modbus TCP
- Revision 1 · 2026-10-14
- 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
- 1default
- 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
- 33 holding registers
- Revision
- 1 · 2026-10-14
- Firmware
- Venus OS; register list 3.81
- Added
- ()
- File
- maps/victron-energy/gx-grid.mbmap.json · 7 KB · history
- SHA-256
- 437c4dc4463df12a724fbf4d35aa626d64573f1cd6d14bce08da92eaa99b3af6
- 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 | holding 2609 | string[7] |
Sources and notes
- CCGX Modbus TCP register list · version 3.81 Field list, service com.victronenergy.grid
Source: Victron Energy, CCGX Modbus TCP register list 3.81
- Registers of the com.victronenergy.grid 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 | 2600 | int16 | R | W | D-Bus /Ac/L1/Power | ||
| HR | 2601 | int16 | R | W | D-Bus /Ac/L2/Power | ||
| HR | 2602 | int16 | R | W | D-Bus /Ac/L3/Power | ||
| HR | 2603 | uint16 | R | kWh | ×0.01 | D-Bus /Ac/L1/Energy/Forward | |
| HR | 2604 | uint16 | R | kWh | ×0.01 | D-Bus /Ac/L2/Energy/Forward | |
| HR | 2605 | uint16 | R | kWh | ×0.01 | D-Bus /Ac/L3/Energy/Forward | |
| HR | 2606 | uint16 | R | kWh | ×0.01 | D-Bus /Ac/L1/Energy/Reverse | |
| HR | 2607 | uint16 | R | kWh | ×0.01 | D-Bus /Ac/L2/Energy/Reverse | |
| HR | 2608 | uint16 | R | kWh | ×0.01 | D-Bus /Ac/L3/Energy/Reverse | |
| HR | 2609 | string[7] | R | D-Bus /Serial; The grid meter serial as string (MSB of first register: first character, LSB of last register: last character) | |||
| HR | 2616 | uint16 | R | V | ×0.1 | D-Bus /Ac/L1/Voltage | |
| HR | 2617 | int16 | R | A | ×0.1 | D-Bus /Ac/L1/Current | |
| HR | 2618 | uint16 | R | V | ×0.1 | D-Bus /Ac/L2/Voltage | |
| HR | 2619 | int16 | R | A | ×0.1 | D-Bus /Ac/L2/Current | |
| HR | 2620 | uint16 | R | V | ×0.1 | D-Bus /Ac/L3/Voltage | |
| HR | 2621 | int16 | R | A | ×0.1 | D-Bus /Ac/L3/Current | |
| HR | 2622 | uint32 ABCD | R | kWh | ×0.01 | D-Bus /Ac/L1/Energy/Forward | |
| HR | 2624 | uint32 ABCD | R | kWh | ×0.01 | D-Bus /Ac/L2/Energy/Forward | |
| HR | 2626 | uint32 ABCD | R | kWh | ×0.01 | D-Bus /Ac/L3/Energy/Forward | |
| HR | 2628 | uint32 ABCD | R | kWh | ×0.01 | D-Bus /Ac/L1/Energy/Reverse | |
| HR | 2630 | uint32 ABCD | R | kWh | ×0.01 | D-Bus /Ac/L2/Energy/Reverse | |
| HR | 2632 | uint32 ABCD | R | kWh | ×0.01 | D-Bus /Ac/L3/Energy/Reverse | |
| HR | 2634 | uint32 ABCD | R | kWh | ×0.01 | D-Bus /Ac/Energy/Forward; Depending on the energy summation method used by the meter, this may be different to the sum of the individual counters | |
| HR | 2636 | uint32 ABCD | R | kWh | ×0.01 | D-Bus /Ac/Energy/Reverse | |
| HR | 2638 | int32 ABCD | R | W | D-Bus /Ac/L1/Power | ||
| HR | 2640 | int32 ABCD | R | W | D-Bus /Ac/L2/Power | ||
| HR | 2642 | int32 ABCD | R | W | D-Bus /Ac/L3/Power | ||
| HR | 2644 | uint16 | R | Hz | ×0.01 | D-Bus /Ac/Frequency | |
| HR | 2645 | int16 | R | ×0.001 | D-Bus /Ac/L1/PowerFactor | ||
| HR | 2646 | int16 | R | ×0.001 | D-Bus /Ac/L2/PowerFactor | ||
| HR | 2647 | int16 | R | ×0.001 | D-Bus /Ac/L3/PowerFactor | ||
| HR | 2648 | int16 | R | ×0.001 | D-Bus /Ac/PowerFactor | ||
| HR | 2650 | string[8] | RW | D-Bus /CustomName |
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).