TapHome

SolaX SK-SU Hybrid-Wechselrichter

Modbus TCP
Eingereicht von
Zuletzt aktualisiert: 03. 2026
SolaX SK-SU Hybrid-Wechselrichter

Die SolaX SK-SU Serie (SK-SU3000E, SK-SU3700E, SK-SU5000E, SK-SU3000C, SK-SU5000C) sind einphasige Hybrid-Wechselrichter aus der Gen2 X1 Hybrid Familie. Sie kombinieren die Solar-PV-Umwandlung mit dem Batteriespeichermanagement in einem Gerät. TapHome verbindet sich direkt über Modbus TCP per Ethernet mit dem Wechselrichter — kein zusätzliches Gateway oder WiFi-Dongle erforderlich.

Die Vorlage bietet Echtzeit-Überwachung: AC-Ausgangsleistung, PV-String-Produktion, Batterieladezustand und -leistung, Netzeinspeisung/-bezug, tägliche und gesamte Energieproduktion sowie Temperatursensoren für Wechselrichter und Batterie.

Modbus-Kommunikation aktivieren

Die SK-SU Serie verfügt über ein integriertes Ethernet-Modul mit nativer Modbus TCP Unterstützung. Keine zusätzliche Hardware (Pocket WiFi Dongle) erforderlich.

  1. Verbinden Sie ein Ethernet-Kabel vom Ethernet-Port des Wechselrichters mit Ihrem lokalen Netzwerk-Router oder Switch
  2. Prüfen Sie die DHCP-Tabelle des Routers, um die dem Wechselrichter zugewiesene IP-Adresse zu finden
  3. Stellen Sie sicher, dass TapHome Core im gleichen Netzwerk/Subnetz wie der Wechselrichter ist
  • Protokoll: Modbus TCP
  • Port: 502
  • Standard Slave ID: 1
  • Funktionscode: 0x04 (Read Input Registers)
  • Byte-Reihenfolge: Little-Endian für 32-Bit-Werte

Weisen Sie dem Wechselrichter in den DHCP-Einstellungen des Routers eine statische IP-Adresse zu, damit sich die Adresse nach einem Neustart nicht ändert.

Es wird nur eine aktive Modbus TCP Verbindung zum Wechselrichter gleichzeitig unterstützt. Schließen Sie alle anderen Modbus-Tools (QModMaster, SolaX Cloud Monitoring über Dongle) bevor Sie TapHome verbinden.

Konfiguration

Beim Import der Vorlage in TapHome geben Sie an:

  • IP-Adresse — die IP-Adresse des Wechselrichters im lokalen Netzwerk (Standard: 192.168.1.0)
  • Slave ID — Modbus Slave-Adresse (Standard: 1)

Der empfohlene minimale Abfragezyklus des Wechselrichters beträgt ca. 1 Sekunde. Die Vorlage verwendet Intervalle von 2,5–150 Sekunden je nach Gerät, was innerhalb dieses Limits liegt.

Gerätefunktionen

Die Vorlage stellt folgende Geräte bereit:

Solarproduktion
  • PV String 1 Power — Echtzeit-Leistung von PV-String 1 in kW (Register 0x0A, UInt16, geteilt durch 1000)
  • PV String 2 Power — Echtzeit-Leistung von PV-String 2 in kW (Register 0x0B, UInt16, geteilt durch 1000)
  • AC Power — gesamte AC-Ausgangsleistung des Wechselrichters in kW (Register 0x02, Int16, geteilt durch 1000)
Batterieüberwachung
  • Battery SOC — Batterieladezustand in Prozent (Register 0x1C, UInt16). Wird als 0–100 % in TapHome mittels AnalogInput mit Pegelumwandlung angezeigt (geteilt durch 100 für den Bereich 0,0–1,0).
  • Battery Power — Lade-/Entladeleistung in kW (Register 0x16, Int16, geteilt durch 1000). Positive Werte bedeuten Laden, negative Werte Entladen.
  • Battery Temperature — Batterietemperatur in °C (Register 0x55, UInt16, geteilt durch 10). Dies ist ein Gen2 SK-SU spezifisches Register.
Netzmessung
  • Grid Feed-in / Consumption — Echtzeit-Netzleistung in kW (Register 0x46–0x47, LittleEndianInt32, geteilt durch 1000). Positive Werte bedeuten Energieexport ins Netz, negative Werte Energieimport aus dem Netz.
  • Daily / Instant Production — Stromzähler mit täglicher Energieproduktion in kWh (Register 0x50, UInt16, geteilt durch 10) und momentaner AC-Leistung in kW (Register 0x02).
