verified connector library

Huawei SUN2000 inverter

Register map(s) for this device, each at the trust rung it earned. Addresses are 0-based as on the wire. Word order and scaling are confirmed at the hardware-verified rung and at no rung below it.

interop-verified

Read + decoded cleanly over a real network vs an independent third-party Modbus test server (transport and framing; reads are remapped into the server's register window, so the map's own addresses are NOT exercised). Does NOT prove word order/scaling against the actual device.

pointaddress (0-based)typescaleunit
model_id30070U161
pv_string_count30071U161
mppt_count30072U161
rated_power30073U32BE0.001kW
max_active_power30075U32BE0.001kW
max_apparent_power30077U32BE0.001kVA
pv1_voltage32016I160.1
pv1_current32017I160.01
pv2_voltage32018I160.1
pv2_current32019I160.01
pv3_voltage32020I160.1
pv3_current32021I160.01
pv4_voltage32022I160.1
pv4_current32023I160.01
input_power32064U32BE0.001
grid_voltage_ab32066U160.1
grid_voltage_bc32067U160.1
grid_voltage_ca32068U160.1
phase_a_voltage32069U160.1
phase_b_voltage32070U160.1
phase_c_voltage32071U160.1
phase_a_current32072U32BE0.001
phase_b_current32074U32BE0.001
phase_c_current32076U32BE0.001
active_power32080U32BE0.001
reactive_power32082U32BE0.001
power_factor32084I160.001
grid_frequency32085U160.01Hz
efficiency32086U160.01%
internal_temperature32087I160.1°C
insulation_resistance32088U160.001
device_status32089U161
accumulated_energy_yield32106U32BE0.01kWh
daily_energy_yield32114U32BE0.01kWh

link settings as documented (unverified): RTU/TCP; unit ID 0; FC 03,06,16,43,65; Modbus-TCP uses port 6607 by default. Slave address range is 1-247 for RTU, and 0 is used by default for TCP to access the directly connected slave node.

bench facts as documented (unverified)
wiring notesSupports physical media such as MBUS, RS485, WLAN, FE, and 4G.
max registers/read125
broadcastsupported
protocol notesIf the exception code is 0x06, resend the request after 10 seconds. A request can be resent for no more than six times.
model register30000
serial register30015
firmware register31025
identification notesManufacturer name: HUAWEI, Product code: SUN2000
FC 43 device IDsupported
doc revisionIssue 08, Date 2024-11-07
firmware applicabilitySUN2000MA V100R001C00SPC166
field reports — community-sourced, unverified (checked 2026-06-11)
  • Modbus TCP communication via the Smart Dongle (SDongleA-05) is highly unstable if polled too frequently; developers recommend a polling interval of at least 5 seconds and a timeout of at least 2-3 seconds to avoid timeout errors. [source]
  • When using the Smart Dongle (SDongleA-05) for Modbus TCP, the default Slave ID is 1, whereas connecting directly to the inverter's built-in Wi-Fi AP uses Slave ID 0 on port 6607. [source]
  • Modbus RTU communication over RS-485 can become unstable or fail with CRC errors if the WLAN Smart Dongle is simultaneously communicating with cloud servers; Huawei recommends disconnecting the dongle when using Modbus RTU. [source]
  • Modbus TCP connection on port 502 via the Smart Dongle can fail to establish or drop immediately during initial register reads (such as register 30000) if another active Modbus client session is open or if the connection is not properly unrestricted in the FusionSolar settings. [source]
  • confirmed: doc_revision: Issue 08, Date 2024-11-07 — confirmed by ioBroker-Forum thread for SUN2000MA V100R001C00SPC166 Modbus Interface Definitions [2.1.1]
  • confirmed: firmware_applicability: SUN2000MA V100R001C00SPC166 — confirmed by the document title and ioBroker-Forum thread
  • confirmed: comms defaults: Modbus-TCP uses port 6607 by default, slave address range is 1-247 for RTU, and 0 is used by default for TCP to access the directly connected slave node — confirmed by the 'Overview of the Communications Protocol' section in the Modbus Interface Definitions
  • confirmed: function_codes: [3, 6, 16, 43, 65] — confirmed by the 'Function Code List' (0x03, 0x06, 0x10) and sections for 'Read Device Identification (0x2B / 43)' and 'Querying a Device List / Uploading Data (0x41 / 65)'
  • confirmed: identification registers: model_register 30000, serial_register 30015, firmware_register 31025 — confirmed by the 'Register Definitions' table
  • confirmed: physical media: MBUS, RS485, WLAN, FE, and 4G — confirmed by the 'Physical Layer' section of the Modbus Interface Definitions
  • confirmed: quirks: broadcast_supported is true, max_read_registers is 125, and exception code 0x06 retry logic (resend after 10 seconds, max 6 times) — confirmed by the 'Overview of the Communications Protocol' and 'Reading Registers (0x03)' sections
  • confirmed: register map: model_id @ 30070, pv_string_count @ 30071, mppt_count @ 30072, rated_power @ 30073, max_active_power @ 30075, max_apparent_power @ 30077, pv1_voltage @ 32016, pv1_current @ 32017, pv2_voltage @ 32018, pv2_current @ 32019, pv3_voltage @ 32020, pv3_current @ 32021, pv4_voltage @ 32022, pv4_current @ 32023, input_power @ 32064, grid_voltage_ab @ 32066, grid_voltage_bc @ 32067, grid_voltage_ca @ 32068, phase_a_voltage @ 32069, phase_b_voltage @ 32070, phase_c_voltage @ 32071, phase_a_current @ 32072, phase_b_current @ 32074, phase_c_current @ 32076, active_power @ 32080, reactive_power @ 32082, power_factor @ 32084, grid_frequency @ 32085, efficiency @ 32086, internal_temperature @ 32087, insulation_resistance @ 32088, device_status @ 32089, accumulated_energy_yield @ 32106, daily_energy_yield @ 32114 — confirmed by the 'Register Definitions' table

The trust ladder

Each rung states what it proved and what it did not. Gray until proven; green is earned by hardware only.

If your device isn't here, upload its register map. Generation is free, and the connector keeps the rung it earns under testing.

To prove a connector against your own device, order hardware verification. If it doesn't verify, you don't pay.

Platform builders can license the verified library: machine-readable maps, the firmware matrix, API access.