
The Huawei SUN2000 3-10KTL series are three-phase string inverters for residential PV systems, with rated power from 3 kW to 10 kW. This template connects to the inverter via Modbus RTU over RS-485, using the COM port on the bottom of the inverter. Unlike the TCP variant (which uses a Smart Dongle for network connectivity), the RTU variant communicates directly over a serial RS-485 bus.
The template provides active power monitoring with power control actions, DC input power with grid-side measurements, PV string current and voltage readings, grid power meter (via Smart Power Sensor), battery state of charge, daily and cumulative energy counters, and detailed inverter status with alarm decoding.
Huawei warns that Modbus RTU communication may become unstable when the inverter communicates with cloud servers via the WLAN Smart Dongle. Disconnect the WLAN Smart Dongle before using Modbus RTU to avoid CRC errors and communication failures on the RS-485 bus.
Hardware connection
The SUN2000 inverter has a 16-pin COM port (#8) on the bottom panel. The COM port provides two separate RS-485 buses:
| Bus | Pins | Purpose |
|---|---|---|
| Bus 1 | Pin 1 (485A1-1), Pin 3 (485B1-1) | Cascading inverters, SmartLogger, TapHome connection |
| Bus 2 | Pin 7 (485A2), Pin 9 (485B2) | Smart Power Sensor, energy storage |
For TapHome Modbus RTU connection, use Bus 1:
- Pin 1 (485A1-1) – connect to RS-485 A+ on TapHome controller
- Pin 3 (485B1-1) – connect to RS-485 B- on TapHome controller
- Pin 5 (PE) – shield ground (optional but recommended)
Inverter port locations

The COM port (#8) is located on the bottom panel, next to the AC output port (#7) and the Smart Dongle port (#9).
COM port pinout

| Pin | Definition | Function |
|---|---|---|
| 1 | 485A1-1 | RS-485 A+ (Bus 1) – connect to TapHome A+ |
| 2 | 485A1-2 | RS-485 A+ (Bus 1) – for cascading to next inverter |
| 3 | 485B1-1 | RS-485 B- (Bus 1) – connect to TapHome B- |
| 4 | 485B1-2 | RS-485 B- (Bus 1) – for cascading to next inverter |
| 5 | PE | Shield layer grounding |
| 7 | 485A2 | RS-485 A+ (Bus 2) – Smart Power Sensor |
| 9 | 485B2 | RS-485 B- (Bus 2) – Smart Power Sensor |
RS-485 cable installation

Use an outdoor shielded twisted pair cable. Strip the outer jacket approximately 55 mm and the inner insulation 12-14 mm. Insert wires into the correct pin positions on the signal cable connector, then insert the connector into the COM port and turn clockwise to lock. Secure with the M3 screw (torque: 0.55 N.m).
Route the RS-485 signal cable separately from power cables to prevent electromagnetic interference.
Configuration
Communication parameters
| Parameter | Value |
|---|---|
| Protocol | Modbus RTU |
| Baud rate | 9600 bps |
| Data bits | 8 |
| Parity | None |
| Stop bits | 1 |
| Slave ID | 1 (default, configurable via FusionSolar app) |
Setting the Slave ID
The default Modbus slave address is 1. To change it:
- Connect to the inverter via the FusionSolar app (initial WiFi password: Changeme)
- Log in as installer (initial password: 00000a)
- Navigate to communication settings and change the RS-485 address
- Change the default password immediately after first login
The WLAN Smart Dongle must be disconnected for stable Modbus RTU communication. If the dongle is installed for FusionSolar cloud monitoring, remove it after configuration and before connecting TapHome via RS-485.
Device capabilities
The template exposes the following devices:
Active Power
An electricity meter device that reads the inverter’s current AC output power in kW (register H:32080, Int32, divided by 1000). This is the primary power monitoring device and provides both read and write capabilities.
Service attributes include peak active power of the day (H:32078), reactive power in kVar (H:32082), rated power, maximum active power, maximum apparent power, and maximum reactive power ratings (feed to grid and absorbed from grid).
Three service actions allow power control:
- Reactive Power Compensation (PF) – set power factor from -1.0 to 1.0 (writes to H:40122)
- Reactive Power Compensation (Q/S) – set reactive power ratio from -1.0 to 1.0 (writes to H:40123)
- Active Power Derating (%) – limit output power as percentage 0-100% (writes to H:40125)
Battery
Displays battery state of charge as a percentage (register H:37760, UInt16, divided by 1000). A service attribute shows the battery running status (H:37762) with values: Offline, Standby, Running, Fault, or Sleep Mode.
The Battery device only appears functional when a LUNA2000 battery is connected to the inverter. Without a battery, the running status will show “Offline” and SOC will read zero.
Grid Power Meter
Reads active grid power from the Smart Power Sensor in kW (register H:37113, Int32, divided by 1000) and grid exported energy in kWh (register H:37119, Int32, divided by 100). Positive values indicate power exported to the grid, negative values indicate power imported from the grid.
Service attributes show the meter status (Normal/Offline) and meter type (3-phase/1-phase).
The Grid Power Meter device requires a Huawei Smart Power Sensor (DTSU666-H) connected to the inverter via RS-485 Bus 2 (pins 7 and 9 on the COM port). This device is not present in the TCP variant.
DC Input Power
Read-only sensor showing total DC power from all PV strings combined in kW (register H:32064, Int32, divided by 1000).
Service attributes provide grid-side measurements: grid frequency (H:32085), phase voltages A/B/C (H:32069-32071), phase currents A/B/C (H:32072-32076), and line-to-line voltages AB/BC/CA (H:32066-32068).
Daily Energy and Total Energy
Two read-only energy counters:
- Daily Energy – energy generated today in kWh (register H:32114, divided by 100), resets daily
- Total Energy – cumulative energy since commissioning in kWh (register H:32106, divided by 100)
PV string currents (PV1-PV2)
Two separate sensor devices, one per PV string, reading DC current in amps (registers H:32017 and H:32019, Int16, divided by 100). Each device includes a service attribute for the corresponding string voltage (H:32016 and H:32018, divided by 10).
The RTU template includes 2 PV string devices (PV1-PV2) compared to 4 in the TCP variant. The register map supports up to 24 strings – additional PV string devices can be added manually if needed.
Inverter Status
A multi-value switch (read-only) showing the inverter’s current operating state from register H:32089:
| Value | State | Description |
|---|---|---|
| 0 | Inverter State | Initial / unknown |
| 1 | Idle | Detecting ISO, irradiation, or grid |
| 2 | Starting | Inverter starting up |
| 3 | On Grid | Normal power generation |
| 4 | Shutdown | Fault, command, OVGR, or DC switch off |
| 5 | Grid Dispatch | cos(Phi)-P or Q-U curve active |
| 6 | IV Scanning | PV string I-V curve scanning |
| 7 | Spot-Check | Grid spot-check in progress |
| 8 | Inspecting | Inspection mode |
| 9 | DC Input Detection | Detecting DC input |
Service attributes provide detailed state information: Full State (expanded status with sub-states), Grid Connection status, Teleindication (IEC104 telesignaling), Locking Status, PV Connection Status, and Startup/Shutdown timestamps.
Alarm monitoring
The module-level read script monitors alarm registers H:32008 and H:32009 (Bitfield16). Each bit maps to a specific fault or warning:
| Register | Bit | Alarm |
|---|---|---|
| H:32008 | 0 | High String Voltage |
| H:32008 | 1 | DC Arc Fault |
| H:32008 | 2 | String Reversed |
| H:32008 | 3 | Abnormal String (warning) |
| H:32008 | 7 | Power Grid Failure |
| H:32008 | 8-9 | Grid Under/Overvoltage |
| H:32008 | 11-13 | Grid Frequency Faults |
| H:32008 | 14-15 | Output Overcurrent / DC Component |
| H:32009 | 0 | Abnormal Leakage Current |
| H:32009 | 1-2 | Ground / Insulation Faults |
| H:32009 | 3-4 | High Temperature / Equipment Fault |
| H:32009 | 9 | Abnormal Energy Storage Device |
| H:32009 | 10-11 | Active/Passive Islanding |
Module-level diagnostics
The module exposes service attributes for device identification and diagnostics:
| Attribute | Register | Description |
|---|---|---|
| Model Name | H:30000 | Inverter nameplate model |
| SN | H:30015 | Serial number |
| PN | H:30025 | Product code |
| Model ID | H:30070 | Numeric model identifier |
| Number of Strings | H:30071 | Connected PV strings |
| MPPT Number | H:30072 | MPP tracker count |
| Time Zone | H:43006 | UTC offset |
| Inverter Efficiency | H:32086 | Conversion efficiency (%) |
| Cabinet Temperature | H:32087 | Internal temperature |
| Insulation Resistance | H:32088 | PV array insulation |
| DSP Data Collection | H:32002 | Data collection status |
A Time Zone service action allows setting the inverter’s UTC offset (writes to H:43006).
Additional capabilities
The SUN2000 inverter exposes additional registers not yet implemented in the template. These include firmware version, fault code register, a faster-updating active power reading, total DC input energy counter, monthly and yearly energy counters, battery charge/discharge power, unsigned grid exported energy, grid accumulated energy, and remote power on/shutdown commands. These can be added in a future template update.
Differences from the TCP variant
The RTU template includes two devices not present in the TCP variant: the Grid Power Meter (Smart Power Sensor readings) and Battery with SOC readout. However, the RTU template only includes 2 PV string devices (PV1-PV2) compared to 4 in the TCP variant. The register map is identical – only the transport layer differs (RS-485 serial vs TCP/IP via Smart Dongle).
Troubleshooting
No Modbus communication
- Verify the RS-485 cable is connected to the correct COM port pins: Pin 1 (485A1-1) = A+, Pin 3 (485B1-1) = B-
- Ensure the WLAN Smart Dongle is disconnected from the inverter
- Check that the baud rate is set to 9600 and parity to None (8N1) in TapHome
- Confirm the correct Slave ID (default: 1)
- Verify the signal cable connector is fully inserted and locked into the COM port
Intermittent communication failures
The most common cause is the WLAN Smart Dongle interfering with the RS-485 bus. The dongle’s internal communication with Huawei cloud servers causes CRC errors on the serial bus. Remove the dongle for stable RTU operation.
PV string values read zero
Unused PV string inputs will always read 0 A / 0 V. This is normal if the inverter model has fewer MPPT inputs than the template provides (e.g., a 3KTL model may only use PV1 and PV2).
Battery device shows “Offline”
The LUNA2000 battery registers are only populated when a compatible battery is physically connected to the inverter. Without a battery, Running Status will read “Offline” and SOC will be zero.
Inverter status stuck on “Idle”
During nighttime or low-irradiation conditions, the inverter enters idle mode. This is normal – it will transition to “On Grid” once sufficient solar irradiation is detected. The inverter may also have reduced data availability during standby.
Grid Power Meter reads zero
The Grid Power Meter device requires a Huawei Smart Power Sensor (DTSU666-H) connected via RS-485 Bus 2 (pins 7 and 9). If no meter is installed, the values will read zero and the meter status will show “Offline”.