Gesamtenergie
  • Total Energy Production — kumulierte Gesamtenergie des Wechselrichters in kWh (Register 0x52–0x53, LittleEndianInt32, geteilt durch 1000).
Temperaturüberwachung
  • Inverter Temperature — interne Temperatur des Wechselrichters in °C (Register 0x08, Int16).
  • Battery Temperature — siehe Abschnitt Batterieüberwachung oben.
Serviceattribute

Das Modul stellt ein Serviceattribut bereit:

  • Run Mode — aktueller Betriebsmodus des Wechselrichters, gelesen aus Register 0x09. Werte: 0=Wait, 1=Check, 2=Normal, 3=Fault, 4=Permanent Fault, 5=Update, 6=Off-grid waiting, 7=Off-grid, 8=Self Test, 9=Idle, 10=Standby.
Alarme

Die Vorlage überwacht drei Fehlerregister und löst Alarme bei erkannten Störungen aus:

RegisterAlarm
0x40Wechselrichterstörung
0x42Ladestörung
0x43Managerstörung
Weitere Funktionen außerhalb der Vorlage

Der SolaX SK-SU stellt auch Modbus-Register für Netzspannung und -strom, PV-String-Spannungen und -Ströme, Netzfrequenz, Batteriespannung und -strom, BMS-Batterietemperatur, kumulierte Netzimport-/Exportenergie und die Einstellung Use Mode (Self Use, Feed-in Priority, Backup, Manual) bereit. Diese können in einer zukünftigen Aktualisierung zur TapHome-Vorlage hinzugefügt werden.

Fehlerbehebung

Keine Modbus-Kommunikation
  1. Überprüfen Sie, dass das Ethernet-Kabel am Ethernet-Port des Wechselrichters angeschlossen ist (nicht am WiFi-Dongle-Port)
  2. Bestätigen Sie die IP-Adresse des Wechselrichters — prüfen Sie die DHCP-Tabelle des Routers
  3. Stellen Sie sicher, dass TapHome Core und der Wechselrichter im gleichen Netzwerk/Subnetz sind
  4. Überprüfen Sie, dass keine Firewall Port 502 blockiert
  5. Schließen Sie alle anderen Modbus TCP Verbindungen zum Wechselrichter (nur eine Verbindung wird unterstützt)
Werte zeigen Null bei Nacht / ohne Sonnenlicht

Dies ist normal. Wenn die PV-Produktion null ist, wechselt der Wechselrichter in den Modus Wait oder Idle (Run Mode 0 oder 9). AC-Leistung und PV-String-Leistung sind dann null. Batterie- und Netzleistungswerte werden weiterhin aktualisiert.

Battery SOC zeigt unerwartete Werte

Die Vorlage liest Register 0x1C (Battery Capacity) und teilt durch 100 für den AnalogInput-Bereich 0,0–1,0. Überprüfen Sie, dass die Batterie angeschlossen ist und das BMS kommuniziert (Register BMS_Connect_State 0x11 sollte 1 sein).

Verfügbare Geräte

SolaX SK-SU Hybrid-Wechselrichter Modul
Serviceattribute
BetriebsmodusAktueller Betriebsmodus des Wechselrichters — Wait, Check, Normal, Fault, Permanent Fault, Update, Off-grid waiting, Off-grid, Self Test, Idle, Standby

SOLAX Hybrid SK-SU 5000/3000

Lesen (Modul)
#alarms
IF(MODBUSR(A, 0x40, Uint16) = 1, ADDERROR("Porucha meniča"));
IF(MODBUSR(A, 0x42, Uint16) = 1, ADDERROR("Porucha nabíjania"));
IF(MODBUSR(A, 0x43, Uint16) = 1, ADDERROR("Porucha  riadenia meniča"));
Serviceattribute
Solax Run Mode
MODBUSR(A, 0x09, Uint16);
AC-Leistung Variable Nur lesen

AC-Ausgangsleistung des Wechselrichters (netzseitig)

Register: A:0x02 Int16 Einheit: kW numeric

AC-Leistung

Lesen
MODBUSR(A,0x02, Int16)/ 1000
Batterie-SOC Analogeingang Nur lesen

Batterieladezustand in Prozent (0–100 %)

Register: A:0x1C UInt16 Einheit: % numeric

Batterie-SOC

