{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "Victron Energy",
  "model": "GX settings",
  "vendor_website": "victronenergy.com",
  "description": "ESS, DVCC, generator start/stop and Dynamic ESS settings of a Victron GX device",
  "revision": 2,
  "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.settings"
    }
  ],
  "notes": [
    "Registers of the com.victronenergy.settings 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)."
  ],
  "protocol": "tcp",
  "port": 502,
  "unit_id": 100,
  "byte_order": "big",
  "word_order": "big",
  "address_base": 0,
  "x_status": "official",
  "registers": [
    {"name": "ESS control loop setpoint", "area": "holding", "address": 2700, "type": "int16", "unit": "W", "access": "RW", "description": "D-Bus /Settings/Cgwacs/AcPowerSetPoint"},
    {"name": "ESS max charge current (fractional)", "area": "holding", "address": 2701, "type": "uint16", "unit": "%", "access": "RW", "description": "D-Bus /Settings/Cgwacs/MaxChargePercentage; ESS Mode 2 - Max charge current for ESS control-loop. The control-loop will use this value to limit the multi power setpoint. For DVCC, use 2705 instead"},
    {"name": "ESS max discharge current (fractional)", "area": "holding", "address": 2702, "type": "uint16", "unit": "%", "access": "RW", "description": "D-Bus /Settings/Cgwacs/MaxDischargePercentage"},
    {"name": "ESS control loop setpoint (2703)", "area": "holding", "address": 2703, "type": "int16", "scale": 100, "unit": "W", "access": "RW", "description": "D-Bus /Settings/Cgwacs/AcPowerSetPoint; ESS Mode 2 – Same as 2700, but with a different scale factor. Meant for values larger than +-32kW"},
    {"name": "ESS max discharge current", "area": "holding", "address": 2704, "type": "int16", "scale": 10, "unit": "W", "access": "RW", "description": "D-Bus /Settings/Cgwacs/MaxDischargePower; ESS Mode 2 – similar to 2702, but as an absolute value instead of a percentage"},
    {"name": "DVCC system max charge current", "area": "holding", "address": 2705, "type": "int16", "unit": "A", "access": "RW", "description": "D-Bus /Settings/SystemSetup/MaxChargeCurrent; ESS Mode 2 with DVCC – Maximum system charge current. -1 Disables"},
    {"name": "Maximum System Grid Feed In", "area": "holding", "address": 2706, "type": "int16", "scale": 100, "unit": "W", "access": "RW", "description": "D-Bus /Settings/Cgwacs/MaxFeedInPower; -1: No limit, >=0: limited system feed-in. Applies to DC-coupled and AC-coupled feed-in"},
    {"name": "Feed excess DC-coupled PV into grid", "area": "holding", "address": 2707, "type": "int16", "enum": {"0": "Don’t feed excess DC-tied PV into grid", "1": "Feed excess DC-tied PV into the grid"}, "access": "RW", "description": "D-Bus /Settings/Cgwacs/OvervoltageFeedIn; Also known as Overvoltage Feed-in"},
    {"name": "Don’t feed excess AC-coupled PV into grid", "area": "holding", "address": 2708, "type": "int16", "enum": {"0": "Feed excess AC-tied PV into grid", "1": "Don’t feed excess AC-tied PV into the grid"}, "access": "RW", "description": "D-Bus /Settings/Cgwacs/PreventFeedback; Formerly called Fronius Zero-Feedin"},
    {"name": "Limit managed battery voltage", "area": "holding", "address": 2710, "type": "uint16", "scale": 0.1, "unit": "V", "access": "RW", "description": "D-Bus /Settings/SystemSetup/MaxChargeVoltage; Only used if there is a managed battery in the system"},
    {"name": "AC input 1 source (for VE.Bus inverter/chargers)", "area": "holding", "address": 2711, "type": "uint16", "enum": {"0": "Unused", "1": "Grid", "2": "Genset", "3": "Shore"}, "access": "RW", "description": "D-Bus /Settings/SystemSetup/AcInput1; For Multi-RS, this is configured on the Inverter/Charger with VictronConnect"},
    {"name": "AC input 2 source (for VE.Bus inverter/chargers)", "area": "holding", "address": 2712, "type": "uint16", "enum": {"0": "Unused", "1": "Grid", "2": "Genset", "3": "Shore"}, "access": "RW", "description": "D-Bus /Settings/SystemSetup/AcInput2"},
    {"name": "AC export limit when peakshaving", "area": "holding", "address": 2713, "type": "int16", "access": "RW", "description": "D-Bus /Settings/CGwacs/AcExportLimit; -1: Disabled"},
    {"name": "AC import limit when peakshaving", "area": "holding", "address": 2714, "type": "int16", "access": "RW", "description": "D-Bus /Settings/Cgwacs/AcInputLimit; -1: Disabled"},
    {"name": "Mode for peakshaving", "area": "holding", "address": 2715, "type": "uint16", "enum": {"0": "Above minimum SOC only", "1": "Always"}, "access": "RW", "description": "D-Bus /Settings/CGwacs/AlwaysPeakShave"},
    {"name": "Grid metering", "area": "holding", "address": 2718, "type": "uint16", "enum": {"0": "External meter", "1": "Inverter/Charger"}, "access": "RW", "description": "D-Bus /Settings/CGwacs/RunWithoutGridMeter"},
    {"name": "ESS max discharge current (2720)", "area": "holding", "address": 2720, "type": "int32", "unit": "W", "access": "RW", "description": "D-Bus /Settings/Cgwacs/MaxDischargePower; This is a 32-bit version of 2704"},
    {"name": "Maximum System Grid Feed In (2722)", "area": "holding", "address": 2722, "type": "int32", "unit": "W", "access": "RW", "description": "D-Bus /Settings/Cgwacs/MaxFeedInPower; This is a 32-bit version of 2706"},
    {"name": "ESS BatteryLife state", "area": "holding", "address": 2900, "type": "uint16", "enum": {"0": "Unused, BL disabled", "1": "Restarting", "2": "Self-consumption", "3": "Self-consumption", "4": "Self-consumption", "5": "Discharge disabled", "6": "Force charge", "7": "Sustain", "8": "Low Soc Recharge", "9": "Keep batteries charged", "10": "BL Disabled", "11": "BL Disabled (Low SoC)", "12": "BL Disabled (Low SOC recharge)"}, "access": "RW", "description": "D-Bus /Settings/CGwacs/BatteryLife/State; Use value 0 (disable) and 1(enable) for writing only"},
    {"name": "ESS Minimum SoC (unless grid fails)", "area": "holding", "address": 2901, "type": "uint16", "scale": 0.1, "unit": "%", "access": "RW", "description": "D-Bus /Settings/CGwacs/BatteryLife/MinimumSocLimit; Same as the setting in the GUI"},
    {"name": "ESS Mode", "area": "holding", "address": 2902, "type": "uint16", "enum": {"1": "ESS with Phase Compensation", "2": "ESS without phase compensation", "3": "Disabled/External Control"}, "access": "RW", "description": "D-Bus /Settings/Cgwacs/Hub4Mode"},
    {"name": "ESS BatteryLife SoC limit (read only)", "area": "holding", "address": 2903, "type": "uint16", "scale": 0.1, "unit": "%", "description": "D-Bus /Settings/Cgwacs/BatteryLife/SocLimit"},
    {"name": "Auto start enabled", "area": "holding", "address": 4701, "type": "uint16", "enum": {"0": "Disabled", "1": "Enabled"}, "access": "RW", "description": "D-Bus /Settings/Pump0/AutoStartEnabled"},
    {"name": "Mode", "area": "holding", "address": 4702, "type": "uint16", "enum": {"0": "Auto", "1": "On", "2": "Off"}, "access": "RW", "description": "D-Bus /Settings/Pump0/Mode"},
    {"name": "Start value", "area": "holding", "address": 4703, "type": "uint16", "unit": "%", "access": "RW", "description": "D-Bus /Settings/Pump0/StartValue"},
    {"name": "Stop value", "area": "holding", "address": 4704, "type": "uint16", "unit": "%", "access": "RW", "description": "D-Bus /Settings/Pump0/StopValue"},
    {"name": "Battery capacity", "area": "holding", "address": 5420, "type": "uint16", "scale": 0.1, "unit": "kWh", "access": "RW", "description": "D-Bus /Settings/DynamicEss/BatteryCapacity"},
    {"name": "Full battery charge duration", "area": "holding", "address": 5421, "type": "uint16", "unit": "h", "access": "RW", "description": "D-Bus /Settings/DynamicEss/FullChargeDuration"},
    {"name": "Full battery charge interval", "area": "holding", "address": 5422, "type": "uint16", "unit": "d", "access": "RW", "description": "D-Bus /Settings/DynamicEss/FullChargeInterval"},
    {"name": "Dynamic ESS mode", "area": "holding", "address": 5423, "type": "uint16", "enum": {"0": "Off", "1": "Auto", "4": "Node-RED"}, "access": "RW", "description": "D-Bus /Settings/DynamicEss/Mode"},
    {"name": "Allow grid feed-in during this schedule", "area": "holding", "address": 5424, "type": "uint16", "enum": {"0": "Not allowed", "1": "Allowed"}, "access": "RW", "description": "D-Bus /Settings/DynamicEss/Schedule/0/AllowGridFeedIn"},
    {"name": "Duration for this schedule", "area": "holding", "address": 5425, "type": "uint16", "unit": "s", "access": "RW", "description": "D-Bus /Settings/DynamicEss/Schedule/0/Duration"},
    {"name": "Active restrictions for this schedule", "area": "holding", "address": 5426, "type": "uint16", "enum": {"0": "No restrictions between battery and the grid", "1": "Battery to grid energy flow is restricted", "2": "Grid to battery energy flow is restricted", "3": "No energy flow between battery and grid"}, "access": "RW", "description": "D-Bus /Settings/DynamicEss/Schedule/0/Restrictions"},
    {"name": "Target SOC for this schedule", "area": "holding", "address": 5427, "type": "uint16", "unit": "%", "access": "RW", "description": "D-Bus /Settings/DynamicEss/Schedule/0/Soc"},
    {"name": "Unix timestamp when this schedule starts", "area": "holding", "address": 5428, "type": "int32", "access": "RW", "description": "D-Bus /Settings/DynamicEss/Schedule/0/Start"},
    {"name": "Used strategy for this schedule", "area": "holding", "address": 5430, "type": "uint16", "enum": {"0": "Target SOC", "1": "Self-consumption", "2": "Pro battery", "3": "Pro grid"}, "access": "RW", "description": "D-Bus /Settings/DynamicEss/Schedule/0/Strategy"},
    {"name": "GX device System Name", "area": "holding", "address": 5700, "type": "string", "length": 8, "access": "RW", "description": "D-Bus /Settings/SystemSetup/SystemName"}
  ]
}
