Huawei SUN2000 Modbus Register Map

How to read a Huawei SUN2000 inverter directly over Modbus TCP or RS485 — through the SDongle, the inverter's own network port, or the RS485 terminals. Connection settings, the registers that matter for monitoring, their gains and data types, the power meter and battery registers, and the mistakes that make a SUN2000 return exceptions or nonsense. Behind a SmartLogger the registers are remapped — for that case see the SmartLogger guide. Other inverters: Sungrow.

ModbusManager Pro dashboard for a Huawei SUN2000-10KTL inverter: active power gauge 7.9 kW, status On-grid, today's and total yield, grid export, efficiency, PV1 and PV2 voltage and current, and a trend of DC input against AC output
The free workspace below, reading a simulated SUN2000-10KTL-M1 with the register map on this page. Every value is a scaled register tag.

Connection Settings

A SUN2000 can be reached three ways, and they do not use the same port or unit ID. Most "no response" problems are one of these two numbers.

PathProtocol / portUnit IDNotes
SDongleA-05 (WLAN-FE dongle)Modbus TCP, 5021–247 = the inverter's RS485 address (usually 1); 100 = the dongleModbus TCP must be enabled first (below). One client at a time.
Inverter's built-in WLAN / FE portModbus TCP, 502 or 66070 (default for the directly connected device)Huawei's documents differ on the port by issue and firmware — try 502, then 6607.
RS485 terminalsModbus RTUthe inverter's RS485 addressCommonly 9600 baud, 8N1, address 1 — settable on the inverter. Huawei's Modbus document does not state the defaults; check the inverter's settings.
Behind a SmartLoggerModbus TCP / RTU0Different, remapped register map — see the SmartLogger guide.
Unit ID 0 vs 1: Huawei's interface definition says unit ID 0 addresses the directly connected device by default. Many SUN2000s also answer on 1. Through an SDongle, use the inverter's RS485 address — 100 reaches the dongle's own registers, not the inverter. If one ID times out, try the other before suspecting the wiring.

Enabling Modbus TCP on the SDongle

Out of the box the SDongleA-05 does not accept Modbus TCP. Huawei's SDongleA-05 Modbus TCP Guide describes the switch:

1 In the FusionSolar app (formerly SUN2000 app), connect to the inverter and log in as installer.

2 Open Settings › Communication configuration › Dongle parameter settings › Modbus-TCP.

3 Choose Enable (Unrestricted) to allow any client on the LAN, or Enable (Restricted) to allow a single trusted IP address.

One client at a time. Even in Unrestricted mode the dongle serves only one Modbus TCP client at a time. If a home-automation system, an EMS or a second logger is already polling, your connection is refused or dropped — stop the other poller first. The guide also lists minimum firmware for the option to appear (e.g. SDongleA-05 V100R001C00SPC124, SUN2000MA V100R001C00SPC139); update the dongle and inverter if the menu item is missing.

Addressing, Data Types and Gains

Key Registers

From Huawei's Modbus Interface Definitions (inverter equipment registers). All read with FC03.

Nameplate

RegisterParameterTypeGainUnit
30000Model name (15 registers)STR——
30015Serial number (10 registers)STR——
30070Model IDU161—
30071Number of PV stringsU161—
30072Number of MPP trackersU161—
30073Rated power (Pn)U32÷1000kW
30075Maximum active power (Pmax)U32÷1000kW

PV input

RegisterParameterTypeGainUnit
32016PV1 voltageI16÷10V
32017PV1 currentI16÷100A
32018PV2 voltageI16÷10V
32019PV2 currentI16÷100A
32064Input power (DC)I32÷1000kW

Further strings follow the pattern PVn voltage = 32014 + 2n, current = 32015 + 2n; register 30071 tells you how many there are.

AC output and grid

RegisterParameterTypeGainUnit
32066 / 67 / 68Line voltage A-B / B-C / C-AU16÷10V
32069 / 70 / 71Phase voltage A / B / CU16÷10V
32072 / 74 / 76Phase current A / B / CI32÷1000A
32078Peak active power todayI32÷1000kW
32080Active powerI32÷1000kW
32082Reactive powerI32÷1000kvar
32084Power factorI16÷1000—
32085Grid frequencyU16÷100Hz
32086EfficiencyU16÷100%
32087Internal temperatureI16÷10°C
32088Insulation resistanceU16÷1000MΩ

On single-phase models the phase B/C and line-voltage registers are not valid; phase A carries the grid voltage and current.

Energy, status and alarms

RegisterParameterTypeGainUnit
32106Accumulated energy yieldU32÷100kWh
32114Daily energy yieldU32÷100kWh
32089Device status (table below)U16enum—
32090Fault codeU161—
32000State 1 (bit 1 grid-connected, bit 2 normal, bits 3–4 derating, bit 6 fault stop)Bitfield16——
32008 / 09 / 10Alarm 1 / 2 / 3 (one bit per alarm)Bitfield16——

Device Status Values (32089)

Value (hex)DecimalMeaning
0x0000–0x00030–3Standby (initialisation and pre-start checks)
0x0100256Starting
0x0200512On-grid
0x0201513On-grid, power limited
0x0202514On-grid, self-derating
0x0203515Off-grid running
0x0300768Shutdown: fault
0x0301769Shutdown: command
0x0302–0x0308770–776Shutdown: other causes
0x0401–0x04051025–1029Grid scheduling
0x06001536Inspecting
0x07001792AFCI self-check
0x08002048I-V scanning
0x09002304DC input detection
0xA00040960Standby: no irradiation (night)

Power Meter Registers (DTSU666-H)

When a Huawei smart meter is connected to the inverter, its readings are available from the inverter itself:

