---
title: "Deye SUN-xK-SG04LP3-EU / SG05LP3-EU"
description: "Hybrid-Wechselrichter Deye SG04LP3 über Modbus RTU: Energiefluss von PV, Verbrauch, Netz und Batterie, SoC, Fehler, Betriebsmodus und Time-of-Use. RJ45."
url: "https://taphome.com/de/compatibility/deye-sg04lp3-hybrid-inverter/"
language: de
lastmod: 2026-11-10
generator: hugo
ai:
  topics: ["modbus-rtu","rs485","inverter","hybrid-inverter","solar","battery-storage","3-phase","energy-monitoring","time-of-use"]
  questions: ["Wie wird ein Hybrid-Wechselrichter Deye SUN-xK-SG04LP3-EU in TapHome integriert?","Was misst und steuert die TapHome-Vorlage für den Deye SG04LP3?","Wie wird der Wechselrichter Deye SG04LP3 über Modbus RTU an TapHome angeschlossen?","Wo stellt man die Modbus-Adresse am Wechselrichter Deye SG04LP3 ein?","Welcher RJ45-Anschluss des Deye SG04LP3 wird für Modbus verwendet und wie ist seine Pinbelegung?","Warum antwortet der Deye SG04LP3 nicht am Anschluss Modbus?","Kann TapHome den Time-of-Use-Zeitplan eines Deye Hybrid-Wechselrichters steuern?"]
---

# Deye SUN-xK-SG04LP3-EU / SG05LP3-EU

Kommunikation: Modbus RTU

## Integrationsanleitung

Der Deye SUN-xK-SG04LP3-EU ist ein dreiphasiger (230 V / 400 V) Niedervolt-Hybrid-Wechselrichter mit einem Batterieeingang und zwei MPPT-Eingängen für den PV-Generator; das Handbuch des Herstellers gilt für die Modelle SUN-5K, 6K, 8K, 10K und 12K-SG04LP3-EU. TapHome kommuniziert mit dem Wechselrichter über **Modbus RTU** auf RS-485 (9600 Baud, 8N1) über den RJ45-Anschluss mit der Bezeichnung **Modbus** auf der Kommunikationsplatine des Wechselrichters.

Die Vorlage liest PV-Produktion, Verbrauch, Netzbezug und Netzeinspeisung, Laden und Entladen der Batterie sowie den Ladezustand der Batterie und stellt die sieben Geräte des TapHome-Energieflusses bereit. Außerdem liest sie Werte der Batterie, des Netzes, der PV-Strings und des Wechselrichterausgangs, wandelt den Betriebszustand, die Warnungen und die Fehlercodes des Wechselrichters in TapHome-Benachrichtigungen um und schreibt den Energiemanagement-Modus, die Netzladung, die Stromgrenzen der Batterie, die Nutzung des Generatoranschlusses und den Time-of-Use-Zeitplan (TOU) mit sechs Zeitfenstern.

## Hardwareanschluss

> [!WARNING]
> Nur qualifiziertes Fachpersonal darf den Wechselrichter installieren und verdrahten. Die Kommunikationsanschlüsse befinden sich im Anschlussraum hinter der Metallabdeckung; die AC- und DC-Kreise müssen vor Beginn der Arbeiten getrennt voneinander abgeschaltet werden, wie im Handbuch des Herstellers beschrieben.

### Kommunikationsanschlüsse

Die RJ45-Kommunikationsanschlüsse befinden sich auf der rechten Seite der Kommunikationsplatine: **Parallel_A**, **Parallel_B**, **Meter-485**, **Modbus**, **BMS** und **DRM**.

