{ "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json", "mbmap": 2, "vendor": "Huawei", "model": "SUN2000", "models": ["SUN2000"], "vendor_website": "solar.huawei.com", "description": "Grid-tied PV inverters (SUN2000-xKTL-L0/M0/M1/M2/M3/H series): nameplate, PV strings, grid, power, energy and alarms", "revision": 3, "revised": "2026-11-10", "source": "Huawei, \"Solar Inverter Modbus Interface Definitions (V3.0)\", Issue 01 (2023-01-17)", "sources": [ {"title": "Solar Inverter Modbus Interface Definitions", "version": "V3.0, Issue 01", "date": "2023-01-17"} ], "notes": [ "Huawei SUN2000 grid-tied solar inverters (residential L0/L1/M0/M1 and commercial M2/M3/H/KTL ranges).", "Core read-only registers from the \"Solar Inverter Modbus Interface Definitions (V3.0)\" list.", "RTU over RS485/MBUS, or TCP (port 502) through the WLAN/FE/4G interface or a dongle. Registers are read with FC03.", "The document gives no factory serial settings or default unit id; check them on the inverter or app.", "Registers a model does not have return an exception or 0." ], "protocol": "tcp+rtu", "unit_id": 1, "port": 502, "byte_order": "big", "word_order": "big", "address_base": 0, "x_status": "official", "registers": [ {"name": "Model name", "group": "Info", "area": "holding", "address": 30000, "type": "string", "length": 15, "access": "R"}, {"name": "Serial number", "group": "Info", "area": "holding", "address": 30015, "type": "string", "length": 10, "access": "R", "role": "serial"}, {"name": "Product code", "group": "Info", "area": "holding", "address": 30025, "type": "string", "length": 10, "access": "R"}, {"name": "Firmware version", "group": "Info", "area": "holding", "address": 30035, "type": "string", "length": 15, "access": "R", "role": "firmware"}, {"name": "Software version", "group": "Info", "area": "holding", "address": 30050, "type": "string", "length": 15, "access": "R"}, {"name": "Modbus protocol version", "group": "Info", "area": "holding", "address": 30068, "type": "uint32", "access": "R", "description": "High word major, low word revision"}, {"name": "Model ID", "group": "Info", "area": "holding", "address": 30070, "type": "uint16", "access": "R"}, {"name": "Number of PV strings", "group": "Info", "area": "holding", "address": 30071, "type": "uint16", "access": "R"}, {"name": "Number of MPPTs", "group": "Info", "area": "holding", "address": 30072, "type": "uint16", "access": "R"}, {"name": "Rated power", "group": "Info", "area": "holding", "address": 30073, "type": "uint32", "scale": 0.001, "unit": "kW", "access": "R"}, {"name": "Maximum active power", "group": "Info", "area": "holding", "address": 30075, "type": "uint32", "scale": 0.001, "unit": "kW", "access": "R"}, {"name": "Maximum apparent power", "group": "Info", "area": "holding", "address": 30077, "type": "uint32", "scale": 0.001, "unit": "kVA", "access": "R"}, {"name": "PV1 voltage", "group": "PV strings", "area": "holding", "address": 32016, "type": "int16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "PV1 current", "group": "PV strings", "area": "holding", "address": 32017, "type": "int16", "scale": 0.01, "unit": "A", "access": "R"}, {"name": "PV2 voltage", "group": "PV strings", "area": "holding", "address": 32018, "type": "int16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "PV2 current", "group": "PV strings", "area": "holding", "address": 32019, "type": "int16", "scale": 0.01, "unit": "A", "access": "R"}, {"name": "PV3 voltage", "group": "PV strings", "area": "holding", "address": 32020, "type": "int16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "PV3 current", "group": "PV strings", "area": "holding", "address": 32021, "type": "int16", "scale": 0.01, "unit": "A", "access": "R"}, {"name": "PV4 voltage", "group": "PV strings", "area": "holding", "address": 32022, "type": "int16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "PV4 current", "group": "PV strings", "area": "holding", "address": 32023, "type": "int16", "scale": 0.01, "unit": "A", "access": "R"}, {"name": "PV5 voltage", "group": "PV strings", "area": "holding", "address": 32024, "type": "int16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "PV5 current", "group": "PV strings", "area": "holding", "address": 32025, "type": "int16", "scale": 0.01, "unit": "A", "access": "R"}, {"name": "PV6 voltage", "group": "PV strings", "area": "holding", "address": 32026, "type": "int16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "PV6 current", "group": "PV strings", "area": "holding", "address": 32027, "type": "int16", "scale": 0.01, "unit": "A", "access": "R"}, {"name": "PV7 voltage", "group": "PV strings", "area": "holding", "address": 32028, "type": "int16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "PV7 current", "group": "PV strings", "area": "holding", "address": 32029, "type": "int16", "scale": 0.01, "unit": "A", "access": "R"}, {"name": "PV8 voltage", "group": "PV strings", "area": "holding", "address": 32030, "type": "int16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "PV8 current", "group": "PV strings", "area": "holding", "address": 32031, "type": "int16", "scale": 0.01, "unit": "A", "access": "R"}, {"name": "PV9 voltage", "group": "PV strings", "area": "holding", "address": 32032, "type": "int16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "PV9 current", "group": "PV strings", "area": "holding", "address": 32033, "type": "int16", "scale": 0.01, "unit": "A", "access": "R"}, {"name": "PV10 voltage", "group": "PV strings", "area": "holding", "address": 32034, "type": "int16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "PV10 current", "group": "PV strings", "area": "holding", "address": 32035, "type": "int16", "scale": 0.01, "unit": "A", "access": "R"}, {"name": "PV11 voltage", "group": "PV strings", "area": "holding", "address": 32036, "type": "int16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "PV11 current", "group": "PV strings", "area": "holding", "address": 32037, "type": "int16", "scale": 0.01, "unit": "A", "access": "R"}, {"name": "PV12 voltage", "group": "PV strings", "area": "holding", "address": 32038, "type": "int16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "PV12 current", "group": "PV strings", "area": "holding", "address": 32039, "type": "int16", "scale": 0.01, "unit": "A", "access": "R"}, {"name": "PV13 voltage", "group": "PV strings", "area": "holding", "address": 32040, "type": "int16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "PV13 current", "group": "PV strings", "area": "holding", "address": 32041, "type": "int16", "scale": 0.01, "unit": "A", "access": "R"}, {"name": "PV14 voltage", "group": "PV strings", "area": "holding", "address": 32042, "type": "int16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "PV14 current", "group": "PV strings", "area": "holding", "address": 32043, "type": "int16", "scale": 0.01, "unit": "A", "access": "R"}, {"name": "PV15 voltage", "group": "PV strings", "area": "holding", "address": 32044, "type": "int16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "PV15 current", "group": "PV strings", "area": "holding", "address": 32045, "type": "int16", "scale": 0.01, "unit": "A", "access": "R"}, {"name": "PV16 voltage", "group": "PV strings", "area": "holding", "address": 32046, "type": "int16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "PV16 current", "group": "PV strings", "area": "holding", "address": 32047, "type": "int16", "scale": 0.01, "unit": "A", "access": "R"}, {"name": "PV17 voltage", "group": "PV strings", "area": "holding", "address": 32048, "type": "int16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "PV17 current", "group": "PV strings", "area": "holding", "address": 32049, "type": "int16", "scale": 0.01, "unit": "A", "access": "R"}, {"name": "PV18 voltage", "group": "PV strings", "area": "holding", "address": 32050, "type": "int16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "PV18 current", "group": "PV strings", "area": "holding", "address": 32051, "type": "int16", "scale": 0.01, "unit": "A", "access": "R"}, {"name": "PV19 voltage", "group": "PV strings", "area": "holding", "address": 32052, "type": "int16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "PV19 current", "group": "PV strings", "area": "holding", "address": 32053, "type": "int16", "scale": 0.01, "unit": "A", "access": "R"}, {"name": "PV20 voltage", "group": "PV strings", "area": "holding", "address": 32054, "type": "int16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "PV20 current", "group": "PV strings", "area": "holding", "address": 32055, "type": "int16", "scale": 0.01, "unit": "A", "access": "R"}, {"name": "DC input power", "group": "Power", "area": "holding", "address": 32064, "type": "int32", "scale": 0.001, "unit": "kW", "access": "R", "description": "Sum of all PV strings"}, {"name": "Grid voltage L1-L2", "group": "Grid", "area": "holding", "address": 32066, "type": "uint16", "scale": 0.1, "unit": "V", "access": "R", "description": "Grid voltage on single-phase models"}, {"name": "Grid voltage L2-L3", "group": "Grid", "area": "holding", "address": 32067, "type": "uint16", "scale": 0.1, "unit": "V", "access": "R", "description": "Three-phase only"}, {"name": "Grid voltage L3-L1", "group": "Grid", "area": "holding", "address": 32068, "type": "uint16", "scale": 0.1, "unit": "V", "access": "R", "description": "Three-phase only"}, {"name": "Grid voltage L1-N", "group": "Grid", "area": "holding", "address": 32069, "type": "uint16", "scale": 0.1, "unit": "V", "access": "R", "description": "Not valid in L/N output mode"}, {"name": "Grid voltage L2-N", "group": "Grid", "area": "holding", "address": 32070, "type": "uint16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "Grid voltage L3-N", "group": "Grid", "area": "holding", "address": 32071, "type": "uint16", "scale": 0.1, "unit": "V", "access": "R", "description": "Three-phase only"}, {"name": "Grid current L1", "group": "Grid", "area": "holding", "address": 32072, "type": "int32", "scale": 0.001, "unit": "A", "access": "R", "description": "Grid current on single-phase models"}, {"name": "Grid current L2", "group": "Grid", "area": "holding", "address": 32074, "type": "int32", "scale": 0.001, "unit": "A", "access": "R", "description": "Three-phase only"}, {"name": "Grid current L3", "group": "Grid", "area": "holding", "address": 32076, "type": "int32", "scale": 0.001, "unit": "A", "access": "R", "description": "Three-phase only"}, {"name": "Peak active power today", "group": "Power", "area": "holding", "address": 32078, "type": "int32", "scale": 0.001, "unit": "kW", "access": "R"}, {"name": "Active power", "group": "Power", "area": "holding", "address": 32080, "type": "int32", "scale": 0.001, "unit": "kW", "access": "R", "description": "AC output"}, {"name": "Reactive power", "group": "Power", "area": "holding", "address": 32082, "type": "int32", "scale": 0.001, "unit": "kvar", "access": "R"}, {"name": "Power factor", "group": "Power", "area": "holding", "address": 32084, "type": "int16", "scale": 0.001, "access": "R"}, {"name": "Grid frequency", "group": "Grid", "area": "holding", "address": 32085, "type": "uint16", "scale": 0.01, "unit": "Hz", "access": "R"}, {"name": "Efficiency", "group": "Power", "area": "holding", "address": 32086, "type": "uint16", "scale": 0.01, "unit": "%", "access": "R"}, {"name": "Internal temperature", "group": "Status", "area": "holding", "address": 32087, "type": "int16", "scale": 0.1, "unit": "°C", "access": "R"}, {"name": "Insulation resistance", "group": "Status", "area": "holding", "address": 32088, "type": "uint16", "scale": 0.001, "unit": "MΩ", "access": "R"}, {"name": "Device status", "group": "Status", "area": "holding", "address": 32089, "type": "uint16", "access": "R", "description": "Status code; see Huawei key signal description"}, {"name": "Fault code", "group": "Status", "area": "holding", "address": 32090, "type": "uint16", "access": "R", "description": "Highest-priority active alarm"}, {"name": "Startup time", "group": "Status", "area": "holding", "address": 32091, "type": "uint32", "unit": "s", "access": "R", "description": "Epoch seconds"}, {"name": "Shutdown time", "group": "Status", "area": "holding", "address": 32093, "type": "uint32", "unit": "s", "access": "R", "description": "Epoch seconds"}, {"name": "Active power (fast)", "group": "Power", "area": "holding", "address": 32095, "type": "int32", "scale": 0.001, "unit": "kW", "access": "R", "description": "Unfiltered value for storage control"}, {"name": "Total energy yield", "group": "Energy", "area": "holding", "address": 32106, "type": "uint32", "scale": 0.01, "unit": "kWh", "access": "R"}, {"name": "Total DC input energy", "group": "Energy", "area": "holding", "address": 32108, "type": "uint32", "scale": 0.01, "unit": "kWh", "access": "R"}, {"name": "Energy yield this hour", "group": "Energy", "area": "holding", "address": 32112, "type": "uint32", "scale": 0.01, "unit": "kWh", "access": "R"}, {"name": "Daily energy yield", "group": "Energy", "area": "holding", "address": 32114, "type": "uint32", "scale": 0.01, "unit": "kWh", "access": "R"}, {"name": "Energy yield this month", "group": "Energy", "area": "holding", "address": 32116, "type": "uint32", "scale": 0.01, "unit": "kWh", "access": "R"}, {"name": "Energy yield this year", "group": "Energy", "area": "holding", "address": 32118, "type": "uint32", "scale": 0.01, "unit": "kWh", "access": "R"}, {"name": "Critical alarms", "group": "Alarms", "area": "holding", "address": 32151, "type": "uint16", "access": "R"}, {"name": "Major alarms", "group": "Alarms", "area": "holding", "address": 32152, "type": "uint16", "access": "R"}, {"name": "Minor alarms", "group": "Alarms", "area": "holding", "address": 32153, "type": "uint16", "access": "R"}, {"name": "Warnings", "group": "Alarms", "area": "holding", "address": 32154, "type": "uint16", "access": "R"}, {"name": "Energy yield previous hour", "group": "Energy", "area": "holding", "address": 32158, "type": "uint32", "scale": 0.01, "unit": "kWh", "access": "R"}, {"name": "Energy yield previous day", "group": "Energy", "area": "holding", "address": 32162, "type": "uint32", "scale": 0.01, "unit": "kWh", "access": "R"}, {"name": "Energy yield previous month", "group": "Energy", "area": "holding", "address": 32166, "type": "uint32", "scale": 0.01, "unit": "kWh", "access": "R"}, {"name": "Energy yield previous year", "group": "Energy", "area": "holding", "address": 32170, "type": "uint32", "scale": 0.01, "unit": "kWh", "access": "R"} ] }