RegisterParameterTypeGainUnit
37100Meter status (0 offline, 1 normal)U161—
37101 / 03 / 05Phase voltage A / B / CI32÷10V
37107 / 09 / 11Phase current A / B / CI32÷100A
37113Active power: >0 export to grid, <0 importI321W
37115Reactive powerI321var
37117Power factorI16÷1000—
37118Grid frequencyI16÷100Hz
37119Energy exported to gridI32÷100kWh
37121Energy imported from gridI32÷100kWh
37132 / 34 / 36Phase active power A / B / C (same sign)I321W
Different units, same page: the inverter's active power 32080 is in kW with a gain of 1000; the meter's 37113 is in plain watts with a gain of 1. And the meter's sign is from the grid's point of view: positive means exporting.

Battery Registers (LUNA2000)

RegisterParameterTypeGainUnit
37760State of charge (SOC)U16÷10%
37762Running status (0 offline, 1 standby, 2 running, 3 fault, 4 sleep)U161—
37765Charge/discharge powerI321W
37780 / 37782Total charged / discharged energyU32÷100kWh
37784 / 37786Charged / discharged todayU32÷100kWh
37758Rated capacityU321Wh

Huawei states the sign for the unit-1 battery power register (37001: positive = charging). The aggregate 37765 carries no sign note in the table; it behaves the same way in practice, but confirm it against a known charge or discharge before you build logic on it.

Writable Control Registers

The SUN2000 accepts power control over Modbus. A few that people use:

RegisterParameterTypeGainUnit
40125Active power derating, percent16-bit÷10%
40126Active power derating, fixed valueU321W
40200 / 40201Power on / shutdown commandU16——
47415Active power control mode (0 unlimited, 5 zero export, 6 export limit kW, 7 export limit %)U16——
47416Maximum feed-in powerI32÷1000kW
Writing changes how the plant runs. Export limits may be a grid-connection requirement; check with the installer before writing, read the value back after writing, and do not write the same setpoint in a fast loop. Huawei lists 40125 as U16 in one issue of the document and I16 in another — the valid range (0–100 %) is the same either way.

Common Mistakes

Step-by-Step: Reading a SUN2000 with ModbusManager

1 Connect — Modbus TCP to the dongle's or inverter's IP address (port 502, or 6607), or Modbus RTU on the RS485 port. Set the slave ID as in the table above.

2 Poll the defined blocks — FC03 windows for 32016 (4 registers), 32064 (32), 32106 (12) and, with a meter, 37100 (38).

3 Make scaled tags (Pro) — a register tag per value with the data type from the tables (I32, U16…) and Scale = 1 ÷ gain: 0.001 for 32080, 0.01 for 32114, 0.1 for 32087. The tag then reads in kW, kWh and °C everywhere — dashboard, trends, alarms, historian — with no script.

4 Build the overview — gauge, value cards, a status lamp on 32089 and a trend, then save the workspace. Or start from the one below.

Download a Ready-Made Workspace

The workspace in the screenshot above, ready to point at your inverter:

Before you connect: the poll windows and tags use slave ID 1. For a direct connection to the inverter's own port change it to 0 if 1 does not answer; behind an SDongle use the inverter's RS485 address. Tags and dashboard are ModbusManager Pro features — Standard opens the poll windows only.

Huawei_SUN2000.json

SUN2000 inverter + DTSU666-H meter workspace. Open via Workspace › Open in ModbusManager Pro.

Download Workspace

Try it with ModbusManager Pro

Scaled tags, dashboard and historian for your inverter. Free 14-day trial. No credit card. Windows 10/11.

Download Pro Trial

Frequently Asked Questions

Which port does the SUN2000 use for Modbus TCP?

Through the SDongleA-05 it is port 502. On the inverter's built-in WLAN/FE port Huawei's documents give 502 in one issue and 6607 in another, depending on firmware; if 502 does not answer, try 6607.

What unit ID should I use?

For a direct connection, 0 (Huawei's default for the directly connected device) — many inverters also answer on 1. Through an SDongle, use the inverter's RS485 address, usually 1; ID 100 is the dongle itself.

Why do I get exception 02 (illegal data address)?

The request covers an address Huawei does not define, and the SUN2000 refuses the whole request. Read the defined blocks separately, e.g. 32064–32095 for the AC values and 32106–32117 for the energy counters.

Can two programs read the inverter at the same time?

Not through the SDongle: it serves one Modbus TCP client at a time, even in Unrestricted mode. Let one program poll and share the values — ModbusManager's gateway can republish them as a Modbus map for other systems.

Is this the same register map as through a SmartLogger?

No. A SmartLogger remaps each inverter into its own address block (51000 + 25 × (N − 1)) on unit 0. Use this page for a direct connection and the SmartLogger guide behind a logger.

Sources

Huawei, SUN2000MA V200R024C00SPC106 Modbus Interface Definitions (V3.0), Issue 06, 2025-06-12 (support.huawei.com, EDOC1100480297), cross-checked register by register with Huawei's generic Solar Inverter Modbus Interface Definitions, Issue 05, 2023-02-16, which covers the wider SUN2000 range; Huawei, SDongleA-05 Modbus TCP Guide, Issue 01, 2021-11-07, and SDongleA Modbus Interface Definitions, Issue 05, 2022-07-06. Register availability differs by model and firmware — check the issue of the document for your inverter before writing.

// beyond one inverter

The inverter plus everything else on site

The SDongle takes one Modbus client. ModbusManager Pro can be that one client — polling the inverter, the meter and any other RS-485 device on site — and republish the values as one Modbus map for the building management system, the EMS or a PLC, so nobody else has to fight for the dongle.

Modbus gateway software →