![Kommunikationsanschlüsse des Deye SG04LP3-EU: RJ45-Buchsen Parallel_A, Parallel_B, Meter-485, Modbus, BMS und DRM mit ihren Funktionen.](https://taphome.com/images/compatibility/deye-sg04lp3-hybrid-inverter/ports-layout_hu_aeac3891ac9c016.jpg)

| Anschluss | Funktion laut Hersteller |
|------|-----------------------------------|
| Parallel_A, Parallel_B | Parallelkommunikation zwischen Wechselrichtern (CAN-Schnittstelle) |
| Meter-485 | Kommunikation mit dem externen Energiezähler (zum Beispiel CHNT DTSU666 oder Eastron SDM630) |
| Modbus | Als „Reserved“ bezeichnet; der Anhang mit der Pinbelegung beschreibt ihn als Anschluss für die Fernüberwachung |
| BMS | Batteriekommunikation (CAN / RS-485) |
| DRM | Externe digitale Eingangssignale |
| WIFI/RS232 (separater 9-poliger Anschluss) | WLAN-Datenlogger |

TapHome wird an den Anschluss **Modbus** angeschlossen. Verwenden Sie nicht den Anschluss Meter-485 (er dient dem Energiezähler) und nicht den Anschluss BMS (er dient der Batterie).

> [!WARNING]
> Der Hersteller kennzeichnet den Anschluss Modbus als **„Reserved“** und weist darauf hin, dass **dieser Anschluss bei einigen Hardwareversionen nicht nutzbar ist**. Prüfen Sie vor dem Verlegen des Kabels, ob der Anschluss Modbus am konkreten Wechselrichter antwortet; antwortet er nicht, kann die Vorlage darüber nicht kommunizieren.

### Pinbelegung des Anschlusses Modbus

![RJ45-Pinbelegung der Anschlüsse BMS, Meter-485 und Modbus des Wechselrichters Deye SG04LP3-EU; der Anschluss Modbus nutzt die Pins 1/8 als 485_B, 2/7 als 485_A und 3/6 als GND_485.](https://taphome.com/images/compatibility/deye-sg04lp3-hybrid-inverter/wiring-rs485-pinout_hu_6afed0daae2db4b4.jpg)

| RJ45-Pin (Anschluss Modbus) | Signal | RS-485-Bus von TapHome |
|------------------------|--------|--------------------|
| 1, 8 | 485_B | B |
| 2, 7 | 485_A | A |
| 3, 6 | GND_485 | GND |
| 4, 5 | Nicht belegt | — |

Crimpen Sie einen RJ45-Stecker auf ein Twisted-Pair-Kabel und verbinden Sie 485_A mit der Klemme A und 485_B mit der Klemme B des RS-485-Busses von TapHome. Bei längeren Kabelstrecken wird eine gemeinsame GND-Verbindung (GND_485) empfohlen.

> [!NOTE]
> An der RS-485-Leitung, die mit dem Anschluss Modbus verbunden ist, darf nur ein Modbus-Master den Wechselrichter abfragen. Ist an dieselbe Leitung ein weiteres Modbus-Überwachungsgerät angeschlossen, trennen Sie es oder verwenden Sie einen RS-485-Splitter oder -Hub. Der WLAN-Datenlogger des Herstellers nutzt seinen eigenen Anschluss WIFI/RS232.

## Konfiguration

### Modbus-Adresse einstellen

Die Modbus-Adresse ist das Feld **Modbus SN** im Display des Wechselrichters:

1. Tippen Sie auf dem Hauptbildschirm auf das Symbol **System Setup**.
2. Öffnen Sie **Advanced Function** und wechseln Sie zur Seite mit **Parallel**, **Modbus SN** und **EX_Meter For CT** (Paral. Set3).
3. Stellen Sie **Modbus SN** ein und bestätigen Sie mit der Häkchen-Taste.

Der Importparameter der Vorlage **Modbus Slave ID** (Standardwert **1**) muss mit der Modbus SN übereinstimmen. Der Screenshot im Handbuch zeigt für einen einzelnen Wechselrichter `00`; stellen Sie einen Wert ungleich null ein, da die Modbus-Adresse 0 für Broadcast reserviert ist. In einem Parallelsystem erhält laut Handbuch jeder Wechselrichter seine eigene Modbus SN (01, 02, 03), daher benötigt jeder Wechselrichter einen eigenen Import der Vorlage mit eigener Slave ID.

### Kommunikationsparameter

| Parameter | Wert |
|-----------|-------|
| Baudrate | 9600 |
| Datenbits | 8 |
| Parität | Keine |
| Stoppbits | 1 |
| Funktionscodes | 0x03 (Lesen), 0x10 (Schreiben mehrerer Register) |
| Modbus Slave ID | 1 (muss mit der Modbus SN übereinstimmen) |

Schreibvorgänge verwenden den Funktionscode 0x10; der Wechselrichter unterstützt den Funktionscode 0x06 (Schreiben eines einzelnen Registers) nicht.

Fügen Sie in TapHome am RS-485-Bus, an den der Wechselrichter angeschlossen ist, eine Modbus-RTU-Schnittstelle mit diesen Parametern hinzu und importieren Sie die Vorlage mit der passenden Modbus Slave ID.

> [!WARNING]
> Schreiben Sie niemals in die Register 80, 81, 91 und 92 (Wechselrichter ein/aus, Werksreset, EEPROM) oder in die Register für Batterietyp und Batterieschutz (98–103, 111). Die Vorlage stellt nur vom Benutzer konfigurierbare Register bereit.

## Gerätefunktionen

### Energiefluss

Die Vorlage stellt die sieben Geräte bereit, die TapHome für einen vollständigen solaren Energiefluss verwendet:

- **PV-Produktion** — Summe der Leistungen der PV-Eingänge (Register 672–675) in kW, Gesamtenergie aus dem 32-Bit-Zähler in den Registern 534–535.
- **Verbrauch** — gesamte Lastleistung (Register 653) und Gesamtverbrauch (Register 527–528).
- **Aus dem Netzwerk** und **Zum Netzwerk** — die vorzeichenbehaftete Netzleistung (Register 625) wird aufgeteilt: Positive Werte speisen Aus dem Netzwerk, negative Werte (als positive Zahlen) speisen Zum Netzwerk. Gesamtenergie aus den Registern 522–523 (aus dem Netz) und 524–525 (ins Netz).
- **Von der Batterie** und **Zur Batterie** — die vorzeichenbehaftete Batterieleistung (Register 590) wird auf dieselbe Weise aufgeteilt. Gesamtenergie aus den Registern 518–519 (Entladen) und 516–517 (Laden).
- **Batterie (SOC)** — Ladezustand der Batterie, Register 588, 0–100 %.

> [!TIP]
> Wählen Sie für die smart rule Energiemanager den Zähler **Grid - power balance**. Er meldet die vorzeichenbehaftete Netzleistung (Register 625): positiv beim Bezug aus dem Netz, negativ bei der Einspeisung von Überschuss. Aus dem Netzwerk und Zum Netzwerk sind immer nicht negativ und dürfen nicht als Zähler für den Energiemanager verwendet werden.

### Batterie

- **Battery - temperature** — Register 586, Formel `(raw − 1000) / 10`.
- **Battery - voltage** — Register 587; Batteriestrom (Register 591) und Batterieleistung (Register 590) als Service-Attribute.
- **Battery - charge today** — Register 514; die heute entladene Energie (Register 515) als Service-Attribut.

### Netz

- **Grid - power balance** — vorzeichenbehaftete gesamte Netzleistung (Register 625); Netzleistung an L1, L2 und L3 (Register 622–624) sowie die heute bezogene und eingespeiste Energie (Register 520 und 521) als Service-Attribute.
- **Grid - voltage L1** — Register 598; Netzspannung L2 und L3 (Register 599 und 600) und Netzfrequenz (Register 609) als Service-Attribute.

### PV und Verbrauch

- **PV1 - voltage** und **PV2 - voltage** — Register 676 und 678; der Stringstrom (Register 677 und 679) und die Stringleistung (Register 672 und 673) als Service-Attribute.
- **PV - production today** — Register 529.
- **Load - consumption today** — Register 526; Lastleistung an L1, L2 und L3 (Register 650–652) als Service-Attribute.

### Wechselrichter

- **Inverter - output power total** — Register 636; Ausgangsleistung je Phase (Register 633–635), Ausgangsspannung je Phase (Register 627–629) und Ausgangsfrequenz (Register 638) als Service-Attribute.
- **Backup - output power** — Register 643.
- **Generator port - power** — Register 667.
- **DC transformer temperature** (Register 540) und **Heat sink temperature** (Register 541).

### Zustand, Warnungen und Fehler

Das Modul zeigt den **Running state** (Register 500: Standby, Self-check, Normal, Alarm, Fault, Activating), den Gerätetyp (Register 0) und die Nennleistung (Register 20–21) als Service-Attribute. Der Betriebszustand Alarm löst eine Warnung aus, Fault einen Fehler.

Die Warnungswörter (Register 553–554) werden in benannte Warnungen umgewandelt: Lüfterwarnung, falsche Phasenfolge des Netzes, Kommunikationsfehler des Zählers, Verbindung zur Lithiumbatterie verloren und Qualität der Parallelkommunikation. Die Fehlerwörter (Register 555–558) werden in benannte Fehler für die Fehlercodes F07, F10, F13, F18, F20, F22–F24, F26, F29, F35, F41, F42, F46–F49, F56, F58 und F62–F64 umgewandelt; die Bedeutung jedes Codes und die Abhilfe des Herstellers finden Sie in der Fehlertabelle im Handbuch des Wechselrichters.

### Betriebseinstellungen

- **Settings - energy management mode** — Selling first, Zero export to load oder Zero export to CT (Register 142). Laut Handbuch benötigt Zero export to CT die externen Stromwandler an den Eingängen CT-L1, CT-L2 und CT-L3.
- **Settings - solar sell** — erlaubt in den Modi der Nulleinspeisung den Verkauf überschüssiger PV-Energie ins Netz (Register 145).
- **Settings - max sell power** (Register 143) und **Settings - max solar sell power** (Register 340).
- **Settings - grid charging** — Laden der Batterie aus dem Netz ein oder aus (Register 130) und **Settings - grid charge current** (Register 128).
- **Settings - max battery charge current** (Register 108) und **Settings - max battery discharge current** (Register 109). Das Handbuch nennt den zulässigen Bereich je Modell: 0–120 A (5 kW), 0–150 A (6 kW), 0–190 A (8 kW), 0–210 A (10 kW) und 0–240 A (12 kW).
- **Settings - generator port use** — Generator input, Smart load output oder Micro-inverter input (Register 133).

### Time-of-Use-Zeitplan

Der Time-of-Use-Zeitplan des Wechselrichters hat sechs Zeitfenster. Die Vorlage stellt für jedes Zeitfenster W1–W6 bereit:

- **TOU W1–W6 - start time** — Wert im Format HHMM (zum Beispiel 1430 = 14:30), Register 148–153.
- **TOU W1–W6 - target SoC** — Ziel-Ladezustand der Batterie als Schieberegler 0–100 %, Register 166–171.
- **TOU W1–W6 - grid charging** — Netzladung während des Zeitfensters ein oder aus; die Vorlage ändert nur Bit 0 der Register 172–177 und behält die übrigen Bits bei.

**TOU - enable** schaltet den gesamten Zeitplan über Bit 0 des Registers 146 ein oder aus und behält die Auswahl der Wochentage (Bits 1–7) bei.

> [!NOTE]
> Laut Handbuch interpretiert der Wechselrichter den Batteriewert jedes Zeitfensters je nach Auswahl **Use Batt V** / **Use Batt %** im Menü Battery Setting als Spannung oder als Ladezustand. Die Geräte für den Ziel-Ladezustand arbeiten mit Prozentwerten, daher sollte der Wechselrichter auf Use Batt % eingestellt sein. Wenn das Netz verfügbar ist, entlädt sich die Batterie nur, wenn Time of Use angehakt ist.

## Fehlerbehebung

**Keine Daten / Kommunikationsfehler**

- Prüfen Sie, ob das Kabel im Anschluss **Modbus** steckt und nicht in Meter-485 oder BMS.
- Prüfen Sie die A/B-Polarität (Pins 2/7 = 485_A, Pins 1/8 = 485_B) und die GND-Verbindung.
- Prüfen Sie, ob die Modbus Slave ID der Vorlage mit der **Modbus SN** in Advanced Function übereinstimmt und ob die Modbus SN nicht 0 ist.
- Prüfen Sie, ob an derselben RS-485-Leitung kein anderer Modbus-Master aktiv ist.
- Der Hersteller gibt an, dass der Anschluss Modbus bei einigen Hardwareversionen nicht nutzbar ist. Wenn Verdrahtung und Adresse stimmen und der Wechselrichter trotzdem nicht antwortet, ist der Anschluss bei dieser Hardwareversion möglicherweise nicht nutzbar.

**Werte um den Faktor 1000 falsch oder unsinnig**

Prüfen Sie, ob es sich um eine Niedervolt-Variante (LV) SG04LP3 oder SG05LP3 handelt. Die Hochvolt-Familie SG01HP3 verwendet eine andere Skalierung für Batteriespannung, Batterieleistung und PV-Eingangsleistung; die Vorlage ist nur auf die LV-Skalierung ausgelegt.

**Batterie (SOC) bleibt bei 0 %**

Register 588 liefert in einigen Selbsttestzuständen 0. Warten Sie, bis der Running state Normal erreicht; der Ladezustand wird innerhalb des nächsten Abfrageintervalls aktualisiert.

**Time-of-Use-Einstellungen werden nicht übernommen**

Stellen Sie sicher, dass **TOU - enable** eingeschaltet ist und mindestens ein Zeitfenster eine Startzeit ungleich null hat. Prüfen Sie, ob der Wechselrichter auf Use Batt % eingestellt ist, wenn die Werte für den Ziel-Ladezustand ignoriert zu werden scheinen.

**Warnung Kommunikationsfehler des Zählers**

Die Warnung meldet der Wechselrichter selbst (Warnungswort, Register 553); sie bedeutet nicht, dass die Verbindung zu TapHome ausgefallen ist. Der Energiezähler ist am Anschluss Meter-485 angeschlossen; prüfen Sie seine Verdrahtung und, wenn ein externer Zähler mit EX_Meter For CT verwendet wird, die Einstellung **Meter Select** (CHNT oder Eastron) in Advanced Function.

## Verfügbare Geräte 49

Diese Geräte erscheinen nach dem Import in TapHome.

Deye SUN-xK-SG04LP3-EU Modul

Serviceattribute

|               |
|---------------|
| Running state |
| Device type   |
| Rated power   |

Lesen (Modul)

```taphome
VAR state := MODBUSR(H, 500, UInt16);
IF(state = 3, ADDWARNING(64, "Inverter alarm (running state 3)"));
IF(state = 4, ADDERROR(65, "Inverter fault (running state 4)"));

VAR w1 := MODBUSR(H, 553, UInt16);
IF(GETBIT(w1, 1), ADDWARNING(1, "Fan warning"));
IF(GETBIT(w1, 2), ADDWARNING(2, "Grid phase sequence wrong"));
IF(GETBIT(w1, 3), ADDWARNING(3, "Meter communication failure"));

VAR w2 := MODBUSR(H, 554, UInt16);
IF(GETBIT(w2, 14), ADDWARNING(14, "Lithium battery lost"));
IF(GETBIT(w2, 15), ADDWARNING(15, "Parallel communication quality"));

VAR f1 := MODBUSR(H, 555, UInt16);
IF(GETBIT(f1, 6), ADDERROR(6, "F07 DC/DC soft-start fault"));
IF(GETBIT(f1, 9), ADDERROR(9, "F10 Auxiliary power supply fault"));
IF(GETBIT(f1, 12), ADDERROR(12, "F13 Working mode changed"));

VAR f2 := MODBUSR(H, 556, UInt16);
IF(GETBIT(f2, 1), ADDERROR(17, "F18 AC over-current"));
IF(GETBIT(f2, 3), ADDERROR(19, "F20 DC over-current"));
IF(GETBIT(f2, 5), ADDERROR(21, "F22 Emergency stop - inverter locked"));
IF(GETBIT(f2, 6), ADDERROR(22, "F23 Leakage current fault"));
IF(GETBIT(f2, 7), ADDERROR(23, "F24 PV insulation resistance fault"));
IF(GETBIT(f2, 9), ADDERROR(25, "F26 DC bus unbalanced"));
IF(GETBIT(f2, 12), ADDERROR(28, "F29 Parallel CAN bus fault"));

VAR f3 := MODBUSR(H, 557, UInt16);
IF(GETBIT(f3, 2), ADDERROR(34, "F35 No AC grid"));
IF(GETBIT(f3, 8), ADDERROR(40, "F41 Parallel system stop"));
IF(GETBIT(f3, 9), ADDERROR(41, "F42 AC line low voltage"));
IF(GETBIT(f3, 13), ADDERROR(45, "F46 Backup battery fault"));
IF(GETBIT(f3, 14), ADDERROR(46, "F47 AC over-frequency"));
IF(GETBIT(f3, 15), ADDERROR(47, "F48 AC under-frequency"));

VAR f4 := MODBUSR(H, 558, UInt16);
IF(GETBIT(f4, 0), ADDERROR(48, "F49 Backup battery fault"));
IF(GETBIT(f4, 7), ADDERROR(55, "F56 DC bus voltage too low"));
IF(GETBIT(f4, 9), ADDERROR(57, "F58 BMS communication fault"));
IF(GETBIT(f4, 13), ADDERROR(61, "F62 DRM stop"));
IF(GETBIT(f4, 14), ADDERROR(62, "F63 Arc fault"));
IF(GETBIT(f4, 15), ADDERROR(63, "F64 Heat sink temperature too high"));
```

Serviceattribute

Running state

```taphome
IF(MODBUSR(H, 500, UInt16) = 0, "Standby", IF(MODBUSR(H, 500, UInt16) = 1, "Self-check", IF(MODBUSR(H, 500, UInt16) = 2, "Normal", IF(MODBUSR(H, 500, UInt16) = 3, "Alarm", IF(MODBUSR(H, 500, UInt16) = 4, "Fault", "Activating")))))
```

Device type

```taphome
TOSTRING(MODBUSR(H, 0, UInt16))
```

Rated power

```taphome
TOSTRING(MODBUSR(H, 20, LittleEndianUint32) / 10, "F1") + " W"
```

${deviceType\_PVProduction} Stromzähler

Gesamtverbrauch lesen

```taphome
MODBUSR(H, 534, LittleEndianUint32) / 10
```

Bedarf lesen

```taphome
(MODBUSR(H, 672, UInt16) + MODBUSR(H, 673, UInt16) + MODBUSR(H, 674, UInt16) + MODBUSR(H, 675, UInt16)) / 1000
```

${deviceType\_PVLoad} Stromzähler

Gesamtverbrauch lesen

```taphome
MODBUSR(H, 527, LittleEndianUint32) / 10
```

Bedarf lesen

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

${deviceType\_PVFromGrid} Stromzähler

Gesamtverbrauch lesen

```taphome
MODBUSR(H, 522, LittleEndianUint32) / 10
```

Bedarf lesen

```taphome
MAX(MODBUSR(H, 625, Int16), 0) / 1000
```

${deviceType\_PVToGrid} Stromzähler

Gesamtverbrauch lesen

```taphome
MODBUSR(H, 524, LittleEndianUint32) / 10
```

Bedarf lesen

```taphome
MAX(-MODBUSR(H, 625, Int16), 0) / 1000
```

${deviceType\_PVFromBattery} Stromzähler

Gesamtverbrauch lesen

```taphome
MODBUSR(H, 518, LittleEndianUint32) / 10
```

Bedarf lesen

```taphome
MAX(MODBUSR(H, 590, Int16), 0) / 1000
```

${deviceType\_PVToBattery} Stromzähler

Gesamtverbrauch lesen

```taphome
MODBUSR(H, 516, LittleEndianUint32) / 10
```

Bedarf lesen

```taphome
MAX(-MODBUSR(H, 590, Int16), 0) / 1000
```

${deviceType\_BatterySOC} Analogeingang

Eingangslevel lesen

```taphome
MODBUSR(H, 588, UInt16) / 100
```

Battery - temperature Temperatursensor

Temperatur lesen

```taphome
(MODBUSR(H, 586, UInt16) - 1000) / 10
```

Battery - voltage Variable

Serviceattribute

|                 |
|-----------------|
| Battery current |
| Battery power   |

Lesen

```taphome
MODBUSR(H, 587, UInt16) / 100
```

Serviceattribute

Battery current

```taphome
TOSTRING(MODBUSR(H, 591, Int16) / 100, "F2") + " A"
```

Battery power

```taphome
TOSTRING(MODBUSR(H, 590, Int16), "F0") + " W"
```

Battery - charge today Variable

Serviceattribute

|                         |
|-------------------------|
| Battery discharge today |

Lesen

```taphome
MODBUSR(H, 514, UInt16) / 10
```

Serviceattribute

Battery discharge today

```taphome
TOSTRING(MODBUSR(H, 515, UInt16) / 10, "F1") + " kWh"
```

Grid - voltage L1 Variable

Serviceattribute

|                 |
|-----------------|
| Grid voltage L2 |
| Grid voltage L3 |
| Grid frequency  |

Lesen

```taphome
MODBUSR(H, 598, UInt16) / 10
```

Serviceattribute

Grid voltage L2

```taphome
TOSTRING(MODBUSR(H, 599, UInt16) / 10, "F1") + " V"
```

Grid voltage L3

```taphome
TOSTRING(MODBUSR(H, 600, UInt16) / 10, "F1") + " V"
```

Grid frequency

```taphome
TOSTRING(MODBUSR(H, 609, UInt16) / 100, "F2") + " Hz"
```

Grid - power balance Stromzähler

Serviceattribute

|                          |
|--------------------------|
| Grid power L1            |
| Grid power L2            |
| Grid power L3            |
| Grid energy bought today |
| Grid energy sold today   |

Bedarf lesen

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

Serviceattribute

Grid power L1

```taphome
TOSTRING(MODBUSR(H, 622, Int16)) + " W"
```

Grid power L2

```taphome
TOSTRING(MODBUSR(H, 623, Int16)) + " W"
```

Grid power L3

```taphome
TOSTRING(MODBUSR(H, 624, Int16)) + " W"
```

Grid energy bought today

```taphome
TOSTRING(MODBUSR(H, 520, UInt16) / 10, "F1") + " kWh"
```

Grid energy sold today

```taphome
TOSTRING(MODBUSR(H, 521, UInt16) / 10, "F1") + " kWh"
```

PV1 - voltage Variable

Serviceattribute

|             |
|-------------|
| PV1 current |
| PV1 power   |

Lesen

```taphome
MODBUSR(H, 676, UInt16) / 10
```

Serviceattribute

PV1 current

```taphome
TOSTRING(MODBUSR(H, 677, UInt16) / 10, "F1") + " A"
```

PV1 power

```taphome
TOSTRING(MODBUSR(H, 672, UInt16)) + " W"
```

PV2 - voltage Variable

Serviceattribute

|             |
|-------------|
| PV2 current |
| PV2 power   |

Lesen

```taphome
MODBUSR(H, 678, UInt16) / 10
```

Serviceattribute

PV2 current

```taphome
TOSTRING(MODBUSR(H, 679, UInt16) / 10, "F1") + " A"
```

PV2 power

```taphome
TOSTRING(MODBUSR(H, 673, UInt16)) + " W"
```

PV - production today Variable

Lesen

```taphome
MODBUSR(H, 529, UInt16) / 10
```

Load - consumption today Variable

Serviceattribute

|               |
|---------------|
| Load power L1 |
| Load power L2 |
| Load power L3 |

Lesen

```taphome
MODBUSR(H, 526, UInt16) / 10
```

Serviceattribute

Load power L1

```taphome
TOSTRING(MODBUSR(H, 650, Int16)) + " W"
```

Load power L2

```taphome
TOSTRING(MODBUSR(H, 651, Int16)) + " W"
```

Load power L3

```taphome
TOSTRING(MODBUSR(H, 652, Int16)) + " W"
```

Inverter - output power total Variable

Serviceattribute

|                     |
|---------------------|
| Inverter output L1  |
| Inverter output L2  |
| Inverter output L3  |
| Inverter voltage L1 |
| Inverter voltage L2 |
| Inverter voltage L3 |
| Inverter frequency  |

Lesen

```taphome
MODBUSR(H, 636, Int16)
```

Serviceattribute

Inverter output L1

```taphome
TOSTRING(MODBUSR(H, 633, Int16)) + " W"
```

Inverter output L2

```taphome
TOSTRING(MODBUSR(H, 634, Int16)) + " W"
```

Inverter output L3

```taphome
TOSTRING(MODBUSR(H, 635, Int16)) + " W"
```

Inverter voltage L1

```taphome
TOSTRING(MODBUSR(H, 627, UInt16) / 10, "F1") + " V"
```

Inverter voltage L2

```taphome
TOSTRING(MODBUSR(H, 628, UInt16) / 10, "F1") + " V"
```

Inverter voltage L3

```taphome
TOSTRING(MODBUSR(H, 629, UInt16) / 10, "F1") + " V"
```

Inverter frequency

```taphome
TOSTRING(MODBUSR(H, 638, UInt16) / 100, "F2") + " Hz"
```

Backup - output power Variable

Lesen

```taphome
MODBUSR(H, 643, UInt16)
```

Generator port - power Variable

Lesen

```taphome
MODBUSR(H, 667, Int16)
```

DC transformer temperature Temperatursensor

Temperatur lesen

```taphome
(MODBUSR(H, 540, UInt16) - 1000) / 10
```

Heat sink temperature Temperatursensor

Temperatur lesen

```taphome
(MODBUSR(H, 541, UInt16) - 1000) / 10
```

Settings - energy management mode Mehrwertschalter

Werte / Zustände: Selling first · Zero export to load · Zero export to CT

Schaltzustand lesen

```taphome
MODBUSR(H, 142, UInt16)
```

Schaltzustand schreiben

```taphome
MODBUSWNE(H, 142, UInt16, Mu)
```

Settings - solar sell Schalter

Werte / Zustände: ON · OFF

Schaltzustand lesen

```taphome
MODBUSR(H, 145, UInt16)
```

Schaltzustand schreiben

```taphome
MODBUSWNE(H, 145, UInt16, St)
```

Settings - max sell power Variable

Lesen

```taphome
MODBUSR(H, 143, UInt16)
```

Schreiben

```taphome
MODBUSWNE(H, 143, UInt16, Va)
```

Settings - max solar sell power Variable

Lesen

```taphome
MODBUSR(H, 340, UInt16)
```

Schreiben

```taphome
MODBUSWNE(H, 340, UInt16, Va)
```

Settings - grid charging Schalter

Werte / Zustände: ON · OFF

Schaltzustand lesen

```taphome
MODBUSR(H, 130, UInt16)
```

Schaltzustand schreiben

```taphome
MODBUSWNE(H, 130, UInt16, St)
```

Settings - grid charge current Variable

Lesen

```taphome
MODBUSR(H, 128, UInt16)
```

Schreiben

```taphome
MODBUSWNE(H, 128, UInt16, Va)
```

Settings - max battery charge current Variable

Lesen

```taphome
MODBUSR(H, 108, UInt16)
```

Schreiben

```taphome
MODBUSWNE(H, 108, UInt16, Va)
```

Settings - max battery discharge current Variable

Lesen

```taphome
MODBUSR(H, 109, UInt16)
```

Schreiben

```taphome
MODBUSWNE(H, 109, UInt16, Va)
```

Settings - generator port use Mehrwertschalter

Werte / Zustände: Generator input · Smart load output · Micro-inverter input

Schaltzustand lesen

```taphome
MODBUSR(H, 133, UInt16)
```

Schaltzustand schreiben

```taphome
MODBUSWNE(H, 133, UInt16, Mu)
```

TOU - enable Schalter

Werte / Zustände: ON · OFF

Schaltzustand lesen

```taphome
GETBIT(MODBUSR(H, 146, UInt16), 0)
```

Schaltzustand schreiben

```taphome
VAR reg := MODBUSR(H, 146, UInt16);
reg := SETBIT(reg, 0, St);
MODBUSWNE(H, 146, UInt16, reg)
```

TOU W1 - start time Variable

Lesen

```taphome
MODBUSR(H, 148, UInt16)
```

Schreiben

```taphome
MODBUSWNE(H, 148, UInt16, Va)
```

TOU W1 - target SoC Dimmer

Level lesen

```taphome
LINEAR(MODBUSR(H, 166, UInt16), 0, 0, 100, 1)
```

Level schreiben

```taphome
MODBUSWNE(H, 166, UInt16, LINEAR(Le, 0, 0, 1, 100))
```

TOU W1 - grid charging Schalter

Werte / Zustände: ON · OFF

Schaltzustand lesen

```taphome
GETBIT(MODBUSR(H, 172, UInt16), 0)
```

Schaltzustand schreiben

```taphome
VAR reg := MODBUSR(H, 172, UInt16);
reg := SETBIT(reg, 0, St);
MODBUSWNE(H, 172, UInt16, reg)
```

TOU W2 - start time Variable

Lesen

```taphome
MODBUSR(H, 149, UInt16)
```

Schreiben

```taphome
MODBUSWNE(H, 149, UInt16, Va)
```

TOU W2 - target SoC Dimmer

Level lesen

```taphome
LINEAR(MODBUSR(H, 167, UInt16), 0, 0, 100, 1)
```

Level schreiben

```taphome
MODBUSWNE(H, 167, UInt16, LINEAR(Le, 0, 0, 1, 100))
```

TOU W2 - grid charging Schalter

Werte / Zustände: ON · OFF

Schaltzustand lesen

```taphome
GETBIT(MODBUSR(H, 173, UInt16), 0)
```

Schaltzustand schreiben

```taphome
VAR reg := MODBUSR(H, 173, UInt16);
reg := SETBIT(reg, 0, St);
MODBUSWNE(H, 173, UInt16, reg)
```

TOU W3 - start time Variable

Lesen

```taphome
MODBUSR(H, 150, UInt16)
```

Schreiben

```taphome
MODBUSWNE(H, 150, UInt16, Va)
```

TOU W3 - target SoC Dimmer

Level lesen

```taphome
LINEAR(MODBUSR(H, 168, UInt16), 0, 0, 100, 1)
```

Level schreiben

```taphome
MODBUSWNE(H, 168, UInt16, LINEAR(Le, 0, 0, 1, 100))
```

TOU W3 - grid charging Schalter

Werte / Zustände: ON · OFF

Schaltzustand lesen

```taphome
GETBIT(MODBUSR(H, 174, UInt16), 0)
```

Schaltzustand schreiben

```taphome
VAR reg := MODBUSR(H, 174, UInt16);
reg := SETBIT(reg, 0, St);
MODBUSWNE(H, 174, UInt16, reg)
```

TOU W4 - start time Variable

Lesen

```taphome
MODBUSR(H, 151, UInt16)
```

Schreiben

```taphome
MODBUSWNE(H, 151, UInt16, Va)
```

TOU W4 - target SoC Dimmer

Level lesen

```taphome
LINEAR(MODBUSR(H, 169, UInt16), 0, 0, 100, 1)
```

Level schreiben

```taphome
MODBUSWNE(H, 169, UInt16, LINEAR(Le, 0, 0, 1, 100))
```

TOU W4 - grid charging Schalter

Werte / Zustände: ON · OFF

Schaltzustand lesen

```taphome
GETBIT(MODBUSR(H, 175, UInt16), 0)
```

Schaltzustand schreiben

```taphome
VAR reg := MODBUSR(H, 175, UInt16);
reg := SETBIT(reg, 0, St);
MODBUSWNE(H, 175, UInt16, reg)
```

TOU W5 - start time Variable

Lesen

```taphome
MODBUSR(H, 152, UInt16)
```

Schreiben

```taphome
MODBUSWNE(H, 152, UInt16, Va)
```

TOU W5 - target SoC Dimmer

Level lesen

```taphome
LINEAR(MODBUSR(H, 170, UInt16), 0, 0, 100, 1)
```

Level schreiben

```taphome
MODBUSWNE(H, 170, UInt16, LINEAR(Le, 0, 0, 1, 100))
```

TOU W5 - grid charging Schalter

Werte / Zustände: ON · OFF

Schaltzustand lesen

```taphome
GETBIT(MODBUSR(H, 176, UInt16), 0)
```

Schaltzustand schreiben

```taphome
VAR reg := MODBUSR(H, 176, UInt16);
reg := SETBIT(reg, 0, St);
MODBUSWNE(H, 176, UInt16, reg)
```

TOU W6 - start time Variable

Lesen

```taphome
MODBUSR(H, 153, UInt16)
```

Schreiben

```taphome
MODBUSWNE(H, 153, UInt16, Va)
```

TOU W6 - target SoC Dimmer

Level lesen

```taphome
LINEAR(MODBUSR(H, 171, UInt16), 0, 0, 100, 1)
```

Level schreiben

```taphome
MODBUSWNE(H, 171, UInt16, LINEAR(Le, 0, 0, 1, 100))
```

TOU W6 - grid charging Schalter

Werte / Zustände: ON · OFF

Schaltzustand lesen

```taphome
GETBIT(MODBUSR(H, 177, UInt16), 0)
```

Schaltzustand schreiben

```taphome
VAR reg := MODBUSR(H, 177, UInt16);
reg := SETBIT(reg, 0, St);
MODBUSWNE(H, 177, UInt16, reg)
```

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

## Importparameter

Diese Werte geben Sie beim Import des XML ein.

| In der App abgefragt | Standard |
|----------------------|----------|
| Modbus Slave ID      | `1`      |

## 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/)

