
Die SolaX X1-HYBRID und X3-HYBRID Gen 4 sind Energiespeicher-Wechselrichter, die sowohl einphasige (3–7,5 kW) als auch dreiphasige (5–15 kW) Konfigurationen unterstützen. Die TapHome-Vorlage kommuniziert über Modbus RTU per RS-485 und liest Eingangs- und Holding-Register für den Batterieladezustand, PV-String-Leistung, Netzleistungsfluss, Energiemengen, Lademodus und SOC für Nachtladung. Alle Schreibskripte sind auskommentiert, sodass die Vorlage effektiv schreibgeschützt ist.
Die Vorlage implementiert außerdem eine umfassende Fehlererkennung durch Analyse von 32-Bit-Wechselrichter-Fehlercodes und 16-Bit-Manager-Fehlercodes, die als Fehler in TapHome gemeldet werden.
Hardwareanschluss
Der SolaX Gen 4 Wechselrichter bietet einen RS-485 COM-Port für die Modbus RTU-Kommunikation an der Unterseite. Der COM-Port verwendet einen RJ45-Stecker.

Pin-Belegung des COM-Anschlusses (RJ45):
| Pin | Belegung | Beschreibung |
|---|---|---|
| 1 | Drycontact_A(in) | Systemschalter-Anschluss |
| 2 | Drycontact_B(in) | Systemschalter-Anschluss |
| 3 | +13V | — |
| 4 | 485A | RS-485 Data+ (für TapHome) |
| 5 | 485B | RS-485 Data− (für TapHome) |
| 6 | GND | Masse |
| 7 | Drycontact_A(out) | Generator-Anschluss |
| 8 | Drycontact_B(out) | Generator-Anschluss |
Verbinden Sie TapHome mit dem COM-Port des Wechselrichters:
- Pin 4 (485A) am COM-Port des Wechselrichters zu A+/D+ am TapHome RS-485
- Pin 5 (485B) am COM-Port des Wechselrichters zu B-/D- am TapHome RS-485
- Pin 6 (GND) — empfohlen für zuverlässige Kommunikation
Der Wechselrichter selbst unterstützt Modbus TCP nicht nativ. Modbus TCP ist nur über das SolaX-Überwachungsmodul (WLAN-Dongle) verfügbar und wird von der TapHome-Vorlage nicht verwendet.
Für Installationen, bei denen eine RS-485-Verkabelung nicht praktikabel ist, bietet das Template SolaX Inverter (Cloud API) Überwachung über die SolaxCloud-Plattform per HTTPS — ohne physische Verbindung. Es unterstützt alle SolaX-Wechselrichtertypen, nicht nur den Gen 4 Hybrid.
Einige Holding-Register sind mit begrenzten EEprom-Schreibzyklen gekennzeichnet. Übermäßige Schreiboperationen können zu irreversiblen Hardwareschäden führen. Die TapHome-Vorlage hat alle Schreibskripte deaktiviert, daher ist dies bei der aktuellen Vorlage kein Problem.
Konfiguration
Modbus-Kommunikation aktivieren
Modbus RTU ist standardmäßig am RS-485 COM-Port des Wechselrichters verfügbar. Die folgenden Parameter müssen zwischen dem Wechselrichter und dem TapHome-Modul übereinstimmen:
- Slave ID – Standard ist 1, am Wechselrichter-Display konfigurierbar
- Baudrate – der Wechselrichter hat standardmäßig 19200 Baud, die TapHome-Vorlage verwendet jedoch 9600 Baud. Passen Sie einen der Werte an, damit beide übereinstimmen
- Datenformat – 8 Datenbits, keine Parität, 1 Stoppbit
Konfiguration am Wechselrichter-Display: Menu > Setting > Advance Setting > Modbus. Slave-Adresse und Baudrate einstellen. Die Baudrate kann auch aus dem Holding-Register H:0x00B0 gelesen und über Register 0x00CA geschrieben werden (Werte: 0=115200, 1=57600, 2=56000, 3=38400, 4=19200, 5=14400, 6=9600).
Um die Wechselrichtereinstellungen nicht ändern zu müssen, passen Sie die Baudrate in den TapHome-Moduleinstellungen auf 19200 an, um dem Wechselrichter-Standard zu entsprechen.
Kommunikationstiming
Das Protokoll erfordert ein Mindestintervall von 1 Sekunde zwischen aufeinanderfolgenden Modbus-Anweisungen und einen Zeichen-Lücken-Timeout von mindestens 100 ms. Der Antwort-Timeout beträgt 1 Sekunde. Die TapHome-Vorlage verwendet individuelle Poll-Intervalle pro Gerät (2,5 s bis 150 s), die diese Anforderungen erfüllen.
RS-485 COM-Port-Funktion
Register H:0x013E (485CommFunSelect) bestimmt, ob der RS-485-Port für die Modbus-Kommunikation (Wert 0) oder die EV-Lader-Kommunikation (Wert 1) verwendet wird. Stellen Sie sicher, dass dieser für die TapHome-Integration auf 0 (Modbus 485) eingestellt ist.
Gerätefunktionen
Batterieüberwachung
- Battery SOC – liest den Batterieladezustand (A:0x1C) als Prozentsatz. Der Rohregisterwert in 1%-Einheiten wird durch 100 geteilt für den TapHome 0–1 Analogeingang (z.B. 85% wird zu 0,85)
- Battery Temperature – liest die Batterietemperatur (A:0x18) in Grad Celsius. Polling alle 80 Sekunden. Die offizielle Vorlage liest das Register als vorzeichenlos, daher werden Temperaturen unter 0 °C falsch angezeigt (siehe Bekannte Fehler in der offiziellen Vorlage unten)
Solar-PV-Leistung
- PV1 Power – DC-Leistungsausgang von PV-String 1 (A:0x0A), in kW angezeigt nach /1000-Umrechnung von Watt
- PV2 Power – DC-Leistungsausgang von PV-String 2 (A:0x0B), in kW angezeigt nach /1000-Umrechnung von Watt
Netzleistung und Energiemessung
- Grid Feed-in Power – Momentanleistung des Netzes (A:0x46, LittleEndianInt32) in kW. Positive Werte zeigen Einspeisung ins Netz, negative Werte zeigen Entnahme aus dem Netz
- Daily / Actual Energy – kombiniert in der offiziellen Vorlage den täglichen Energieertrag vom Wechselrichter AC-Port (A:0x50, ein Zähler, der jede Nacht zurückgesetzt wird) und die Netzleistung der einphasigen X1-Modelle (A:0x02). Beides ist für einen Energiezähler vom Typ PV-Produktion falsch — siehe Bekannte Fehler in der offiziellen Vorlage unten
- Total Energy – kumulativer Gesamtenergieertrag vom Wechselrichter AC-Port (A:0x52). Das Register zählt in 0,1 kWh; die offizielle Vorlage teilt durch 1000, daher ist der Wert 100× zu klein (siehe Bekannte Fehler in der offiziellen Vorlage unten)
Lademodus und Nachtladung
- Charger Use Mode – liest den aktiven Solarlademodus (H:0x8B): Self Use Mode (0), Feedin Priority (1), Backup Mode (2) oder Manual Mode (3). Werte 4–9 sind reserviert. Das Schreibregister (H:0x1F) existiert in der Vorlage, ist aber auskommentiert, was es schreibgeschützt macht
- Self-Use Night Charge SOC – liest den oberen SOC-Zielwert für die Nachtladung im Self-Use-Modus (H:0x94) als Prozentsatz. Das Schreibregister (H:0x63) und das Aktivierungsregister (H:0x62) sind beide auskommentiert, sodass die Nachtladekonfiguration nicht über TapHome geändert werden kann
Fehlererkennung
Das ReadScript auf Modulebene überwacht den Betriebsmodus des Wechselrichters (A:0x09) und zwei Fehlerregister:
- Run Mode Fehler – löst einen Fehler aus, wenn Run Mode 3 (Fault) oder 4 (Permanent Fault) ist
- Wechselrichter-Fehlercodes (A:0x40) – 32-Bit-Bitmap (niederwertiges Wort zuerst) für 30 individuelle Fehler, einschließlich Netzspannungs-/Frequenzfehler, PV-Spannungsfehler, Batteriefehler, Isolationsfehler, Übertemperatur, Überstromschutz, Relaisfehler und Kommunikationsfehler
- Manager-Fehlercodes (A:0x43) – 16-Bit-Bitmap für Leistungstyp-Fehler, EEPROM-Fehler, NTC-Sensorprobleme, Batterietemperaturwarnungen, Messgerätfehler und Lüfterfehler
Das Run Mode-Dienstattribut am Modul zeigt den aktuellen Wechselrichterstatus als Text an: Waiting, Checking, Normal, Fault, Permanent Fault, Update, Off-grid waiting, Off-grid, Self Testing, Idle oder Standby.
Weitere Funktionen
Der Wechselrichter bietet eine umfangreiche Registerkarte mit über 300 Holding-Registern und 200 Eingangsregistern. Bemerkenswerte Funktionen, die noch nicht in der Vorlage implementiert sind, umfassen die Spannungs- und Stromüberwachung pro PV-String (A:0x03–0x06), Batteriespannungs-/Strom-/Leistungsmessungen, BMS-Verbindungsstatus, Netz-Ein/Aus-Status, X3 Netzspannung/-strom/-leistung pro Phase (12 Register bei A:0x6A–0x75), kumulierte Netzeinspeisung und -entnahme (über Zähler), gesamte Solarenergieerzeugung, BMS-Benutzer-SOC und -SOH sowie minimale/maximale Batteriezellentemperatur und -spannung. Schreibfunktionen umfassen System-Ein/Aus-Steuerung, Lademodusauswahl, manuelles Erzwingen von Laden/Entladen, minimaler Entlade-SOC, Nachtladekonfiguration und Fernleistungsregelung mit Wirk-/Blindleistungszielen. Diese können in einem zukünftigen Vorlagen-Update hinzugefügt werden.
Die offizielle Vorlage liest die X1 (einphasige) Netzleistung bei A:0x02 als Leistung ihres Energiezählers. Die korrigierten Skripte unten lesen stattdessen die PV-Produktion, was bei X1- und X3-Modellen gleichermaßen funktioniert.
Bekannte Fehler in der offiziellen Vorlage
Die offizielle TapHome-Vorlage für diesen Wechselrichter liest mehrere Register falsch (geprüft anhand des SolaX-Modbus-Protokolls V3.21 und V001.02 sowie anhand von Werten in installierten Anlagen). Ein aus der offiziellen Vorlage importiertes Modul aktualisiert sich nicht selbst, wenn sich die Vorlage ändert. Korrigieren Sie entweder die Skripte des bestehenden Moduls und seiner Geräte von Hand, oder importieren Sie die korrigierte Community-Vorlage aus dem TapHome-Portal: SolaX X1/X3-Hybrid G4 — corrected monitoring (melden Sie sich an, laden Sie die XML-Datei herunter und importieren Sie sie als neues Modul).
| Wo | Offizielles Skript | Korrigiertes Skript | Auswirkung des Fehlers |
|---|---|---|---|
| Modul — ReadScript | var x3 := MODBUSR(A, 0x0040, Uint32); | var x3 := MODBUSR(A, 0x0040, LittleEndianUint32); | Die beiden Hälften des 32-Bit-Fehlercodes sind vertauscht: ein Fehler in Bit 1 (Grid Lost Fault) wird als Bit 17 (Bat Power Low) gemeldet |
| Total Energy | MODBUSR(A, 0x52, LittleEndianInt32) / 1000 | MODBUSR(A, 0x0052, LittleEndianUint32) / 10 | Wert 100× zu klein (das Register zählt in 0,1 kWh) |
| Daily / Actual Energy — Gesamtverbrauch | MODBUSR(A, 0x50, UInt16) /10 | MODBUSR(A, 0x0094, LittleEndianUint32) / 10 | 0x0050 ist ein Tageszähler, der jede Nacht auf 0 fällt; 0x0094 ist die gesamte PV-Energie |
| Daily / Actual Energy — Nachfrage | MODBUSR(A,0x02, Int16)/1000 | (MODBUSR(A, 0x000A, UInt16) + MODBUSR(A, 0x000B, UInt16)) / 1000 | 0x0002 ist die Netzleistung der einphasigen X1-Modelle, nicht die PV-Produktion; auf vielen X3-Geräten liest es 0 |
| Battery Temperature | MODBUSR(A,0x0018, UInt16) | MODBUSR(A, 0x0018, Int16) | Unter 0 °C zeigt die offizielle Vorlage etwa 65535 °C |
| Schnittstellengeschwindigkeit | 9600 Baud | 19200 Baud | 19200 ist die SolaX-Werkseinstellung |
Mit den korrigierten Skripten misst Daily / Actual Energy die PV-Produktion (PV1 + PV2) — genau das, was sein Energietyp im Energy Dashboard erwartet. Die korrigierte Community-Vorlage lässt wie die offizielle alle Schreibvorgänge deaktiviert.
Fehlerbehebung
Keine Kommunikation mit dem Wechselrichter
- Überprüfen Sie die RS-485-Kabelverbindungen: A+ zu A+, B- zu B-, GND zu GND
- Prüfen Sie, ob Register H:0x013E auf 0 eingestellt ist (Modbus 485-Modus, nicht EV-Lader)
- Bestätigen Sie, dass die Baudrate zwischen Wechselrichter und TapHome übereinstimmt – der Wechselrichter hat standardmäßig 19200, die Vorlage standardmäßig 9600
- Überprüfen Sie, ob die Slave ID in TapHome mit der Wechselrichtereinstellung übereinstimmt (Standard: 1)
- Stellen Sie sicher, dass kein anderer Modbus-Master an demselben RS-485-Bus angeschlossen ist – Modbus unterstützt nur einen einzigen Master
Falsche Battery SOC-Anzeige
Das Battery SOC-Register (A:0x1C) meldet Werte in 1%-Einheiten. Die Vorlage teilt durch 100 für den TapHome 0–1 Analogeingang. Wenn der angezeigte Wert falsch erscheint, überprüfen Sie, ob das TapHome-Gerät als AnalogInput (Bereich 0–1, nicht 0–100) konfiguriert ist.
Vorzeichenkonvention der Netzleistung
Grid Feed-in Power (A:0x46) verwendet eine Vorzeichenkonvention, bei der positive Werte den Export (Erzeugung/Einspeisung ins Netz) und negative Werte den Import (Entnahme aus dem Netz) bedeuten. Das Netzleistungsregister Daily/Actual Energy (A:0x02) kann bei Netzentnahme ebenfalls negative Werte anzeigen.
Registerunterschiede X1 vs X3
Einige Register sind modellspezifisch. Netzspannung (A:0x00), Strom (A:0x01) und Leistung (A:0x02) sind X1-Einphasenregister. Für dreiphasige X3-Modelle befinden sich die entsprechenden phasenweisen Messwerte bei A:0x6A–0x75. Die Vorlage verwendet das X1-Netzleistungsregister, das bei X3-Modellen möglicherweise nicht korrekt meldet.
