{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "GoodWe",
  "model": "Hybrid inverters (third-party EMS protocol)",
  "vendor_website": "goodwe.com",
  "description": "GoodWe hybrid inverters (ET, EH, BH, BT, ESA and newer) for monitoring and EMS control",
  "revision": 1,
  "revised": "2026-10-14",
  "source": "GoodWe, Technical Information: Third-Party EMS Protocol MODBUS V1.1.1",
  "sources": [
    {
      "title": "Third-Party EMS Protocol MODBUS",
      "version": "V1.1.1",
      "url": "https://en.goodwe.com/Ftp/EN/Downloads/GW_Third-Party-EMS-Protocol_MODBUS-EN.pdf",
      "note": "sections 8, 9 and appendix"
    }
  ],
  "notes": [
    "Every register is a holding register: read with FC03, write with FC16.",
    "The default slave address is 247 (RTU and TCP). Modbus TCP must be enabled through SEMS+.",
    "Read at most 100 registers at a time, about once per second; the EMS mode and power registers must be written every second.",
    "Not every model has every register: the descriptions say which models a register is for when the protocol does."
  ],
  "protocol": "tcp+rtu",
  "unit_id": 247,
  "port": 502,
  "baudrate": 9600,
  "parity": "N",
  "byte_order": "big",
  "word_order": "big",
  "address_base": 0,
  "max_read_registers": 100,
  "x_status": "official",
  "registers": [
    {"name": "Max charge power", "group": "Info", "area": "holding", "address": 33001, "type": "uint32", "unit": "W"},
    {"name": "Max discharge power", "group": "Info", "area": "holding", "address": 33004, "type": "uint32", "unit": "W"},
    {"name": "Max PV power", "group": "Info", "area": "holding", "address": 33006, "type": "uint32", "unit": "W"},
    {"name": "Rated power", "group": "Info", "area": "holding", "address": 35001, "type": "uint16", "unit": "W"},
    {"name": "Inverter serial number", "group": "Info", "area": "holding", "address": 35003, "type": "string", "length": 8, "role": "serial"},
    {"name": "Model name", "group": "Info", "area": "holding", "address": 35011, "type": "string", "length": 5, "role": "model", "description": "EH and ET PLUS only"},
    {"name": "External model name", "group": "Info", "area": "holding", "address": 35060, "type": "string", "length": 16},
    {"name": "PV1 voltage", "group": "PV strings", "area": "holding", "address": 35103, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "PV1 current", "group": "PV strings", "area": "holding", "address": 35104, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "PV2 voltage", "group": "PV strings", "area": "holding", "address": 35107, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "PV2 current", "group": "PV strings", "area": "holding", "address": 35108, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "PV3 voltage", "group": "PV strings", "area": "holding", "address": 35111, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "PV3 current", "group": "PV strings", "area": "holding", "address": 35112, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "PV4 voltage", "group": "PV strings", "area": "holding", "address": 35115, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "PV4 current", "group": "PV strings", "area": "holding", "address": 35116, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "PV5 voltage", "group": "PV strings", "area": "holding", "address": 35304, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "PV5 current", "group": "PV strings", "area": "holding", "address": 35305, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "PV6 voltage", "group": "PV strings", "area": "holding", "address": 35306, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "PV6 current", "group": "PV strings", "area": "holding", "address": 35307, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "PV7 voltage", "group": "PV strings", "area": "holding", "address": 35308, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "PV7 current", "group": "PV strings", "area": "holding", "address": 35309, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "PV8 voltage", "group": "PV strings", "area": "holding", "address": 35310, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "PV8 current", "group": "PV strings", "area": "holding", "address": 35311, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "PV9 voltage", "group": "PV strings", "area": "holding", "address": 35312, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "PV9 current", "group": "PV strings", "area": "holding", "address": 35313, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "PV10 voltage", "group": "PV strings", "area": "holding", "address": 35314, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "PV10 current", "group": "PV strings", "area": "holding", "address": 35315, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "PV11 voltage", "group": "PV strings", "area": "holding", "address": 35316, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "PV11 current", "group": "PV strings", "area": "holding", "address": 35317, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "PV12 voltage", "group": "PV strings", "area": "holding", "address": 35318, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "PV12 current", "group": "PV strings", "area": "holding", "address": 35319, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "PV13 voltage", "group": "PV strings", "area": "holding", "address": 35320, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "PV13 current", "group": "PV strings", "area": "holding", "address": 35321, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "PV14 voltage", "group": "PV strings", "area": "holding", "address": 35322, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "PV14 current", "group": "PV strings", "area": "holding", "address": 35323, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "PV15 voltage", "group": "PV strings", "area": "holding", "address": 35324, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "PV15 current", "group": "PV strings", "area": "holding", "address": 35325, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "PV16 voltage", "group": "PV strings", "area": "holding", "address": 35326, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "PV16 current", "group": "PV strings", "area": "holding", "address": 35327, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "PV17 voltage", "group": "PV strings", "area": "holding", "address": 35423, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "PV17 current", "group": "PV strings", "area": "holding", "address": 35424, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "PV18 voltage", "group": "PV strings", "area": "holding", "address": 35425, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "PV18 current", "group": "PV strings", "area": "holding", "address": 35426, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "PV19 voltage", "group": "PV strings", "area": "holding", "address": 35427, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "PV19 current", "group": "PV strings", "area": "holding", "address": 35428, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "PV20 voltage", "group": "PV strings", "area": "holding", "address": 35429, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "PV20 current", "group": "PV strings", "area": "holding", "address": 35430, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "MPPT1 current", "group": "MPPT", "area": "holding", "address": 35345, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "MPPT1 power", "group": "MPPT", "area": "holding", "address": 35105, "type": "uint32", "description": "200 ms average", "unit": "W"},
    {"name": "MPPT1 power (16-bit)", "group": "MPPT", "area": "holding", "address": 35337, "type": "uint16", "description": "200 ms average", "unit": "W"},
    {"name": "MPPT2 current", "group": "MPPT", "area": "holding", "address": 35346, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "MPPT2 power", "group": "MPPT", "area": "holding", "address": 35109, "type": "uint32", "description": "200 ms average", "unit": "W"},
    {"name": "MPPT2 power (16-bit)", "group": "MPPT", "area": "holding", "address": 35338, "type": "uint16", "description": "200 ms average", "unit": "W"},
    {"name": "MPPT3 current", "group": "MPPT", "area": "holding", "address": 35347, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "MPPT3 power", "group": "MPPT", "area": "holding", "address": 35113, "type": "uint32", "description": "200 ms average", "unit": "W"},
    {"name": "MPPT3 power (16-bit)", "group": "MPPT", "area": "holding", "address": 35339, "type": "uint16", "description": "200 ms average", "unit": "W"},
    {"name": "MPPT4 current", "group": "MPPT", "area": "holding", "address": 35348, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "MPPT4 power", "group": "MPPT", "area": "holding", "address": 35117, "type": "uint32", "description": "200 ms average", "unit": "W"},
    {"name": "MPPT4 power (16-bit)", "group": "MPPT", "area": "holding", "address": 35340, "type": "uint16", "description": "200 ms average", "unit": "W"},
    {"name": "MPPT5 current", "group": "MPPT", "area": "holding", "address": 35349, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "MPPT5 power (16-bit)", "group": "MPPT", "area": "holding", "address": 35341, "type": "uint16", "description": "200 ms average", "unit": "W"},
    {"name": "MPPT6 current", "group": "MPPT", "area": "holding", "address": 35350, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "MPPT6 power (16-bit)", "group": "MPPT", "area": "holding", "address": 35342, "type": "uint16", "description": "200 ms average", "unit": "W"},
    {"name": "MPPT7 current", "group": "MPPT", "area": "holding", "address": 35351, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "MPPT7 power (16-bit)", "group": "MPPT", "area": "holding", "address": 35343, "type": "uint16", "description": "200 ms average", "unit": "W"},
    {"name": "MPPT8 current", "group": "MPPT", "area": "holding", "address": 35352, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "MPPT8 power (16-bit)", "group": "MPPT", "area": "holding", "address": 35344, "type": "uint16", "description": "200 ms average", "unit": "W"},
    {"name": "MPPT9 current", "group": "MPPT", "area": "holding", "address": 35415, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "MPPT9 power (16-bit)", "group": "MPPT", "area": "holding", "address": 35407, "type": "uint16", "description": "200 ms average", "unit": "W"},
    {"name": "MPPT10 current", "group": "MPPT", "area": "holding", "address": 35416, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "MPPT10 power (16-bit)", "group": "MPPT", "area": "holding", "address": 35408, "type": "uint16", "description": "200 ms average", "unit": "W"},
    {"name": "R phase inverter voltage", "group": "Inverter", "area": "holding", "address": 35121, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "R phase inverter current", "group": "Inverter", "area": "holding", "address": 35122, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "R phase inverter frequency", "group": "Inverter", "area": "holding", "address": 35123, "type": "uint16", "scale": 0.01, "unit": "Hz"},
    {"name": "R phase inverter power", "group": "Inverter", "area": "holding", "address": 35124, "type": "int32", "unit": "W"},
    {"name": "S phase inverter voltage", "group": "Inverter", "area": "holding", "address": 35126, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "S phase inverter current", "group": "Inverter", "area": "holding", "address": 35127, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "S phase inverter frequency", "group": "Inverter", "area": "holding", "address": 35128, "type": "uint16", "scale": 0.01, "unit": "Hz"},
    {"name": "S phase inverter power", "group": "Inverter", "area": "holding", "address": 35129, "type": "int32", "unit": "W"},
    {"name": "T phase inverter voltage", "group": "Inverter", "area": "holding", "address": 35131, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "T phase inverter current", "group": "Inverter", "area": "holding", "address": 35132, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "T phase inverter frequency", "group": "Inverter", "area": "holding", "address": 35133, "type": "uint16", "scale": 0.01, "unit": "Hz"},
    {"name": "T phase inverter power", "group": "Inverter", "area": "holding", "address": 35134, "type": "int32", "unit": "W"},
    {"name": "Total inverter power", "group": "Inverter", "area": "holding", "address": 35137, "type": "int32", "unit": "W"},
    {"name": "AC active power", "group": "Inverter", "area": "holding", "address": 35139, "type": "int32", "description": "On-grid power: the meter reading when the meter is connected, otherwise the inverter on-grid port", "unit": "W"},
    {"name": "AC reactive power", "group": "Inverter", "area": "holding", "address": 35141, "type": "int32", "unit": "var"},
    {"name": "AC apparent power", "group": "Inverter", "area": "holding", "address": 35143, "type": "int32", "unit": "VA"},
    {"name": "Total backup load power", "group": "Loads", "area": "holding", "address": 35169, "type": "int32", "unit": "W"},
    {"name": "Total load power", "group": "Loads", "area": "holding", "address": 35171, "type": "int32", "description": "On-grid load, backup not included", "unit": "W"},
    {"name": "Battery1 current", "group": "Battery", "area": "holding", "address": 35181, "type": "int16", "scale": 0.1, "unit": "A"},
    {"name": "Battery1 power", "group": "Battery", "area": "holding", "address": 35182, "type": "int32", "description": "200 ms average", "unit": "W"},
    {"name": "Battery1 mode", "group": "Battery", "area": "holding", "address": 35184, "type": "uint16", "enum": {"0": "No battery", "1": "Standby", "2": "Discharging", "3": "Charging"}},
    {"name": "Safety country", "group": "Status", "area": "holding", "address": 35186, "type": "uint16", "description": "Code from table 1-1 of the protocol"},
    {"name": "Work mode", "group": "Status", "area": "holding", "address": 35187, "type": "uint16", "enum": {"0": "Wait", "1": "On-grid", "2": "Off-grid", "3": "Fault", "4": "Flash", "5": "Check"}},
    {"name": "Battery1 strings", "group": "Battery", "area": "holding", "address": 35212, "type": "uint16"},
    {"name": "Battery2 voltage", "group": "Battery", "area": "holding", "address": 35262, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "Battery2 current", "group": "Battery", "area": "holding", "address": 35263, "type": "int16", "scale": 0.1, "unit": "A"},
    {"name": "Battery2 power", "group": "Battery", "area": "holding", "address": 35264, "type": "int32", "unit": "W"},
    {"name": "Battery2 strings", "group": "Battery", "area": "holding", "address": 35267, "type": "uint16"},
    {"name": "PV total power", "group": "PV strings", "area": "holding", "address": 35301, "type": "uint32", "unit": "W"},
    {"name": "Total energy sold", "group": "Meter", "area": "holding", "address": 36015, "type": "float32", "description": "Total energy fed to the grid, read from the meter; unit not given in the protocol"},
    {"name": "Total energy bought", "group": "Meter", "area": "holding", "address": 36017, "type": "float32", "description": "Total energy taken from the grid, read from the meter; unit not given in the protocol"},
    {"name": "Meter active power R", "group": "Meter", "area": "holding", "address": 36019, "type": "int32", "unit": "W"},
    {"name": "Meter active power S", "group": "Meter", "area": "holding", "address": 36021, "type": "int32", "unit": "W"},
    {"name": "Meter active power T", "group": "Meter", "area": "holding", "address": 36023, "type": "int32", "unit": "W"},
    {"name": "Meter total active power", "group": "Meter", "area": "holding", "address": 36025, "type": "int32", "unit": "W"},
    {"name": "Meter reactive power R", "group": "Meter", "area": "holding", "address": 36027, "type": "int32", "unit": "var"},
    {"name": "Meter reactive power S", "group": "Meter", "area": "holding", "address": 36029, "type": "int32", "unit": "var"},
    {"name": "Meter reactive power T", "group": "Meter", "area": "holding", "address": 36031, "type": "int32", "unit": "var"},
    {"name": "Meter total reactive power", "group": "Meter", "area": "holding", "address": 36033, "type": "int32", "unit": "var"},
    {"name": "Meter apparent power R", "group": "Meter", "area": "holding", "address": 36035, "type": "int32", "unit": "VA"},
    {"name": "Meter apparent power S", "group": "Meter", "area": "holding", "address": 36037, "type": "int32", "unit": "VA"},
    {"name": "Meter apparent power T", "group": "Meter", "area": "holding", "address": 36039, "type": "int32", "unit": "VA"},
    {"name": "Meter total apparent power", "group": "Meter", "area": "holding", "address": 36041, "type": "int32", "unit": "VA"},
    {"name": "Meter CT2 active power", "group": "Meter", "area": "holding", "address": 36045, "type": "int32", "description": "AC-coupled inverters only: power of the PV inverter", "unit": "W"},
    {"name": "Meter voltage R", "group": "Meter", "area": "holding", "address": 36052, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "Meter voltage S", "group": "Meter", "area": "holding", "address": 36053, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "Meter voltage T", "group": "Meter", "area": "holding", "address": 36054, "type": "uint16", "scale": 0.1, "unit": "V"},
    {"name": "Meter current R", "group": "Meter", "area": "holding", "address": 36055, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "Meter current S", "group": "Meter", "area": "holding", "address": 36056, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "Meter current T", "group": "Meter", "area": "holding", "address": 36057, "type": "uint16", "scale": 0.1, "unit": "A"},
    {"name": "Meter total active power (36133)", "group": "Meter", "area": "holding", "address": 36133, "type": "int32", "unit": "W"},
    {"name": "Max BMS charge current", "group": "BMS", "area": "holding", "address": 37004, "type": "uint16", "unit": "A"},
    {"name": "Max BMS discharge current", "group": "BMS", "area": "holding", "address": 37005, "type": "uint16", "unit": "A"},
    {"name": "BMS1 SOC", "group": "BMS", "area": "holding", "address": 37007, "type": "uint16", "unit": "%"},
    {"name": "BMS1 SOH", "group": "BMS", "area": "holding", "address": 37008, "type": "uint16", "unit": "%"},
    {"name": "BMS1 rated capacity", "group": "BMS", "area": "holding", "address": 37076, "type": "uint16", "description": "GoodWe batteries only", "scale": 0.1, "unit": "kWh"},
    {"name": "BMS1 battery power", "group": "BMS", "area": "holding", "address": 37080, "type": "uint32", "description": "GoodWe batteries only", "unit": "W"},
    {"name": "BMS2 SOC", "group": "BMS", "area": "holding", "address": 39005, "type": "uint16", "unit": "%"},
    {"name": "BMS2 SOH", "group": "BMS", "area": "holding", "address": 39006, "type": "uint16", "unit": "%"},
    {"name": "BMS2 rated capacity", "group": "BMS", "area": "holding", "address": 39074, "type": "uint16", "description": "GoodWe batteries only", "scale": 0.1, "unit": "kWh"},
    {"name": "BMS2 battery power", "group": "BMS", "area": "holding", "address": 39078, "type": "uint32", "description": "GoodWe batteries only", "unit": "W"},
    {"name": "EMS power mode", "group": "EMS control", "area": "holding", "address": 42000, "type": "uint16", "enum": {"0x00FF": "Stopped", "0x0001": "Auto (self-use)", "0x0002": "Charge-PV", "0x0003": "Discharge+PV", "0x0004": "Import-AC", "0x0005": "Export-AC", "0x0006": "Conserve", "0x0007": "Off-grid", "0x0008": "Battery standby", "0x0009": "Buy power", "0x000A": "Sell power", "0x000B": "Charge-BAT", "0x000C": "Discharge-BAT"}, "description": "Write every second; UNIQ/ESG2/ET30/ETG2/ET50/ET100/ETR125/ETLV/ESLD/ESA/EOG2/ESG3/ETG3", "access": "RW"},
    {"name": "EMS power set", "group": "EMS control", "area": "holding", "address": 42001, "type": "uint32", "description": "Xmax / Xset of the EMS mode; write every second; UNIQ/ESG2/ET30/ETG2/ET50/ET100/ETR125/ETLV/ESLD/ESA/EOG2/ESG3/ETG3", "access": "RW", "unit": "W"},
    {"name": "Export power limit enable", "group": "EMS control", "area": "holding", "address": 42003, "type": "uint16", "enum": {"0": "Disabled", "1": "Enabled"}, "description": "UNIQ/ESG2/ET30/ETG2/ET50/ET100/ETR125/ETLV/ESLD/ESA/EOG2/ESG3/ETG3", "access": "RW"},
    {"name": "Export power limit", "group": "EMS control", "area": "holding", "address": 42004, "type": "int32", "description": "For units above 30 kW or in parallel; UNIQ/ESG2/ET30/ETG2/ET50/ET100/ETR125/ETLV/ESLD/ESA/EOG2/ESG3/ETG3", "access": "RW", "unit": "W"},
    {"name": "Three-phase unbalanced output", "group": "Settings", "area": "holding", "address": 45264, "type": "uint16", "enum": {"0": "Disabled", "1": "Enabled"}, "description": "Needs a full power cycle after enabling", "access": "RW"},
    {"name": "Battery1 capacity", "group": "Battery settings", "area": "holding", "address": 45350, "type": "uint16", "write_min": 25, "write_max": 2000, "access": "RW", "unit": "Ah"},
    {"name": "Battery1 strings setting", "group": "Battery settings", "area": "holding", "address": 45351, "type": "uint16", "write_min": 4, "write_max": 12, "access": "RW"},
    {"name": "Battery1 charge voltage max", "group": "Battery settings", "area": "holding", "address": 45352, "type": "uint16", "write_min": 40, "write_max": 720, "access": "RW", "scale": 0.1, "unit": "V"},
    {"name": "Battery1 charge current max", "group": "Battery settings", "area": "holding", "address": 45353, "type": "uint16", "write_min": 0, "write_max": 300, "description": "Inverter-side limit; the BMS limit still applies", "access": "RW", "scale": 0.1, "unit": "A"},
    {"name": "Battery1 discharge current max", "group": "Battery settings", "area": "holding", "address": 45355, "type": "uint16", "write_min": 0, "write_max": 300, "description": "Inverter-side limit; the BMS limit still applies", "access": "RW", "scale": 0.1, "unit": "A"},
    {"name": "Battery1 SOC under min", "group": "Battery settings", "area": "holding", "address": 45356, "type": "uint16", "write_min": 0, "write_max": 100, "access": "RW", "unit": "%"},
    {"name": "Battery1 offline SOC under min", "group": "Battery settings", "area": "holding", "address": 45358, "type": "uint16", "write_min": 0, "write_max": 100, "access": "RW", "unit": "%"},
    {"name": "Battery2 charge voltage max", "group": "Battery settings", "area": "holding", "address": 45377, "type": "uint16", "write_min": 200, "write_max": 720, "access": "RW", "scale": 0.1, "unit": "V"},
    {"name": "Battery2 charge current max", "group": "Battery settings", "area": "holding", "address": 45378, "type": "uint16", "write_min": 0, "write_max": 100, "access": "RW", "scale": 0.1, "unit": "A"},
    {"name": "Battery2 discharge current max", "group": "Battery settings", "area": "holding", "address": 45380, "type": "uint16", "write_min": 0, "write_max": 100, "access": "RW", "scale": 0.1, "unit": "A"},
    {"name": "Battery2 SOC under min", "group": "Battery settings", "area": "holding", "address": 45381, "type": "uint16", "write_min": 0, "write_max": 100, "access": "RW", "unit": "%"},
    {"name": "Battery2 offline SOC under min", "group": "Battery settings", "area": "holding", "address": 45383, "type": "uint16", "write_min": 0, "write_max": 100, "access": "RW", "unit": "%"},
    {"name": "EMS fallback mode", "group": "EMS control", "area": "holding", "address": 47505, "type": "uint16", "enum": {"2": "Shut down", "3": "Self-use", "10": "Keep last mode"}, "description": "What the inverter does when no EMS command (47511) arrives for 30 s; default 10", "access": "RW"},
    {"name": "Export power limit enable (47509)", "group": "EMS control", "area": "holding", "address": 47509, "type": "uint16", "enum": {"0": "Disabled", "1": "Enabled"}, "access": "RW"},
    {"name": "Export power limit (47510)", "group": "EMS control", "area": "holding", "address": 47510, "type": "int16", "write_min": -30000, "write_max": 30000, "access": "RW", "unit": "W"},
    {"name": "EMS power mode (47511)", "group": "EMS control", "area": "holding", "address": 47511, "type": "uint16", "enum": {"0x00FF": "Stopped", "0x0001": "Auto (self-use)", "0x0002": "Charge-PV", "0x0003": "Discharge+PV", "0x0004": "Import-AC", "0x0005": "Export-AC", "0x0006": "Conserve", "0x0007": "Off-grid", "0x0008": "Battery standby", "0x0009": "Buy power", "0x000A": "Sell power", "0x000B": "Charge-BAT", "0x000C": "Discharge-BAT"}, "description": "Write every second; ETG1/EH/EHB/AEB and the newer models", "access": "RW"},
    {"name": "EMS power set (47512)", "group": "EMS control", "area": "holding", "address": 47512, "type": "uint16", "description": "Write every second; ETG1/EH/EHB/AEB and the newer models", "access": "RW", "unit": "W"},
    {"name": "Start charge SOC", "group": "Battery settings", "area": "holding", "address": 47531, "type": "uint16", "description": "Inverter-side force charge start; default 5%", "access": "RW", "scale": 0.1, "unit": "%"},
    {"name": "Stop charge SOC", "group": "Battery settings", "area": "holding", "address": 47532, "type": "uint16", "description": "Inverter-side force charge stop; default 10%", "access": "RW", "scale": 0.1, "unit": "%"},
    {"name": "Three-phase export power limit enable", "group": "EMS control", "area": "holding", "address": 47534, "type": "uint16", "enum": {"0": "Disabled", "1": "Enabled"}, "access": "RW"},
    {"name": "R phase export power limit", "group": "EMS control", "area": "holding", "address": 47535, "type": "int16", "write_min": -30000, "write_max": 30000, "access": "RW", "unit": "W"},
    {"name": "S phase export power limit", "group": "EMS control", "area": "holding", "address": 47536, "type": "int16", "write_min": -30000, "write_max": 30000, "access": "RW", "unit": "W"},
    {"name": "T phase export power limit", "group": "EMS control", "area": "holding", "address": 47537, "type": "int16", "write_min": -30000, "write_max": 30000, "access": "RW", "unit": "W"},
    {"name": "Fast charge enable", "group": "Battery settings", "area": "holding", "address": 47545, "type": "uint16", "enum": {"0": "Disabled", "1": "Enabled"}, "access": "RW"},
    {"name": "Fast charge stop SOC", "group": "Battery settings", "area": "holding", "address": 47546, "type": "uint16", "write_min": 1, "write_max": 100, "access": "RW", "unit": "%"},
    {"name": "Fast charge power percent", "group": "Battery settings", "area": "holding", "address": 47603, "type": "uint16", "write_min": 0, "write_max": 100, "description": "Allowed grid charge power; default 100", "access": "RW", "unit": "%"},
    {"name": "Max BMS1 charge current", "group": "BMS control", "area": "holding", "address": 47903, "type": "uint16", "description": "Real-time limit set by the EMS", "access": "RW", "unit": "A"},
    {"name": "Max BMS1 discharge current", "group": "BMS control", "area": "holding", "address": 47905, "type": "uint16", "description": "Real-time limit set by the EMS", "access": "RW", "unit": "A"},
    {"name": "BMS1 communication loss disable", "group": "BMS control", "area": "holding", "address": 47916, "type": "uint16", "description": "Set to 1 when the EMS sets the BMS limits", "access": "RW"},
    {"name": "Max BMS2 charge current", "group": "BMS control", "area": "holding", "address": 47921, "type": "uint16", "access": "RW", "unit": "A"},
    {"name": "Max BMS2 discharge current", "group": "BMS control", "area": "holding", "address": 47923, "type": "uint16", "access": "RW", "unit": "A"},
    {"name": "BMS2 communication loss disable", "group": "BMS control", "area": "holding", "address": 47934, "type": "uint16", "description": "Set to 1 when the EMS sets the BMS limits", "access": "RW"}
  ]
}