Eingangslevel lesen
MODBUSR(A, 0x1C, UInt16)/100
Batterieleistung Variable Nur lesen

Lade-/Entladeleistung der Batterie — positiv=Laden, negativ=Entladen

Register: A:0x16 Int16 Einheit: kW numeric

Batterieleistung

Lesen
MODBUSR(A, 0x16, Int16)/1000
Gesamtenergieproduktion Variable Nur lesen

Kumulierte Gesamtenergie des Wechselrichters

Register: A:0x52 LittleEndianInt32 Einheit: kWh numeric

Gesamtenergieproduktion

Lesen
MODBUSR(A, 0x52,LittleEndianInt32) / 1000
Tägliche / Sofortproduktion Stromzähler Nur lesen

Stromzähler — tägliche Energieproduktion und momentane AC-Leistung

Register: A:0x50 (total), A:0x02 (demand) UInt16 / Int16 Einheit: kWh / kW numeric

Tägliche / Sofortproduktion

Gesamtverbrauch lesen
MODBUSR(A, 0x50, UInt16) /10
Bedarf lesen
MODBUSR(A,0x02, Int16)/1000
Netzeinspeisung / -bezug Variable Nur lesen

Netzleistung — positiv=Einspeisung, negativ=Bezug

Register: A:0x46 LittleEndianInt32 Einheit: kW numeric

Netzeinspeisung / -bezug

Lesen
MODBUSR(A, 0x46,LittleEndianInt32)/1000
PV-String 1 Leistung Variable Nur lesen

Echtzeit-Leistung des Solar-Strings 1

Register: A:0x0A UInt16 Einheit: kW numeric

PV-String 1 Leistung

Lesen
MODBUSR(A,0x0a, UInt16)/1000
PV-String 2 Leistung Variable Nur lesen

Echtzeit-Leistung des Solar-Strings 2

Register: A:0x0B UInt16 Einheit: kW numeric

PV-String 2 Leistung

Lesen
MODBUSR(A,0x0b, UInt16)/1000
Batterietemperatur Temperatursensor Nur lesen

Batterietemperatursensor

Register: A:0x55 UInt16 Einheit: °C numeric

Batterietemperatur

Temperatur lesen
MODBUSR(A, 0x55, UInt16) /10
Wechselrichtertemperatur Temperatursensor Nur lesen

Interne Temperatur des Wechselrichters

Register: A:0x08 Int16 Einheit: °C numeric

Wechselrichtertemperatur

Temperatur lesen
MODBUSR(A, 0x08, Int16)
Verbindung: Modbus TCP • Slave ID: $[SlaveId]
Mögliche Verbesserungen (15)
  • A:0x00 Grid Voltage — UInt16, 0.1V, read-only — grid voltage measurement
  • A:0x01 Grid Current — Int16, 0.1A, read-only — grid current measurement
  • A:0x03 PV1 Voltage — UInt16, 0.1V — PV string 1 voltage
  • A:0x04 PV2 Voltage — UInt16, 0.1V — PV string 2 voltage
  • A:0x05 PV1 Current — UInt16, 0.1A — PV string 1 current
  • A:0x06 PV2 Current — UInt16, 0.1A — PV string 2 current
  • A:0x07 Grid Frequency — UInt16, 0.01Hz — grid frequency
  • A:0x0E Battery Voltage — UInt16, 0.1V — battery voltage
  • A:0x0F Battery Current — Int16, 0.1A — battery current (positive=charge, negative=discharge)
  • A:0x10 Battery Power — Int16, 1W — battery power
  • A:0x12 Battery Temperature (BMS) — Int16, 1°C — BMS-reported battery temperature
  • A:0x48 Total Energy to Grid — UInt32, 0.01kWh — cumulative energy exported to grid (from meter)
  • A:0x4A Total Energy from Grid — UInt32, 0.01kWh — cumulative energy imported from grid (from meter)
  • H:0x7B Use Mode — UInt16, R/W — 0=Self Use, 1=Feed-in Priority, 2=Backup, 3=Manual. Writable holding register for mode selection
  • A:0x40 Inverter Fault Code — UInt32 (2 registers), bitmask — inverter error codes. Template uses this for ADDERROR alarms but not as a readable device

Quellen

  • SolaX Hybrid X1/X3 — Modbus TCP & RTU Communication Protocol V3.21
    PDF
  • Home Assistant SolaX Modbus Integration — Gen2 Register Map
    github.com 2026-03-29
  • SolaX KB: How to Get Device Data by Modbus TCP