---
title: "Huawei SUN2000 (Modbus RTU)"
description: "Huawei SUN2000 3-10KTL Solarwechselrichter, verbunden mit TapHome über Modbus RTU via RS-485."
url: "https://taphome.com/de/compatibility/huawei-sun2000-rtu/"
language: de
lastmod: 2026-03-28
generator: hugo
ai:
  topics: ["modbus-rtu","inverter","solar","rs485","pv-monitoring","battery-storage","grid-power-meter"]
  questions: ["Wie verbindet man den Huawei SUN2000 über RS-485 Modbus RTU mit TapHome?","Was misst und steuert die Huawei-SUN2000-RTU-TapHome-Vorlage?","Welche COM-Port-Pins für Modbus RTU am Huawei SUN2000 verwenden?","Kann ich Modbus RTU und den WLAN Smart Dongle gleichzeitig am SUN2000 verwenden?","Wie überwacht man Batterie-SOC und Netzleistung am SUN2000 über TapHome?","Was ist der Unterschied zwischen TCP- und RTU-Vorlage für den Huawei SUN2000?"]
---

# Huawei SUN2000 (Modbus RTU)

Kommunikation: Modbus RTU

- [Huawei FusionSolar](https://solar.huawei.com/en/products/residential/inverters)

## Integrationsanleitung

Die Huawei SUN2000 3-10KTL sind dreiphasige String-Wechselrichter für Haus-PV-Anlagen mit Nennleistungen von 3 kW bis 10 kW. Diese Vorlage verbindet den Wechselrichter über **Modbus RTU via RS-485** durch den COM-Port an der Unterseite des Geräts. Im Gegensatz zur TCP-Variante (die einen Smart Dongle für die Netzwerkanbindung verwendet) kommuniziert die RTU-Variante direkt über den seriellen RS-485-Bus.

Die Vorlage bietet Wirkleistungsüberwachung und -steuerung, DC-Eingangsleistung mit netzseitigen Messungen, PV-String-Strom und -Spannungswerte, Netzeinspeisezähler (über Smart Power Sensor), Batterieladezustand (SOC), tägliche und kumulierte Energiezähler sowie detaillierten Wechselrichterstatus mit Alarmauswertung.

> [!WARNING]
> Huawei warnt, dass die Modbus RTU-Kommunikation instabil werden kann, wenn der Wechselrichter über den WLAN Smart Dongle mit Cloud-Servern kommuniziert. **Trennen Sie den WLAN Smart Dongle** vor der Nutzung von Modbus RTU, um CRC-Fehler und Kommunikationsausfälle auf dem RS-485-Bus zu vermeiden.

## Hardwareanschluss

Der SUN2000-Wechselrichter verfügt über einen 16-poligen COM-Port (#8) an der Unterseite. Der COM-Port stellt zwei separate RS-485-Busse bereit:

| Bus | Pins | Zweck |
|-----|------|-------|
| **Bus 1** | Pin 1 (485A1-1), Pin 3 (485B1-1) | Kaskadierung von Wechselrichtern, SmartLogger, **TapHome-Anschluss** |
| **Bus 2** | Pin 7 (485A2), Pin 9 (485B2) | Smart Power Sensor, Energiespeicher |

Für den TapHome Modbus RTU-Anschluss **Bus 1** verwenden:

- **Pin 1 (485A1-1)** -- mit RS-485 **A+** des TapHome-Controllers verbinden
- **Pin 3 (485B1-1)** -- mit RS-485 **B-** des TapHome-Controllers verbinden
- **Pin 5 (PE)** -- Schirmung (optional, empfohlen)

### Anschlussposition am Wechselrichter

![Unterseite des SUN2000-Wechselrichters mit COM-Port (#8) und Smart-Dongle-Port (#9)](https://taphome.com/images/compatibility/huawei-sun2000-rtu/inverter-ports_hu_5491645494580c3c.jpg)

Der COM-Port (#8) befindet sich an der Unterseite neben dem AC-Ausgangsport (#7) und dem Smart-Dongle-Port (#9).

### COM-Port-Belegung

![16-poliger COM-Port-Stecker des SUN2000 mit Pin-Nummerierung](https://taphome.com/images/compatibility/huawei-sun2000-rtu/com-port-pinout_hu_38f30b1cd140d65d.jpg)

| Pin | Bezeichnung | Funktion |
|-----|-------------|----------|
| 1 | 485A1-1 | RS-485 A+ (Bus 1) -- **mit TapHome A+ verbinden** |
| 2 | 485A1-2 | RS-485 A+ (Bus 1) -- für Kaskadierung zum nächsten Wechselrichter |
| 3 | 485B1-1 | RS-485 B- (Bus 1) -- **mit TapHome B- verbinden** |
| 4 | 485B1-2 | RS-485 B- (Bus 1) -- für Kaskadierung zum nächsten Wechselrichter |
| 5 | PE | Schirmerdung |
| 7 | 485A2 | RS-485 A+ (Bus 2) -- Smart Power Sensor |
| 9 | 485B2 | RS-485 B- (Bus 2) -- Smart Power Sensor |

### RS-485-Kabelinstallation

![Installation des RS-485-Signalkabels in den COM-Port-Stecker mit Pin-Positionen 485A1-1, 485B1-1 und PE](https://taphome.com/images/compatibility/huawei-sun2000-rtu/wiring-rs485-cable_hu_5288d173273787db.jpg)

Verwenden Sie ein geschirmtes Außen-Twisted-Pair-Kabel. Den Außenmantel ca. 55 mm und die innere Isolierung 12-14 mm abisolieren. Adern in die richtigen Pin-Positionen des Signalkabelsteckers einführen, dann den Stecker in den COM-Port einsetzen und im Uhrzeigersinn verriegeln. Mit M3-Schraube sichern (Drehmoment: 0,55 N.m).

> [!TIP]
> Das RS-485-Signalkabel getrennt von Leistungskabeln verlegen, um elektromagnetische Störungen zu vermeiden.

## Konfiguration

### Kommunikationsparameter

| Parameter | Wert |
|-----------|------|
| Protokoll | Modbus RTU |
| Baudrate | 9600 bps |
| Datenbits | 8 |
| Parität | Keine |
| Stoppbits | 1 |
| Slave-ID | 1 (Standard, konfigurierbar über FusionSolar-App) |

### Slave-ID einstellen

Die Standard-Modbus-Slave-Adresse ist **1**. Zum Ändern:

1. Mit dem Wechselrichter über die FusionSolar-App verbinden (Standard-WLAN-Passwort: **Changeme**)
2. Als Installateur anmelden (Standard-Passwort: **00000a**)
3. Zu den Kommunikationseinstellungen navigieren und die RS-485-Adresse ändern
4. Standard-Passwort sofort nach der ersten Anmeldung ändern

> [!NOTE]
> Der WLAN Smart Dongle muss für eine stabile Modbus RTU-Kommunikation getrennt sein. Wenn der Dongle für das FusionSolar Cloud-Monitoring installiert ist, nach der Konfiguration und vor dem Anschluss von TapHome über RS-485 entfernen.

## Gerätefunktionen

Die Vorlage stellt folgende Geräte bereit:

### Wirkleistung

Ein Stromzähler, der die aktuelle AC-Ausgangsleistung des Wechselrichters in kW liest (Register H:32080, Int32, geteilt durch 1000). Dies ist das primäre Überwachungsgerät mit Lese- und Schreibfunktionen.

Service-Attribute umfassen Tagesspitzenwirkleistung (H:32078), Blindleistung in kVar (H:32082), Nennleistung, maximale Wirkleistung, maximale Scheinleistung und maximale Blindleistung (Einspeisung und Bezug).

Drei Service-Aktionen ermöglichen die Leistungssteuerung:

- **Blindleistungskompensation (PF)** -- Leistungsfaktor von -1,0 bis 1,0 setzen (schreibt in H:40122)
- **Blindleistungskompensation (Q/S)** -- Blindleistungsverhältnis von -1,0 bis 1,0 setzen (schreibt in H:40123)
- **Wirkleistungsreduzierung (%)** -- Ausgangsleistung als Prozentsatz 0-100 % begrenzen (schreibt in H:40125)

### Batterie

Zeigt den Batterieladezustand in Prozent an (Register H:37760, UInt16, geteilt durch 1000). Ein Service-Attribut zeigt den Betriebsstatus der Batterie (H:37762) mit den Werten: Offline, Standby, Betrieb, Fehler oder Schlafmodus.

> [!NOTE]
> Das Batteriegerät erscheint nur dann als funktionsfähig, wenn eine LUNA2000-Batterie am Wechselrichter angeschlossen ist. Ohne Batterie zeigt der Betriebsstatus „Offline" und der SOC liest null.

### Netzeinspeisezähler

Liest die aktive Netzleistung vom Smart Power Sensor in kW (Register H:37113, Int32, geteilt durch 1000) und die ins Netz eingespeiste Energie in kWh (Register H:37119, Int32, geteilt durch 100). Positive Werte zeigen Einspeisung ins Netz, negative Werte zeigen Netzbezug an.

Service-Attribute zeigen den Zählerstatus (Normal/Offline) und den Zählertyp (3-phasig/1-phasig).

> [!NOTE]
> Das Gerät Netzeinspeisezähler erfordert einen Huawei Smart Power Sensor (DTSU666-H), der über RS-485 Bus 2 (Pins 7 und 9 am COM-Port) am Wechselrichter angeschlossen ist. Dieses Gerät ist in der TCP-Variante nicht vorhanden.

### DC-Eingangsleistung

Nur-Lese-Sensor, der die gesamte DC-Leistung aller PV-Strings kombiniert in kW anzeigt (Register H:32064, Int32, geteilt durch 1000).

Service-Attribute liefern netzseitige Messungen: Netzfrequenz (H:32085), Phasenspannungen A/B/C (H:32069-32071), Phasenströme A/B/C (H:32072-32076) und verkettete Spannungen AB/BC/CA (H:32066-32068).

### Tagesenergie und Gesamtenergie

Zwei Nur-Lese-Energiezähler:

- **Tagesenergie** -- heute erzeugte Energie in kWh (Register H:32114, geteilt durch 100), wird täglich zurückgesetzt
- **Gesamtenergie** -- kumulierte Energie seit Inbetriebnahme in kWh (Register H:32106, geteilt durch 100)

### PV-String-Ströme (PV1-PV2)

Zwei separate Sensorgeräte, eines pro PV-String, die den DC-Strom in Ampere lesen (Register H:32017 und H:32019, Int16, geteilt durch 100). Jedes Gerät enthält ein Service-Attribut für die entsprechende String-Spannung (H:32016 und H:32018, geteilt durch 10).

> [!NOTE]
> Die RTU-Vorlage enthält 2 PV-String-Geräte (PV1-PV2) gegenüber 4 in der TCP-Variante. Die Registerkarte unterstützt bis zu 24 Strings — weitere PV-String-Geräte können bei Bedarf manuell hinzugefügt werden.

### Wechselrichterstatus

Ein Mehrwertsschalter (nur Lesen), der den aktuellen Betriebszustand des Wechselrichters aus Register H:32089 anzeigt:

| Wert | Zustand | Beschreibung |
|------|---------|--------------|
| 0 | Wechselrichterzustand | Initial / unbekannt |
| 1 | Leerlauf | Erkennung ISO, Einstrahlung oder Netz |
| 2 | Startvorgang | Wechselrichter startet |
| 3 | Am Netz | Normaler Einspeisebetrieb |
| 4 | Abschaltung | Fehler, Befehl, OVGR oder DC-Trenner |
| 5 | Netzdispatch | Aktive cos(Phi)-P oder Q-U-Kurve |
| 6 | IV-Scan | PV-String I-V-Kurven-Scan |
| 7 | Stichprüfung | Netz-Stichprüfung läuft |
| 8 | Inspektion | Inspektionsmodus |
| 9 | DC-Eingangserkennung | DC-Eingang wird erkannt |

Service-Attribute liefern detaillierte Statusinformationen: Vollständiger Zustand (erweiterter Status mit Unterzuständen), Netzverbindung, Fernmeldung (IEC104-Telesignalisierung), Sperrstatus, PV-Verbindungsstatus sowie Start- und Abschaltzeitstempel.

### Alarmüberwachung

Das Skript auf Modulebene überwacht Alarmregister H:32008 und H:32009 (Bitfield16). Jedes Bit entspricht einem bestimmten Fehler oder einer Warnung:

| Register | Bit | Alarm |
|----------|-----|-------|
| H:32008 | 0 | Hohe String-Spannung |
| H:32008 | 1 | DC-Lichtbogenfehler |
| H:32008 | 2 | String-Umpolung |
| H:32008 | 3 | Abnormaler String (Warnung) |
| H:32008 | 7 | Netzausfall |
| H:32008 | 8-9 | Netz-Unter-/Überspannung |
| H:32008 | 11-13 | Netzfrequenzfehler |
| H:32008 | 14-15 | Ausgangsüberstrom / DC-Komponente |
| H:32009 | 0 | Abnormaler Ableitstrom |
| H:32009 | 1-2 | Erd-/Isolationsfehler |
| H:32009 | 3-4 | Hohe Temperatur / Gerätefehler |
| H:32009 | 9 | Abnormales Energiespeichergerät |
| H:32009 | 10-11 | Aktive/passive Inselbildung |

### Diagnose auf Modulebene

Das Modul stellt Service-Attribute für Geräteidentifikation und Diagnose bereit:

| Attribut | Register | Beschreibung |
|----------|----------|--------------|
| Modellname | H:30000 | Wechselrichter-Typenschild-Modell |
| SN | H:30015 | Seriennummer |
| PN | H:30025 | Produktcode |
| Model ID | H:30070 | Numerische Modellkennung |
| Anzahl der Strings | H:30071 | Angeschlossene PV-Strings |
| MPPT-Anzahl | H:30072 | Anzahl der MPP-Tracker |
| Zeitzone | H:43006 | UTC-Offset |
| Wechselrichter-Wirkungsgrad | H:32086 | Konversionswirkungsgrad (%) |
| Gehäusetemperatur | H:32087 | Innentemperatur des Gehäuses |
| Isolationswiderstand | H:32088 | PV-Array-Isolation |
| DSP-Datenerfassung | H:32002 | Datenerfassungsstatus |

Die Service-Aktion **Zeitzone** ermöglicht das Setzen des UTC-Offsets des Wechselrichters (schreibt in H:43006).

### Weitere Funktionen

Der SUN2000-Wechselrichter stellt weitere Register bereit, die noch nicht in der Vorlage implementiert sind. Dazu gehören Firmware-Version, Fehlercode-Register, schneller aktualisierter Wirkleistungswert, Gesamt-DC-Eingangsenergiezähler, Monats- und Jahresenergiezähler, Batterie-Lade-/Entladeleistung, unsignierte Netzeinspeisung, akkumulierte Netzenergie sowie Fernein-/ausschaltbefehle. Diese können in einem zukünftigen Vorlagen-Update hinzugefügt werden.

### Unterschiede zur TCP-Variante

Die RTU-Vorlage enthält zwei Geräte, die in der TCP-Variante nicht vorhanden sind: den **Netzeinspeisezähler** (Smart Power Sensor-Messungen) und die **Batterie** mit SOC-Anzeige. Allerdings enthält die RTU-Vorlage nur 2 PV-String-Geräte (PV1-PV2) gegenüber 4 in der TCP-Variante. Die Registerkarte ist identisch — nur die Transportschicht unterscheidet sich (serielles RS-485 gegenüber TCP/IP über Smart Dongle).

## Fehlerbehebung

### Keine Modbus-Kommunikation

1. RS-485-Kabel auf korrekte COM-Port-Pins prüfen: Pin 1 (485A1-1) = A+, Pin 3 (485B1-1) = B-
2. Sicherstellen, dass der WLAN Smart Dongle **getrennt** ist
3. Prüfen, dass Baudrate auf 9600 und Parität auf Keine (8N1) in TapHome eingestellt ist
4. Korrekte Slave-ID bestätigen (Standard: 1)
5. Prüfen, ob der Signalkabelstecker vollständig eingesteckt und im COM-Port verriegelt ist

### Sporadische Kommunikationsfehler

Die häufigste Ursache ist der WLAN Smart Dongle, der den RS-485-Bus stört. Die interne Kommunikation des Dongles mit Huawei Cloud-Servern verursacht CRC-Fehler auf dem seriellen Bus. Dongle für stabilen RTU-Betrieb entfernen.

### PV-String-Werte lesen null

Unbenutzte PV-String-Eingänge lesen immer 0 A / 0 V. Dies ist normal, wenn das Wechselrichtermodell weniger MPPT-Eingänge hat als die Vorlage vorsieht (z.B. ein 3KTL-Modell verwendet möglicherweise nur PV1 und PV2).

### Batteriegerät zeigt „Offline"

Die LUNA2000-Batterieregister werden nur dann befüllt, wenn eine kompatible Batterie physisch am Wechselrichter angeschlossen ist. Ohne Batterie liest der Betriebsstatus „Offline" und der SOC ist null.

### Wechselrichterstatus hängt auf „Leerlauf"

Bei Nacht oder schwacher Einstrahlung wechselt der Wechselrichter in den Leerlaufmodus. Dies ist normal — er wechselt zu „Am Netz", sobald ausreichende Solarstrahlung erkannt wird. Der Wechselrichter kann im Standby-Modus eingeschränkte Datenverfügbarkeit haben.

### Netzeinspeisezähler liest null

Das Gerät Netzeinspeisezähler erfordert einen Huawei Smart Power Sensor (DTSU666-H), der über RS-485 Bus 2 (Pins 7 und 9) angeschlossen ist. Ist kein Zähler installiert, lesen die Werte null und der Zählerstatus zeigt „Offline".

## Verfügbare Geräte 9

Diese Geräte erscheinen nach dem Import in TapHome.

SUN2000 Modul

Serviceattribute

|                             |                                                                                    |
|-----------------------------|------------------------------------------------------------------------------------|
| Modellname                  |                                                                                    |
| SN                          |                                                                                    |
| PN                          |                                                                                    |
| Model ID                    |                                                                                    |
| Anzahl der Strings          |                                                                                    |
| MPPT-Anzahl                 |                                                                                    |
| Zeitzone                    | UTC-Offset des Wechselrichters — liest und zeigt die konfigurierte Zeitzone        |
| Wechselrichter-Wirkungsgrad | DC-zu-AC-Konversionswirkungsgrad in Prozent                                        |
| Gehäusetemperatur           | Innentemperatur des Wechselrichtergehäuses                                         |
| Isolationswiderstand        | Isolationswiderstand des PV-Arrays in Megaohm — überwacht die Isolationssicherheit |
| DSP-Datenerfassung          | Datenerfassungsstatus — Ja (aktiv) oder Nein (inaktiv)                             |

Serviceaktionen

|          |                                                                            |
|----------|----------------------------------------------------------------------------|
| Zeitzone | UTC-Offset des Wechselrichters setzen — von UTC-12:00 bis UTC+14:00 wählen |

Lesen (Modul)

```taphome
var a1 := MODBUSR(H, 32008, Uint16);
var a2 := MODBUSR(H, 32009, Uint16);
IF(GETBIT(a1,0) = 1, ADDERROR("High String Voltage", 2001));
IF(GETBIT(a1,1) = 1, ADDERROR("DC Arc Fault", 2002));
IF(GETBIT(a1,2) = 1, ADDERROR("String Reversed", 2011));
IF(GETBIT(a1,3) = 1, ADDWARNING("PV String Backfeed ", 2012));
IF(GETBIT(a1,4) = 1, ADDWARNING("Abnormal String", 2013));
IF(GETBIT(a1,5) = 1, ADDERROR("AFCI Self-test Fault", 2021));
IF(GETBIT(a1,6)= 1, ADDERROR("Short circuit between phase to PE ", 2021));
IF(GETBIT(a1,7) = 1, ADDERROR("Power Grid Failure ", 2032));
IF(GETBIT(a1,8) = 1, ADDERROR("Grid Undervoltage ", 2033));
IF(GETBIT(a1,9) = 1, ADDERROR("Grid Overvoltage", 2034));
IF(GETBIT(a1,10) = 1, ADDERROR("Unbalanced Grid Voltage", 2035));
IF(GETBIT(a1,11) = 1, ADDERROR("Grid Overfrequency", 2036));
IF(GETBIT(a1,12) = 1, ADDERROR("Grid Underfrequency", 2037));
IF(GETBIT(a1,13) = 1, ADDERROR("Grid Frequency Instability", 2038));
IF(GETBIT(a1,14) = 1, ADDERROR("Output Overcurrent ", 2039));
IF(GETBIT(a1,15) = 1, ADDERROR("Large DC of Output current ", 2040));
IF(GETBIT(a2,0) = 1, ADDERROR("Abnormal Leakage Current ", 2051));
IF(GETBIT(a2,1) = 1, ADDERROR("Abnormal Ground.", 2061));
IF(GETBIT(a2,2) = 1, ADDERROR("Low Insulation Res. ", 2062));
IF(GETBIT(a2,3) = 1, ADDERROR("High Temperature", 2063));
IF(GETBIT(a2,4) = 1, ADDERROR("Abnormal Equipment", 2064));
IF(GETBIT(a2,5) = 1, ADDERROR("Upgrade Failed", 2065));
IF(GETBIT(a2,6) = 1, ADDWARNING("License Expired", 2066));
IF(GETBIT(a2,7) = 1, ADDERROR("Abnormal Monitor Unit", 61440));
IF(GETBIT(a2,8) = 1, ADDERROR("Power collector fault ", 2067));
IF(GETBIT(a2,9) = 1, ADDERROR("Abnormal energy storage device", 2068));
IF(GETBIT(a2,10) = 1, ADDERROR("Active islanding", 2070));
IF(GETBIT(a2,11) = 1, ADDERROR("Passive islanding", 2071));
IF(GETBIT(a2,12) = 1, ADDERROR("Transient AC overvoltage", 2072));
IF(GETBIT(a2,15) = 1, ADDERROR("Abnormal PV module configuration", 2080));
```

Serviceattribute

Model Name

```taphome
MODBUSR(H, 30000, String, 15)
```

SN

```taphome
MODBUSR(H, 30015, String, 10)
```

PN

```taphome
MODBUSR(H, 30025, String, 10)
```

Model ID

```taphome
MODBUSR(H, 30070, Uint16)
```

Number of Strings

```taphome
MODBUSR(H, 30071, Uint16)
```

MPPT Number

```taphome
MODBUSR(H, 30072, Uint16)
```

Time Zone

```taphome
IF(MODBUSR(H, 43006, Int16) = 0, "UTC±00:00");
var time := MODBUSR(H, 43006, Int16)/0.6;
var zone := IF(MOD(time,100) = 0, time/100 + ":00", ROUND(time/100) + ":" + MOD(time,100));
RETURN (IF(time > 0, "UTC+" + zone, "UTC-" + zone ));
```

Inverter Efficiency

```taphome
 MODBUSR(H, 32086, Uint16)/100 + "%"
```

Cabinet Temperature

```taphome
MODBUSR(H, 32087, Int16) / 10 + " ℃ "
```

Insulation Resistance

```taphome
MODBUSR(H, 32088, Uint16)/1000 + "MΩ "
```

DSP data collection

```taphome
IF(GETBIT(MODBUSR(H, 32002, Uint16),0) = 1, "Yes", "No")
```

Serviceaktionen

Time Zone

Parameter: Time Zone

```taphome
MODBUSWNE(H, 43006, Int16, timz*60)
```

Wirkleistung Stromzähler Lesen und Schreiben

Stromzähler mit Wirkleistung (kW), Blindleistung, Leistungsfaktor und Leistungssteueraktionen für Reduzierung und Kompensation

Register: H:32080 Int32 Einheit: kW numeric

Serviceattribute

|                                               |
|-----------------------------------------------|
| Tagesspitzenwirkleistung                      |
| Blindleistung                                 |
| Nennleistung                                  |
| Blindleistungskompensation (PF)               |
| Blindleistungskompensation (Q/S)              |
| Wirkleistungsreduzierung Prozent (0,1 %)      |
| Wirkleistungsreduzierung (Festwert W)         |
| Maximale Wirkleistung                         |
| Maximale Scheinleistung                       |
| Maximale Blindleistung (Einspeisung ins Netz) |
| Maximale Blindleistung (Netzbezug)            |

Serviceaktionen

|                                  |                                                                        |
|----------------------------------|------------------------------------------------------------------------|
| Blindleistungskompensation (PF)  | Leistungsfaktor von -1,0 bis 1,0 für Blindleistungskompensation setzen |
| Blindleistungskompensation (Q/S) | Blindleistungsverhältnis von -1,0 bis 1,0 setzen                       |
| Wirkleistungsreduzierung (%)     | Wechselrichter-Ausgangsleistung als Prozentsatz 0-100 % begrenzen      |

Bedarf lesen

```taphome
MODBUSR(H, 32080, Int32,2)/1000;
```

Serviceattribute

Active Power peak of this day

```taphome
MODBUSR(H, 32078, Int32, 2) + " kW"
```

Reactive Power

```taphome
MODBUSR(H, 32082, Int32, 2)/1000 + " kVar"
```

Rated Power

```taphome
MODBUSR(H, 30073, Uint32, 2)/1000 + " kW"
```

Reactive Power Compensation (PF)

```taphome
MODBUSR(H, 40122, Int16)/1000
```

Reactive Power Compensation (Q/S)

```taphome
MODBUSR(H, 40123, Int16)/1000
```

Active Power Derating percent (0.1%)

```taphome
MODBUSR(H, 40122, Int16)/10 + "%"
```

Active Power Derating (fixed value W)

```taphome
MODBUSR(H, 40126, Uint32, 2) + " W"
```

Maximum Active Power

```taphome
MODBUSR(H, 30075, Uint32, 2)/1000 + " kW"
```

Maximum Apparent Power

```taphome
MODBUSR(H, 30077, Uint32, 2)/1000 + " kVA"
```

Maximum reactive power (fed to grid)

```taphome
MODBUSR(H, 30079, Uint32, 2)/1000 + " kVar"
```

Maximum reactive power (absorbed from grid)

```taphome
MODBUSR(H, 30081, Uint32, 2)/1000 + " kVar"
```

Serviceaktionen

Reactive Power Compensation (PF)

Parameter: Reactive power compensation

```taphome
MODBUSWNE(H, 40122, Int16, pf*1000);
```

Reactive Power Compensation (Q/S)

Parameter: Reactive power compensation (-1, 1] (-1–1 rpc)

```taphome
MODBUSW(H, 40123, Int16, rpc*1000);
```

Active Power Derating Percent(%)

Parameter: Active Power Derating Percent(%) (0–100 apdp)

```taphome
MODBUSW(H, 40125, Uint16, apdp*10)
```

Batterie Dimmer Nur lesen

Batterieladezustand (SOC) in Prozent — zeigt die verfügbare Energie im LUNA2000-Speicher

Register: H:37760 UInt16 Einheit: % numeric

Serviceattribute

|        |                                                                                  |
|--------|----------------------------------------------------------------------------------|
| Status | Betriebsstatus der Batterie — Offline, Standby, Betrieb, Fehler oder Schlafmodus |

Level lesen

```taphome
MODBUSR(H, 37760, Uint16) / 1000
```

Serviceattribute

Status

```taphome
SWITCH(MODBUSR(H, 37762, Uint16), 0, "offline", 1, "standby", 2, "running", 3, "fault", 4, "sleep mode", "error");
```

Netzeinspeisezähler Stromzähler Nur lesen

Aktive Netzleistung (kW) und eingespeiste Energie (kWh) vom Smart Power Sensor — positiv ist Einspeisung, negativ ist Bezug

Register: H:37113 Int32 Einheit: kW numeric

Serviceattribute

|        |                                             |
|--------|---------------------------------------------|
| Status | Leistungsmesserstatus — Normal oder Offline |
| Typ    | Leistungsmessertyp — 3-phasig oder 1-phasig |

Gesamtverbrauch lesen

```taphome
MODBUSR(H, 37119, Int32) / 100
```

Bedarf lesen

```taphome
MODBUSR(H, 37113, Int32) / 1000
```

Serviceattribute

Status

```taphome
IF(MODBUSR(H, 37100, Uint16) = 1, "Normal", "Offline");
```

Type

```taphome
IF(MODBUSR(H, 37125, Uint16) = 1, "3 phase", "1 phase");
```

Tagesenergie Variable Nur lesen

Heute erzeugte Energie in kWh — wird um Mitternacht zurückgesetzt

Register: H:32114 Int32 Einheit: kWh numeric

Lesen

```taphome
MODBUSR(H, 32114, Int32, 2)/100
```

Gesamtenergie Variable Nur lesen

Kumulierte Gesamtenergie seit Inbetriebnahme

Register: H:32106 Int32 Einheit: kWh numeric

Lesen

```taphome
MODBUSR(H, 32106, Int32, 2)/100
```

DC-Eingangsleistung Stromzähler Nur lesen

Gesamte DC-Leistung aller PV-Strings kombiniert (kW) mit netzseitigen Messungen — Phasenspannungen, Ströme, verkettete Spannungen und Frequenz

Register: H:32064 Int32 Einheit: kW numeric

Serviceattribute

|                  |
|------------------|
| Spannung Phase A |
| Spannung Phase B |
| Spannung Phase C |
| Strom Phase A    |
| Strom Phase B    |
| Strom Phase C    |
| Spannung AB      |
| Spannung BC      |
| Spannung CA      |
| Frequenz         |

Bedarf lesen

```taphome
MODBUSR(H, 32064, Int32, 2)/1000
```

Serviceattribute

A Voltage

```taphome
MODBUSR(H, 32069, Int16)/10 + " V"
```

B Voltage

```taphome
MODBUSR(H, 32070, Int16)/10 + " V"
```

C Voltage

```taphome
MODBUSR(H, 32071, Int16)/10 + " V"
```

A Current

```taphome
MODBUSR(H, 32072, Int32, 2)/1000 + " A"
```

B Current

```taphome
MODBUSR(H, 32074, Int32, 2)/1000 + " A"
```

C Current

```taphome
MODBUSR(H, 32076, Int32, 2)/1000 + " A"
```

AB Voltage

```taphome
MODBUSR(H, 32066, Int16)/10 + " V"
```

BC Voltage

```taphome
MODBUSR(H, 32067, Int16)/10 + " V"
```

CA Voltage

```taphome
MODBUSR(H, 32068, Int16)/10 + " V"
```

Frequency

```taphome
MODBUSR(H, 32085, Uint16)/100 + " Hz"
```

Wechselrichterstatus Mehrwertschalter Nur lesen

Betriebszustand des Wechselrichters — Leerlauf, Startvorgang, Am Netz, Abschaltung, Netzdispatch, IV-Scan, Stichprüfung, Inspektion, DC-Eingangserkennung

Register: H:32089 UInt16 numeric

Werte / Zustände: Initializing · Idle · Starting · On-Grid · Shutdown · Grid Dispatch · IV scanning · Spot-Check · Inspecting · DC input detection

Schaltzustand lesen

```taphome
var reg := MODBUSR(H, 32089, Uint16);
IF(reg = 0, 0,
IF(reg < 4 OR reg = 40960,1,
IF(reg = 256, 2, 
IF(reg < 515, 3, 
IF(reg < 775, 4,
IF(reg = 1025 OR reg = 1026, 5, 
IF(reg = 1280 OR reg = 1281, 7,
IF(reg = 1536, 8, 
IF(reg = 2048, 6,
IF(reg = 2304, 9
))))))))))
```

Serviceattribute

Full State

```taphome
var state := MODBUSR(H, 32089, Uint16);
SWITCH(state, 0, "Idle: Initializing",
 1,"Idle: Detecting ISO", 
 2,"Idle: Detecting irradiation", 
 3, "Idle: Grid Detecting", 
 256, "Starting", 
 512, "On-Grid", 
 513, "On-Grid: Power Limit", 
 514, "On-Grid: self-derating", 
 768, "Shutdown: Fault", 
 769, "Shutdown: Command", 
 770, "Shutdown: OVGR", 
 771,"Shutdown: Communication disconnected", 
 772, "Shutdown: Power Limit", 
 773, "Shutdown: Start manually", 
 774, "Shutdown: DC Switch OFF",
 1025, "Grid dispatch:cos(Phi)-P curve",
 1026, "Grid dispatch:Q-U curve",
40960, "Idle: No irradiation",
1280, "Spot-check",
1281, "Spot-checking",
1536, "Inspecting",
1792, "SFCI self-check",
2048, "IV scanning",
2304, "DC input detection",
"Unknown"
 );
```

Grid Connection

```taphome
var reg := MODBUSR(H, 32000,Uint16);
IF(GETBIT(reg,0) = 1, "Standby",
IF(GETBIT(reg,2) = 1 , "Normal Grid Connection",
IF(GETBIT(reg,3) = 1, "Grid connection with derating due to power rationing",
IF(GETBIT(reg,4) = 1, "Grid connection with derating due to inverter internal causes", "Not Connected"
)
)
)
)
```

Teleindication

```taphome
var reg := MODBUSR(H, 32000,Uint16);
IF(GETBIT(reg,0) = 1, "Standby",
IF(GETBIT(reg,5) = 1 , "Normal Stop",
IF(GETBIT(reg,6) = 1, "Stop due to faults",
IF(GETBIT(reg,7) = 1, "Stop due to power rationing",
IF(GETBIT(reg,8) = 1, "Shutdown",
IF(GETBIT(reg,9) = 1, "Spot check",
IF(GETBIT(reg,1) = 1, "Grid Connected",
"Unknown State")
)
)
)
)
)
)
```

Locking Status

```taphome
IF(GETBIT(MODBUSR(H, 32002, Uint16),0) = 1, "Unlocked", "Locked");
```

PV Connection Status

```taphome
IF(GETBIT(MODBUSR(H, 32002, Uint16),0) = 1, "Connected", "Disconnected");
```

Startup time

```taphome
var reg := MODBUSR(H, 32091, Uint32, 2);
var min := FLOOR(MOD(reg, 3600)/60);
var ho := FLOOR(MOD(reg,86400)/3600);
var minutes := IF(min<10, "0" + min, min);
var hours := IF(ho<10, "0" + ho, ho);
hours + ":" + minutes;
```

Shutdown time

```taphome
var reg := MODBUSR(H, 32093, Uint32, 2);
var min := FLOOR(MOD(reg, 3600)/60);
var ho := FLOOR(MOD(reg,86400)/3600);
var minutes := IF(min<10, "0" + min, min);
var hours := IF(ho<10, "0" + ho, ho);
hours + ":" + FLOOR(minutes);
```

PV1 Strom Variable Nur lesen

Register: H:32017 Int16 Einheit: A numeric

Serviceattribute

|              |
|--------------|
| PV1 Spannung |

Lesen

```taphome
MODBUSR(H, 32017, Int16)/100
```

Serviceattribute

PV1 Voltage

```taphome
MODBUSR(H, 32016, Int16)/10 + "V"
```

PV2 Strom Variable Nur lesen

Register: H:32019 Int16 Einheit: A numeric

Serviceattribute

|              |
|--------------|
| PV2 Spannung |

Lesen

```taphome
MODBUSR(H, 32019, Int16)/100
```

Serviceattribute

PV2 Voltage

```taphome
MODBUSR(H, 32018, Int16)/10
```

**Verbindung:** Modbus RTU • 9600 baud• 8N1 • Slave ID: $\[SlaveId]

Mögliche Verbesserungen (13)

- H:30035 Firmware Version — STR, 15 regs, read-only — useful for diagnostics
- H:32010 Alarm 3 — Bitfield16, additional alarm bits not decoded in template readscript
- H:32090 Fault Code — U16, specific fault code when device is in fault state
- H:32095 Active Power (fast) — I32, kW, /1000, faster-updating active power reading
- H:32108 Total DC Input Energy — U32, kWh, /100, cumulative DC energy input
- H:32116 Monthly Energy — U32, kWh, /100, electricity generated this month
- H:32118 Yearly Energy — U32, kWh, /100, electricity generated this year
- H:37765 Battery Charge/Discharge Power — I32, W, positive=charging negative=discharging — would complement existing Battery SOC device
- H:37121 Grid Exported Energy (unsigned) — U32, kWh, /100, unsigned variant of grid exported energy — complements the signed I32 already in template at H:37119
- H:37123 Grid Accumulated Energy — U32, kWh, /100, total energy consumed from grid
- H:40200 Power On — WO, E16, remote inverter power-on command
- H:40201 Shutdown — WO, E16, remote inverter shutdown command
- RTU Variant Notes — Modbus RTU over RS-485. Default: 9600 baud, 8N1. COM port Bus 1: Pin 1 (485A1-1) = A+, Pin 3 (485B1-1) = B-. Do NOT use Modbus RTU with WLAN Smart Dongle connected — causes CRC errors. RTU template has 2 PV strings (vs TCP's 4) and includes Grid Power Meter (H:37113, H:37119) + Battery SOC (H:37760). Huawei warns against Modbus RTU due to internal server communication conflicts.

## Importparameter

Diese Werte geben Sie beim Import des XML ein.

| In der App abgefragt | Standard      |
|----------------------|---------------|
| Slave-ID             | `1`           |
| IP-Adresse           | `192.168.1.0` |

## Quellen

- Solar Inverter Modbus Interface Definitions (V3.0)
  
  2026-03-28
  
  [PDF](https://taphome.com/compatibility/devices/huawei-sun2000-rtu/manufacturer/modbus-interface-definitions-v3.pdf)
- SUN2000-(5KTL, 6KTL)-M0 User Manual
  
  [solar.huawei.com](https://solar.huawei.com/-/media/Solar/attachment/pdf/au/service/residential/SUN2000-5-6KTL-M0-User_Manual.pdf) 2026-03-28
  
  [PDF](https://taphome.com/compatibility/devices/huawei-sun2000-rtu/manufacturer/user-manual-m0.pdf)
- huawei-solar-lib — Python Modbus Library
  
  [github.com](https://github.com/wlcrs/huawei-solar-lib) 2026-03-28

Herstellerdokumente sind © ihrer jeweiligen Eigentümer. Sie werden so bereitgestellt, wie der Hersteller sie veröffentlicht hat, nur zur Information.

## Verwandte Dokumentation

- [Modbus Integration](https://taphome.com/de/compatibility/modbus-guide/)
- [Modbus](https://taphome.com/de/docs/integration/modbus/)
- [Einfache Konfiguration mit Vorlagen](https://taphome.com/de/docs/integration/modbus/templates/)
- [Modbus-Skripte und Prefetch](https://taphome.com/de/docs/script/modbus-scripts/)
- [Modbus-Funktionen](https://taphome.com/de/docs/script/modbus/)
- [Modbus-Datentypen](https://taphome.com/de/docs/script/modbus-data-types/)

