
The Huawei SUN2000 3-10KTL series are single-phase and three-phase string inverters for residential PV systems, with rated power from 3 kW to 10 kW. TapHome connects to the inverter via Modbus TCP — either directly through the inverter’s built-in WiFi access point or through a Huawei Smart Dongle (WLAN-FE or LAN) connected to the local network.
The template provides active power monitoring, DC input power, PV string current and voltage readings for up to 4 strings, daily and cumulative energy counters, detailed inverter status with alarm decoding, battery storage overview (for LUNA2000), and power control actions including reactive power compensation and active power derating.
Enabling Modbus communication
The SUN2000 inverter supports Modbus TCP over its WiFi access point and through the Smart Dongle. For a permanent connection with TapHome, the recommended approach is using a Huawei Smart Dongle-WLAN-FE (or Smart Dongle-4G) plugged into the inverter’s USB port.
Connection options
| Method | Interface | Notes |
|---|---|---|
| Smart Dongle (recommended) | Ethernet / WiFi | Connects inverter to local LAN. Allows simultaneous Modbus TCP + FusionSolar app. |
| WiFi Access Point | WiFi | Direct connection to inverter AP (SSID: SUN2000-<serial>). Only one client at a time. |
| RS-485 (Modbus RTU) | COM port pins RS485A1/B1 | Not used by this template. Cannot run simultaneously with FusionSolar monitoring. |
When using the WiFi Access Point method, the FusionSolar app cannot connect simultaneously. For production installations, always use the Smart Dongle so that both TapHome and FusionSolar can operate at the same time.
Smart Dongle setup
- Plug the Smart Dongle-WLAN-FE into the USB port on the bottom of the inverter
- Connect the Smart Dongle to the local WiFi network using the FusionSolar app (initial setup)
- The dongle will obtain an IP address from the router via DHCP
- Note the IP address from the router’s DHCP lease table
Assign a static IP address to the Smart Dongle in the router’s DHCP settings to prevent the address from changing after a power cycle.
Network connection
- Protocol: Modbus TCP
- Port: 502 (standard Modbus TCP port)
- Default Slave ID: 1
- Byte order: Big-endian (standard Modbus)
The Huawei Home Assistant integration uses port 503 by default (WiFi AP mode). When connecting through the Smart Dongle on a local network, TapHome uses the standard Modbus TCP port 502.
Configuration
When importing the template in TapHome, provide:
- IP Address — the Smart Dongle’s IP on the local network (or the inverter’s WiFi AP IP, default: 192.168.200.1)
- Slave ID — Modbus slave address (default: 1)
Device capabilities
The template exposes the following devices:
Active Power
An electricity meter device that reads the inverter’s current AC output. This is the primary power monitoring device.
- Active power — current AC output power in kW (register H:32080, Int32)
- Power factor — grid power factor (register H:32084, Int16)
- Peak active power of day — highest power output today in kW (service attribute, H:32078)
- Reactive power — current reactive power in kVar (service attribute, H:32082)
- Rated power / Max active power / Max apparent power — nameplate ratings from registers H:30073, H:30075, H:30077
The device also provides three service actions for 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 (writes to H:40123)
- Active power derating (%) — limit output power as percentage 0–100% (writes to H:40125)
DC Input Power
Read-only sensor showing total DC power input from all PV strings combined, in kW (register H:32064, Int32, divided by 1000).
Service attributes show grid-side details: grid frequency (H:32085), phase voltages A/B/C (H:32069–32071), and phase currents A/B/C (H:32072–32076).
Battery
A container device for battery storage status (Huawei LUNA2000). Shows:
- Running Status — Offline, Standby, Running, Fault, or Sleep mode (H:37762)
- Current Day Charge — energy charged today in kWh (H:37784)
- Current Day Discharge — energy discharged today in kWh (H:37786)
The Battery device only appears functional when a LUNA2000 battery is connected to the inverter. Without a battery, the running status will show “Offline”.
Total Energy
Cumulative energy generated since commissioning, in kWh (register H:32106, UInt32, divided by 100).
Daily Energy
Energy generated today, in kWh (register H:32114, divided by 100).
PV string currents (PV1–PV4)
Four separate sensor devices, one per PV string, reading DC current in amps (registers H:32017, H:32019, H:32021, H:32023). Each device includes a service attribute for the corresponding string voltage (H:32016, H:32018, H:32020, H:32022).
The number of active PV string devices depends on the inverter model and installation. Unused strings will read 0 A.
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 all sub-states (e.g., “Shutdown: Fault”, “On-Grid: Power Limit”)
- Grid Connection — standby, normal, derating due to power rationing or internal causes
- Teleindication — IEC104 telesignaling state
- Locking Status / PV Connection Status — from monitoring register H:32002
- Startup time / Shutdown time — last startup and 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 |
| System Time | H:40000 | Inverter local time |
| 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 line-to-line voltages (A-B, B-C, C-A), fault code register, a faster-updating active power reading, total DC input energy counter, monthly and yearly energy counters, battery state of charge (SOC) and charge/discharge power, active grid power (import/export from power meter), grid exported and accumulated energy, and remote power on/shutdown commands. These can be added in a future template update.
Battery SOC (state of charge) is notably absent from the current template despite the Battery device existing. If you need SOC monitoring, it can be added as a custom Modbus device reading register H:37760 (UInt16, divide by 10, result in %).
Troubleshooting
No Modbus communication
- Verify the Smart Dongle is plugged into the inverter’s USB port and has power (LED active)
- Confirm the dongle’s IP address in the router’s DHCP lease table
- Ensure TapHome Core and the Smart Dongle are on the same network/subnet
- Check that no firewall is blocking port 502
- If using WiFi AP mode, connect to the inverter’s SSID (
SUN2000-<serial>) and use IP 192.168.200.1
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 charge/discharge counters 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.