{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "Victron Energy",
  "model": "GX grid meter",
  "vendor_website": "victronenergy.com",
  "description": "Energy meters configured as grid meter (ET340, EM24, EM540...), read through a GX device",
  "revision": 1,
  "revised": "2026-10-14",
  "firmware": "Venus OS; register list 3.81",
  "source": "Victron Energy, CCGX Modbus TCP register list 3.81",
  "sources": [
    {
      "title": "CCGX Modbus TCP register list",
      "version": "3.81",
      "url": "https://www.victronenergy.com/upload/documents/CCGX-Modbus-TCP-register-list-3.81.xlsx",
      "note": "Field list, service com.victronenergy.grid"
    }
  ],
  "notes": [
    "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)."
  ],
  "protocol": "tcp",
  "port": 502,
  "byte_order": "big",
  "word_order": "big",
  "address_base": 0,
  "x_status": "official",
  "registers": [
    {"name": "Grid L1 - Power", "area": "holding", "address": 2600, "type": "int16", "unit": "W", "description": "D-Bus /Ac/L1/Power"},
    {"name": "Grid L2 - Power", "area": "holding", "address": 2601, "type": "int16", "unit": "W", "description": "D-Bus /Ac/L2/Power"},
    {"name": "Grid L3 - Power", "area": "holding", "address": 2602, "type": "int16", "unit": "W", "description": "D-Bus /Ac/L3/Power"},
    {"name": "Grid L1 - Energy from net", "area": "holding", "address": 2603, "type": "uint16", "scale": 0.01, "unit": "kWh", "description": "D-Bus /Ac/L1/Energy/Forward"},
    {"name": "Grid L2 - Energy from net", "area": "holding", "address": 2604, "type": "uint16", "scale": 0.01, "unit": "kWh", "description": "D-Bus /Ac/L2/Energy/Forward"},
    {"name": "Grid L3 - Energy from net", "area": "holding", "address": 2605, "type": "uint16", "scale": 0.01, "unit": "kWh", "description": "D-Bus /Ac/L3/Energy/Forward"},
    {"name": "Grid L1 - Energy to net", "area": "holding", "address": 2606, "type": "uint16", "scale": 0.01, "unit": "kWh", "description": "D-Bus /Ac/L1/Energy/Reverse"},
    {"name": "Grid L2 - Energy to net", "area": "holding", "address": 2607, "type": "uint16", "scale": 0.01, "unit": "kWh", "description": "D-Bus /Ac/L2/Energy/Reverse"},
    {"name": "Grid L3 - Energy to net", "area": "holding", "address": 2608, "type": "uint16", "scale": 0.01, "unit": "kWh", "description": "D-Bus /Ac/L3/Energy/Reverse"},
    {"name": "Serial", "area": "holding", "address": 2609, "type": "string", "length": 7, "description": "D-Bus /Serial; The grid meter serial as string (MSB of first register: first character, LSB of last register: last character)", "role": "serial"},
    {"name": "Grid L1 – Voltage", "area": "holding", "address": 2616, "type": "uint16", "scale": 0.1, "unit": "V", "description": "D-Bus /Ac/L1/Voltage"},
    {"name": "Grid L1 – Current", "area": "holding", "address": 2617, "type": "int16", "scale": 0.1, "unit": "A", "description": "D-Bus /Ac/L1/Current"},
    {"name": "Grid L2 – Voltage", "area": "holding", "address": 2618, "type": "uint16", "scale": 0.1, "unit": "V", "description": "D-Bus /Ac/L2/Voltage"},
    {"name": "Grid L2 – Current", "area": "holding", "address": 2619, "type": "int16", "scale": 0.1, "unit": "A", "description": "D-Bus /Ac/L2/Current"},
    {"name": "Grid L3 – Voltage", "area": "holding", "address": 2620, "type": "uint16", "scale": 0.1, "unit": "V", "description": "D-Bus /Ac/L3/Voltage"},
    {"name": "Grid L3 – Current", "area": "holding", "address": 2621, "type": "int16", "scale": 0.1, "unit": "A", "description": "D-Bus /Ac/L3/Current"},
    {"name": "Grid L1 - Energy from net (2622)", "area": "holding", "address": 2622, "type": "uint32", "scale": 0.01, "unit": "kWh", "description": "D-Bus /Ac/L1/Energy/Forward"},
    {"name": "Grid L2 - Energy from net (2624)", "area": "holding", "address": 2624, "type": "uint32", "scale": 0.01, "unit": "kWh", "description": "D-Bus /Ac/L2/Energy/Forward"},
    {"name": "Grid L3 - Energy from net (2626)", "area": "holding", "address": 2626, "type": "uint32", "scale": 0.01, "unit": "kWh", "description": "D-Bus /Ac/L3/Energy/Forward"},
    {"name": "Grid L1 - Energy to net (2628)", "area": "holding", "address": 2628, "type": "uint32", "scale": 0.01, "unit": "kWh", "description": "D-Bus /Ac/L1/Energy/Reverse"},
    {"name": "Grid L2 - Energy to net (2630)", "area": "holding", "address": 2630, "type": "uint32", "scale": 0.01, "unit": "kWh", "description": "D-Bus /Ac/L2/Energy/Reverse"},
    {"name": "Grid L3 - Energy to net (2632)", "area": "holding", "address": 2632, "type": "uint32", "scale": 0.01, "unit": "kWh", "description": "D-Bus /Ac/L3/Energy/Reverse"},
    {"name": "Total Energy from net", "area": "holding", "address": 2634, "type": "uint32", "scale": 0.01, "unit": "kWh", "description": "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"},
    {"name": "Total Energy to net", "area": "holding", "address": 2636, "type": "uint32", "scale": 0.01, "unit": "kWh", "description": "D-Bus /Ac/Energy/Reverse"},
    {"name": "Grid L1 - Power (2638)", "area": "holding", "address": 2638, "type": "int32", "unit": "W", "description": "D-Bus /Ac/L1/Power"},
    {"name": "Grid L2 - Power (2640)", "area": "holding", "address": 2640, "type": "int32", "unit": "W", "description": "D-Bus /Ac/L2/Power"},
    {"name": "Grid L3 - Power (2642)", "area": "holding", "address": 2642, "type": "int32", "unit": "W", "description": "D-Bus /Ac/L3/Power"},
    {"name": "AC Frequency", "area": "holding", "address": 2644, "type": "uint16", "scale": 0.01, "unit": "Hz", "description": "D-Bus /Ac/Frequency"},
    {"name": "L1 Power Factor", "area": "holding", "address": 2645, "type": "int16", "scale": 0.001, "description": "D-Bus /Ac/L1/PowerFactor"},
    {"name": "L2 Power Factor", "area": "holding", "address": 2646, "type": "int16", "scale": 0.001, "description": "D-Bus /Ac/L2/PowerFactor"},
    {"name": "L3 Power Factor", "area": "holding", "address": 2647, "type": "int16", "scale": 0.001, "description": "D-Bus /Ac/L3/PowerFactor"},
    {"name": "Total Power Factor", "area": "holding", "address": 2648, "type": "int16", "scale": 0.001, "description": "D-Bus /Ac/PowerFactor"},
    {"name": "Custom Name", "area": "holding", "address": 2650, "type": "string", "length": 8, "access": "RW", "description": "D-Bus /CustomName"}
  ]
}
