TapHome
Community Beta Energie & Messung

SolaX X3-Ultra Hybrid Inverter — monitoring and power control (Modbus RTU)

Community-Vorlage für den dreiphasigen Hybrid-Wechselrichter SolaX X3-Ultra über Modbus RTU am RS-485-Port COM 1: Energy-Dashboard-Zähler für PV, Netz, Batterie und Verbrauch, Batterie-SOC, Netzspannung und Fehlercodes, Wechselrichter-Einstellungen, die nur bei einer Änderung geschrieben werden, und Fernsteuerung der AC-Leistung (SolaX-Fernsteuerungsmodus 1) zum Laden und Entladen nach Spotpreis. 19200 Baud, 8N1, Slave-ID 1.

SolaXModbus RTU19 GeräteRevision 1.0 Zuletzt aktualisiert: 10. November 2026

Eingereicht von Martin Keller

SolaX X3-Ultra Hybrid Inverter — monitoring and power control (Modbus RTU)

Import in die TapHome AppHardware › Modbus › Aus Vorlage hinzufügen

Vorlage herunterladen
Auf dieser Seite

Integrationsanleitung

Der SolaX X3-Ultra (X3-ULT-15K, 20K, 25K, 30K) ist ein dreiphasiger Hybrid-Wechselrichter für PV und Batterie. Diese Community-Vorlage von Martin Keller verbindet ihn mit TapHome über Modbus RTU am RS-485-Port COM 1 (19200 Baud, 8N1) und basiert auf den Leseregistern des SolaX Modbus-Protokolls V3.29 und auf dem SolaX Modbus-Protokoll V001.02. Sie bietet einen vollständigen Satz an Zählern für das Energy Dashboard, Batterie-, Netz- und Fehlerüberwachung, Wechselrichter-Einstellungen, die nur dann geschrieben werden, wenn sich ihr Wert tatsächlich ändert, sowie die Fernsteuerung der AC-Leistung (SolaX-Fernsteuerungsmodus 1) — das Laden der Batterie aus dem Netz oder das Entladen ins Netz auf Befehl, zum Beispiel nach Spotpreisen für Strom.

So erhalten Sie die Vorlage

Community-Vorlagen werden in der Vorlagenliste der TapHome-App nicht angeboten. Melden Sie sich bei portal.taphome.com an, laden Sie das XML dieser Vorlage herunter und importieren Sie es in den Core an der Modbus-RTU-Schnittstelle (oder an einer Modbus-TCP-Schnittstelle, wenn ein RS-485-zu-Ethernet-Gateway verwendet wird). Für die Überwachung ohne Fernsteuerung der Leistung steht die offizielle Vorlage SolaX X3 Hybrid Ultra zur Verfügung. Ein früher aus der offiziellen Vorlage importiertes Modul aktualisiert sich nicht selbst — importieren Sie diese Vorlage als neues Modul und entfernen Sie das alte.

Hardware-Anschluss

Der X3-Ultra hat einen einzigen multifunktionalen COM-1-Port (RJ45-Stecker mit beschrifteter Kabelhalterung). Dieselben physischen Pins erfüllen unterschiedliche Funktionen, je nachdem, welche beschriftete Position der Kabelhalterung verwendet wird. Für die Modbus-Integration eines Drittanbieters verwenden Sie die Position RS485 — die Leitungen REMOTE_485A und REMOTE_485B.

Pinbelegung des COM-1-Ports

Pin-Zuordnung des COM-1-Ports des SolaX X3-Ultra für alle sechs beschrifteten Positionen (Parallel-1, Parallel-2, BMS-1, BMS-2, RS485, DRM)

Pin-Zuordnung der RS485-Position (die einzige für TapHome relevante Position):

PinSignalTapHome-Verdrahtung
1REMOTE_485AA+ / D+
2REMOTE_485BB− / D−
3PARALLEL_485AAnicht verwenden (nur SolaX-Zubehör)
4PARALLEL_485AAnicht verwenden (nur SolaX-Zubehör)
5PARALLEL_485BBnicht verwenden (nur SolaX-Zubehör)
6PARALLEL_485BBnicht verwenden (nur SolaX-Zubehör)
7REMOTE_485Adasselbe Signal wie Pin 1
8REMOTE_485Bdasselbe Signal wie Pin 2

Die Pins 3–6 gehören zum SolaX-Kanal PARALLEL_485 und sind für SolaX-Produkte reserviert (Adapter Box G2, EV-Charger, DataHub). Die Pins 1, 2, 7 und 8 sind für Geräte bestimmt, die keine SolaX-Produkte sind. Schließen Sie keinen Modbus-Master eines Drittanbieters an die Pins 3–6 an.

RS-485-Verdrahtung

Installation des RJ45-Terminals in die RS485-Position der COM-1-Kabelhalterung

Verdrahtungsregeln aus dem X3-Ultra-Benutzerhandbuch (Abschnitt 8.6.4):

  • Kabeltyp: Netzwerkkabel CAT5E oder CAT6
  • Maximale Länge: das RS-485-Kommunikationskabel darf 30 m nicht überschreiten
  • RJ45-Stecker: der vorhandene Stecker des Kabels wird abgeschnitten und ein neuer RJ45-Stecker gemäß der Pin-Zuordnung gecrimpt; nicht alle Geräte akzeptieren ein voll belegtes 8-poliges Netzwerkkabel
  • Position in der Kabelhalterung: der RJ45-Stecker kommt in den Steckplatz mit der Beschriftung RS485 (nicht in Parallel-1, Parallel-2, BMS-1, BMS-2 oder DRM); der Stecker rastet im COM-1-Port ein und wird mit der Überwurfmutter gesichert
  • Ein einziger Modbus-Master: nur ein Modbus-Master darf den Port nutzen. Trennen Sie andere Modbus-Überwachungen am selben Port, sonst antwortet der Wechselrichter beiden und die Messwerte werden instabil

Das Benutzerhandbuch nennt keine Regel für den RS-485-Busabschluss an der Position RS485 von COM 1.

Zähler oder CT für die Netzwerte

Die Netzgeräte dieser Vorlage (Grid - power balance, Aus dem Netzwerk, Zum Netzwerk, Verbrauch) lesen die Einspeiseleistung, die der Wechselrichter mit seinem eigenen Zähler oder CT misst. Der Zähler oder CT wird am Port COM 2 angeschlossen (Meter/CT: METER_485A an Pin 4, METER_485B an Pin 5, oder die CT-Eingänge) und am Wechselrichter-Display unter Menu → Setting → Advance Setting → Meter/CT Setting eingerichtet. Das ist eine separate RS-485-Leitung — schließen Sie TapHome nicht daran an.

Anschlussoptionen

  • Direkte Modbus-RTU-Verbindung: verdrahten Sie das RS485-Paar von COM 1 direkt mit dem RS-485-Bus des TapHome Core. Niedrigste Latenz, empfohlen für die Fernsteuerung der Leistung.
  • RS-485-zu-Ethernet-Gateway: wenn der Wechselrichter weit vom TapHome Core entfernt ist, kann ein RS-485-zu-Ethernet-Gateway eines Drittanbieters am RS485-Paar von COM 1 verwendet werden; die Vorlage wird dann an einer Modbus-TCP-Schnittstelle importiert.
  • SolaX-Überwachungsmodul: der Wechselrichter selbst unterstützt Modbus TCP nicht. Modbus TCP (Port 502) ist nur über ein SolaX-Überwachungsmodul verfügbar, mit einem Abfragezyklus von etwa 1 Sekunde (Protokoll V3.29).

Konfiguration

Modbus-Kommunikation am Wechselrichter aktivieren

Navigieren Sie am Wechselrichter-LCD zu:

1
Menu → Setting → Advance Setting → Modbus

Das Menü Advance Setting erfordert das Installateur-Passwort (laut Benutzerhandbuch anfangs 2014; das Handbuch empfiehlt, es zu ändern). Stellen Sie im Menü Modbus die Baud Rate und die Address des externen Kommunikationsprotokolls ein:

ParameterStandard der VorlageStandard des Wechselrichters (Protokoll V3.29)
Modbus-Adresse (Slave-ID)11
Baudrate1920019200
ParitätNoneNone
Datenbits88
Stoppbits11

Die Baudrate muss am Wechselrichter und an der Modbus-RTU-Schnittstelle von TapHome gleich sein. Wenn die Kommunikation fehlschlägt, prüfen Sie zuerst die Baudrate.

Der Wechselrichter meldet die Modbus-Adresse außerdem im Holding-Register H:0x00AF und die Baudrate im Holding-Register H:0x00B0 (Protokoll V3.29).

Importparameter

Beim Import der Vorlage muss der Importparameter Modbus Slave ID (Standard 1) mit der am Wechselrichter-Display eingestellten Modbus-Adresse übereinstimmen.

Gerätefunktionen

Energy Dashboard

GerätMesswert
PV-ProduktionEingangsleistung PV1 + PV2 + PV3 (A:0x000A, A:0x000B, A:0x0124) in kW; gesamte PV-Energie (A:0x0094–0x0095) in kWh. Die Leistung von PV1–PV3 und die gesamte AC-Ausgangsenergie des Wechselrichters (A:0x0052) sind Service-Attribute.
Aus dem Netzwerk / Zum NetzwerkBezugs- und Einspeiseanteil der Netzleistung vom Zähler oder CT (A:0x0046–0x0047, niederwertiges Wort zuerst) mit ihren Gesamtenergiezählern (A:0x004A und A:0x0048, 0,01 kWh).
Zur Batterie / Von der BatterieLade- und Entladeanteil der Leistung von Batterie 1 (A:0x0016) mit der gesamten Lade- und Entladeenergie (A:0x0021, A:0x001D).
VerbrauchBerechneter Hausverbrauch: AC-Leistung des Wechselrichters minus Netzeinspeisung. SolaX hat kein Verbrauchsregister; Verbraucher am EPS-Ausgang (Notstrom) sind nicht enthalten.
Batterie (SOC)Ladezustand von Batterie 1 (A:0x001C). Die verbleibende und die ladbare Energie (A:0x0118, A:0x0116) sind Service-Attribute.

Energiemanager

Wählen Sie für die smart rule Energiemanager das Gerät Grid - power balance. Es ist vorzeichenbehaftet: positiv beim Bezug aus dem Netz, negativ bei der Einspeisung von Überschuss. Die Zähler Aus dem Netzwerk und Zum Netzwerk werden nie negativ und zeigen keinen Überschuss.

Überwachung

  • Battery 2 - state of charge — der zweite Batterieanschluss (BAT 2), mit seiner Leistung und Temperatur als Service-Attribute; liefert ohne zweite Batterie 0
  • Battery - temperature — wird vorzeichenbehaftet gelesen, sodass Temperaturen unter 0 °C korrekt angezeigt werden
  • Inverter - AC power — Summe der drei Phasenleistungen am AC-Port des Wechselrichters in kW
  • Grid - voltage L1 — mit der Netzspannung L2, L3 und den drei Netzfrequenzen als Service-Attribute

Wechselrichter-Einstellungen

GerätLesenSchreiben
Settings - work modeH:0x008B: Self use, Feed-in priority, Backup, Manual, Peak shaving, Time of use (die letzten beiden hängen von der Firmware ab)0x001F
Settings - manual modeH:0x008C: Stop charge and discharge, Force charge, Force discharge (nur im Arbeitsmodus Manual wirksam)0x0020
Settings - self-use minimum SOChöherwertiges Byte von H:0x00930x0061
Settings - night charge from gridniederwertiges Byte von H:0x00930x0062
Settings - night charge target SOCH:0x00940x0063
Settings - export limitH:0x00B6, in kW (10 W pro Zählschritt bei X3)0x0042

SolaX liest diese Einstellungen von anderen Adressen, als es sie schreibt, daher kann die in TapHome integrierte Funktion „nur schreiben, wenn abweichend“ nicht verwendet werden. Jedes Schreibskript liest deshalb zuerst die Einstellung und schreibt (Funktion 06) nur, wenn sich der neue Wert unterscheidet; meldet der Wechselrichter die Einstellungen als gesperrt, schreibt es zuerst das Einstellungspasswort 2014 in das Register 0x0000. Der minimale SOC und der Zielwert der Nachtladung gehen nie unter 10 % (der SolaX-Bereich). Keines dieser Geräte schreibt periodisch.

Diese Einstellungen sind EEPROM-Register (von SolaX mit ★ gekennzeichnet, etwa 1 Million Schreibzyklen). Ändern Sie sie selten und nie aus häufigen Automatisierungen — für das Laden und Entladen nach Spotpreisen verwenden Sie Remote control - AC power target.

Remote control - AC power target

Dieses Gerät nutzt den SolaX-Fernsteuerungsmodus (VPP) 1 — die Leistungssteuerung am AC-Port des Wechselrichters.

  • Vorzeichen: ein positiver Zielwert bedeutet, dass der Wechselrichter an seinem AC-Port Leistung aufnimmt (er lädt die Batterie, aus dem Netz, wenn die PV-Leistung nicht reicht); ein negativer Zielwert bedeutet, dass er Leistung abgibt (er entlädt die Batterie, und was das Haus nicht verbraucht, geht ins Netz). Wert in kW.
  • 0 beendet die Fernsteuerung: die Vorlage schreibt einmal Modus 0, und der Wechselrichter kehrt in seinen Arbeitsmodus zurück. Zielwerte unter 0,5 W gelten als 0.
  • Jeder andere Wert: ist der Wechselrichter gesperrt, schreibt die Vorlage zuerst das Einstellungspasswort 2014 (die Entsperrung geht nach jedem Neustart des Wechselrichters verloren) und dann die 13 Register 0x007C–0x0088 in einer einzigen Modbus-Anfrage (Funktion 0x10): Modus 1, Zielwert, Dauer 120 s und Timeout 60 s. Der Befehl wird alle 60 s wiederholt, solange der Zielwert nicht 0 ist. Sendet TapHome ihn nicht mehr, hält der Wechselrichter den Zielwert bis zu 2 Minuten, hält danach 1 weitere Minute 0 W an seinem AC-Port und kehrt dann selbstständig in seinen Arbeitsmodus zurück.
  • Der Arbeitsmodus Manual blockiert die Fernsteuerung. SolaX startet die Fernsteuerung nicht, solange sich der Wechselrichter im Arbeitsmodus Manual befindet — schalten Sie ihn zuerst auf Self use (oder einen anderen Modus).
  • Der Wechselrichter begrenzt den Zielwert auf den Bereich, der in den Modulattributen angezeigt wird (minimaler und maximaler Zielwert der Fernsteuerung).
  • Die Modulaktion End remote control schreibt sofort Modus 0. Solange der Zielwert nicht 0 ist, startet die nächste Wiederholung die Fernsteuerung erneut — setzen Sie den Zielwert auf 0, um sie dauerhaft zu beenden.
  • Kombinieren Sie dieses Gerät nicht mit einer Fernsteuerung aus der SolaX Cloud oder durch einen Energieaggregator: solange der Zielwert 0 ist, beendet die Vorlage jeden Fernsteuerungsmodus innerhalb von 60 s.
  • Die Fernsteuerung erfordert einen Core, der alle 13 Register in einer einzigen Anfrage schreibt. Das ist bei jedem Core seit 2022 der Fall, wenn das Modul den Wert MaxPrefetchGroupSize 32 aus dieser Vorlage beibehält.
  • Das Service-Attribut Actual AC power zeigt die Wirkleistung, die der Wechselrichter an seinem AC-Port meldet, in W (A:0x0106).

SolaX kennzeichnet die Fernsteuerungsregister (0x007C–0x0088) in seinem Protokoll nicht als EEPROM-Register, bestätigt das Gegenteil aber auch nicht schriftlich. Diese Vorlage stützt sich auf die Erfahrung der Home-Assistant- und openHAB-Communitys, die diese Register alle paar Sekunden bis Minuten schreiben.

Modulattribute und -aktionen

  • Run mode (Service-Attribut) — Zustand des Wechselrichters als Text: Waiting, Checking, Normal, Fault, Permanent fault, Update, Off-grid waiting, Off-grid, Self testing, Idle, Standby, Remote control (Code 20); andere Codes werden als Other angezeigt
  • Machine type (Service-Attribut) — X1 (single-phase) oder X3 (three-phase), Holding-Register H:0x0105
  • Settings lock (Service-Attribut) — Locked oder Unlocked (A:0x0054)
  • Remote control mode (Service-Attribut) — aktiver Fernsteuerungsmodus (A:0x0100): Off, Power control, Energy target, SOC target
  • Remote control - maximum target / minimum target (Service-Attribute) — vom Wechselrichter gemeldeter zulässiger Bereich des Leistungszielwerts in W (A:0x010A, A:0x010C)
  • Unlock settings (password 2014) (Service-Aktion) — schreibt 2014 in das Register 0x0000
  • End remote control (Service-Aktion) — schreibt Modus 0 in die Fernsteuerungsregister 0x007C–0x0088

Fehlererkennung

Das Leseskript des Moduls meldet einen TapHome-Fehler, wenn der Betriebszustand (A:0x0009) 3 (Fault) oder 4 (Permanent fault) ist. Außerdem wertet es zwei Fehlerregister Bit für Bit aus, jeden Fehler mit einem eigenen Fehlercode:

  • Wechselrichter-Fehlercode (32 Bit, A:0x0040–A:0x0041, niederwertiges Wort zuerst gelesen) — alle 32 Bits, von TZ Protect Fault über Netz-, PV-, Bus- und Batteriespannungsfehler, Isolations- und Übertemperaturfehler bis zu Parallel Fault, Hard Limit Fault und den Relaisfehlern
  • Manager-Fehlercode (16 Bit, A:0x0043) — Power Type Fault, Mgr EEPROM Fault, NTC Sample Invalid, niedrige und hohe Batterietemperatur, Meter Fault, Bypass Relay Fault und Fan 2 Fault als Fehler, Port OC Warning als Warnung

Fehlerbehebung

Keine Kommunikation mit dem Wechselrichter

  1. Überprüfen Sie, dass die RS-485-Adern an den Pins REMOTE_485A / REMOTE_485B liegen (1 + 2 oder 7 + 8 in der Position RS485 der COM-1-Kabelhalterung), nicht an den PARALLEL_485-Pins 3–6 und nicht an der Zählerleitung von COM 2
  2. Prüfen Sie, dass die Baudrate am Wechselrichter (Menu → Setting → Advance Setting → Modbus) und an der Modbus-RTU-Schnittstelle von TapHome übereinstimmt — standardmäßig 19200
  3. Bestätigen Sie, dass der Importparameter Modbus Slave ID mit der Modbus-Adresse des Wechselrichters übereinstimmt (Standard 1)
  4. Stellen Sie sicher, dass nur ein Modbus-Master am Port angeschlossen ist
  5. Tauschen Sie die A- und B-Adern, falls die Kabelpolarität unsicher ist
  6. Bestätigen Sie, dass das RS-485-Kabel 30 m nicht überschreitet

Der Zielwert der Fernsteuerung fällt direkt nach dem Setzen auf 0 zurück

Der Wechselrichter befindet sich im Arbeitsmodus Manual, die Firmware unterstützt den Fernsteuerungsmodus 1 nicht, oder der Zielwert liegt außerhalb des minimalen und maximalen Zielwerts, die in den Modulattributen angezeigt werden. Prüfen Sie zuerst den Arbeitsmodus.

Das Schreiben der Einstellungen wird abgelehnt

Der Wechselrichter ist gesperrt. Führen Sie die Modulaktion Unlock settings (password 2014) aus; die Sperre kehrt nach jedem Neustart des Wechselrichters zurück (Modulattribut Settings lock).

Netzwerte sind 0 oder der Verbrauch wirkt falsch

Grid - power balance, Aus dem Netzwerk, Zum Netzwerk und Verbrauch hängen vom Zähler oder CT des Wechselrichters ab. Prüfen Sie dessen Verdrahtung an COM 2 und dessen Einrichtung unter Menu → Setting → Advance Setting → Meter/CT Setting.

PV3-Leistung oder Batterie 2 zeigt 0

PV3 gibt es nur bei den Modellen mit drei Trackern (zum Beispiel X3-ULT-25K und X3-ULT-30K, siehe die MPPT-Anzahl im Benutzerhandbuch); Batterie 2 nur, wenn an BAT 2 eine zweite Batterie angeschlossen ist. Blenden Sie die nicht verwendeten Geräte in TapHome aus.

Verfügbare Geräte 19

Diese Geräte erscheinen nach dem Import in TapHome.

SolaX X3-Ultra Modul
Serviceattribute
Run mode
Machine type
Settings lock
Remote control mode
Remote control - maximum target
Remote control - minimum target
Serviceaktionen
Unlock settings (password 2014)
End remote control

SolaX X3-Ultra

Lesen (Modul)
VAR mode := MODBUSR(A, 0x0009, UInt16);
IF(mode = 3, ADDERROR(1, "Inverter fault (run mode 3)"));
IF(mode = 4, ADDERROR(2, "Inverter permanent fault (run mode 4)"));
VAR inv := MODBUSR(A, 0x0040, LittleEndianUint32);
IF(GETBIT(inv, 0) = 1, ADDERROR(100, "TZ Protect Fault"));
IF(GETBIT(inv, 1) = 1, ADDERROR(101, "Grid Lost Fault"));
IF(GETBIT(inv, 2) = 1, ADDERROR(102, "Grid Volt Fault"));
IF(GETBIT(inv, 3) = 1, ADDERROR(103, "Grid Freq Fault"));
IF(GETBIT(inv, 4) = 1, ADDERROR(104, "PV Volt Fault"));
IF(GETBIT(inv, 5) = 1, ADDERROR(105, "Bus Volt Fault"));
IF(GETBIT(inv, 6) = 1, ADDERROR(106, "Bat Volt Fault"));
IF(GETBIT(inv, 7) = 1, ADDERROR(107, "AC10mins Volt Fault"));
IF(GETBIT(inv, 8) = 1, ADDERROR(108, "DCI OCP Fault"));
IF(GETBIT(inv, 9) = 1, ADDERROR(109, "DCV OCP Fault"));
IF(GETBIT(inv, 10) = 1, ADDERROR(110, "SW OCP Fault"));
IF(GETBIT(inv, 11) = 1, ADDERROR(111, "RC OCP Fault"));
IF(GETBIT(inv, 12) = 1, ADDERROR(112, "Isolation Fault"));
IF(GETBIT(inv, 13) = 1, ADDERROR(113, "Temp Over Fault"));
IF(GETBIT(inv, 14) = 1, ADDERROR(114, "BatConnDir Fault"));
IF(GETBIT(inv, 15) = 1, ADDERROR(115, "Off-grid Overload"));
IF(GETBIT(inv, 16) = 1, ADDERROR(116, "Overload"));
IF(GETBIT(inv, 17) = 1, ADDERROR(117, "Bat Power Low"));
IF(GETBIT(inv, 18) = 1, ADDERROR(118, "BMS Lost"));
IF(GETBIT(inv, 19) = 1, ADDERROR(119, "Fan Fault"));
IF(GETBIT(inv, 20) = 1, ADDERROR(120, "Low Temp Fault"));
IF(GETBIT(inv, 21) = 1, ADDERROR(121, "Parallel Fault"));
IF(GETBIT(inv, 22) = 1, ADDERROR(122, "Hard Limit Fault"));
IF(GETBIT(inv, 23) = 1, ADDERROR(123, "INV Volt Sample Fault"));
IF(GETBIT(inv, 24) = 1, ADDERROR(124, "Inner Comm Fault"));
IF(GETBIT(inv, 25) = 1, ADDERROR(125, "INV EEPROM Fault"));
IF(GETBIT(inv, 26) = 1, ADDERROR(126, "RCD Fault"));
IF(GETBIT(inv, 27) = 1, ADDERROR(127, "Grid Relay Fault"));
IF(GETBIT(inv, 28) = 1, ADDERROR(128, "Off-grid Relay Fault"));
IF(GETBIT(inv, 29) = 1, ADDERROR(129, "PV ConnDir Fault"));
IF(GETBIT(inv, 30) = 1, ADDERROR(130, "Charger Relay Fault"));
IF(GETBIT(inv, 31) = 1, ADDERROR(131, "Earth Relay Fault"));
VAR mgr := MODBUSR(A, 0x0043, UInt16);
IF(GETBIT(mgr, 0) = 1, ADDERROR(200, "Power Type Fault"));
IF(GETBIT(mgr, 1) = 1, ADDWARNING(201, "Port OC Warning"));
IF(GETBIT(mgr, 2) = 1, ADDERROR(202, "Mgr EEPROM Fault"));
IF(GETBIT(mgr, 4) = 1, ADDERROR(204, "NTC Sample Invalid"));
IF(GETBIT(mgr, 5) = 1, ADDERROR(205, "Battery Temperature Low"));
IF(GETBIT(mgr, 6) = 1, ADDERROR(206, "Battery Temperature High"));
IF(GETBIT(mgr, 9) = 1, ADDERROR(209, "Meter Fault"));
IF(GETBIT(mgr, 10) = 1, ADDERROR(210, "Bypass Relay Fault"));
IF(GETBIT(mgr, 11) = 1, ADDERROR(211, "Fan 2 Fault"));
Serviceattribute
Run mode
SWITCH(MODBUSR(A, 0x0009, UInt16), 0, "Waiting", 1, "Checking", 2, "Normal", 3, "Fault", 4, "Permanent fault", 5, "Update", 6, "Off-grid waiting", 7, "Off-grid", 8, "Self testing", 9, "Idle", 10, "Standby", 20, "Remote control", "Other")
Machine type
SWITCH(MODBUSR(H, 0x0105, UInt16), 1, "X1 (single-phase)", 3, "X3 (three-phase)", "Unknown")
Settings lock
SWITCH(MODBUSR(A, 0x0054, UInt16), 0, "Locked", 1, "Unlocked", "Unknown")
Remote control mode
SWITCH(MODBUSR(A, 0x0100, UInt16), 0, "Off", 1, "Power control", 2, "Energy target", 3, "SOC target", "Other")
Remote control - maximum target
TOSTRING(MODBUSR(A, 0x010A, LittleEndianInt32)) + " W"
Remote control - minimum target
TOSTRING(MODBUSR(A, 0x010C, LittleEndianInt32)) + " W"
Serviceaktionen
Unlock settings (password 2014)
MODBUSW(SH, 0x0000, Uint16, 2014);
End remote control
MODBUSW(H, 0x007C, Uint16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
${deviceType_PVProduction} Stromzähler
Serviceattribute
PV1 power
PV2 power
PV3 power
Inverter AC output - total energy

${deviceType_PVProduction}

Gesamtverbrauch lesen
MODBUSR(A, 0x0094, LittleEndianUint32) / 10
Bedarf lesen
(MODBUSR(A, 0x000A, UInt16) + MODBUSR(A, 0x000B, UInt16) + MODBUSR(A, 0x0124, UInt16)) / 1000
Serviceattribute
PV1 power
TOSTRING(MODBUSR(A, 0x000A, UInt16)) + " W"
PV2 power
TOSTRING(MODBUSR(A, 0x000B, UInt16)) + " W"
PV3 power
TOSTRING(MODBUSR(A, 0x0124, UInt16)) + " W"
Inverter AC output - total energy
TOSTRING(MODBUSR(A, 0x0052, LittleEndianUint32) / 10, "F1") + " kWh"
Grid - power balance Stromzähler

Grid - power balance

Bedarf lesen
MODBUSR(A, 0x0046, LittleEndianInt32) / -1000
${deviceType_PVFromGrid} Stromzähler

${deviceType_PVFromGrid}

Gesamtverbrauch lesen
MODBUSR(A, 0x004A, LittleEndianUint32) / 100
Bedarf lesen
MAX(-MODBUSR(A, 0x0046, LittleEndianInt32), 0) / 1000
${deviceType_PVToGrid} Stromzähler

${deviceType_PVToGrid}

Gesamtverbrauch lesen
MODBUSR(A, 0x0048, LittleEndianUint32) / 100
Bedarf lesen
MAX(MODBUSR(A, 0x0046, LittleEndianInt32), 0) / 1000
${deviceType_PVToBattery} Stromzähler

${deviceType_PVToBattery}

Gesamtverbrauch lesen
MODBUSR(A, 0x0021, LittleEndianUint32) / 10
Bedarf lesen
MAX(MODBUSR(A, 0x0016, Int16), 0) / 1000
${deviceType_PVFromBattery} Stromzähler

${deviceType_PVFromBattery}

Gesamtverbrauch lesen
MODBUSR(A, 0x001D, LittleEndianUint32) / 10
Bedarf lesen
MAX(-MODBUSR(A, 0x0016, Int16), 0) / 1000
${deviceType_PVLoad} Stromzähler

${deviceType_PVLoad}

Bedarf lesen
((MODBUSR(A, 0x006C, Int16) + MODBUSR(A, 0x0070, Int16) + MODBUSR(A, 0x0074, Int16)) - MODBUSR(A, 0x0046, LittleEndianInt32)) / 1000
${deviceType_BatterySOC} Analogeingang
Serviceattribute
Remaining energy
Chargeable energy

${deviceType_BatterySOC}

Eingangslevel lesen
MODBUSR(A, 0x001C, UInt16) / 100
Serviceattribute
Remaining energy
TOSTRING(MODBUSR(A, 0x0118, LittleEndianUint32) / 1000, "F2") + " kWh"
Chargeable energy
TOSTRING(MODBUSR(A, 0x0116, LittleEndianUint32) / 1000, "F2") + " kWh"
Battery 2 - state of charge Analogeingang
Serviceattribute
Battery 2 power
Battery 2 temperature

Battery 2 - state of charge

Eingangslevel lesen
MODBUSR(A, 0x012D, UInt16) / 100
Serviceattribute
Battery 2 power
TOSTRING(MODBUSR(A, 0x0129, Int16)) + " W"
Battery 2 temperature
TOSTRING(MODBUSR(A, 0x0131, Int16)) + " °C"
Battery - temperature Temperatursensor

Battery - temperature

Temperatur lesen
MODBUSR(A, 0x0018, Int16)
Inverter - AC power Variable

Inverter - AC power

Lesen
(MODBUSR(A, 0x006C, Int16) + MODBUSR(A, 0x0070, Int16) + MODBUSR(A, 0x0074, Int16)) / 1000
Grid - voltage L1 Variable
Serviceattribute
Grid voltage L2
Grid voltage L3
Grid frequency L1
Grid frequency L2
Grid frequency L3

Grid - voltage L1

Lesen
MODBUSR(A, 0x006A, UInt16) / 10
Serviceattribute
Grid voltage L2
TOSTRING(MODBUSR(A, 0x006E, UInt16) / 10, "F1") + " V"
Grid voltage L3
TOSTRING(MODBUSR(A, 0x0072, UInt16) / 10, "F1") + " V"
Grid frequency L1
TOSTRING(MODBUSR(A, 0x006D, UInt16) / 100, "F2") + " Hz"
Grid frequency L2
TOSTRING(MODBUSR(A, 0x0071, UInt16) / 100, "F2") + " Hz"
Grid frequency L3
TOSTRING(MODBUSR(A, 0x0075, UInt16) / 100, "F2") + " Hz"
Settings - work mode Mehrwertschalter
Werte / Zustände: Self use · Feed-in priority · Backup · Manual · Peak shaving · Time of use

Settings - work mode

Schaltzustand lesen
MODBUSR(H, 0x008B, UInt16)
Schaltzustand schreiben
IF(MODBUSR(H, 0x008B, UInt16) != Mu AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(MODBUSR(H, 0x008B, UInt16) != Mu, MODBUSW(SH, 0x001F, Uint16, Mu));
Settings - manual mode Mehrwertschalter
Werte / Zustände: Stop charge and discharge · Force charge · Force discharge

Settings - manual mode

Schaltzustand lesen
MODBUSR(H, 0x008C, UInt16)
Schaltzustand schreiben
IF(MODBUSR(H, 0x008C, UInt16) != Mu AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(MODBUSR(H, 0x008C, UInt16) != Mu, MODBUSW(SH, 0x0020, Uint16, Mu));
Settings - self-use minimum SOC Dimmer

Settings - self-use minimum SOC

Level lesen
GETBYTE(MODBUSR(H, 0x0093, UInt16), 1) / 100
Level schreiben
VAR v := MAX(ROUND(Le * 100), 10);
IF(GETBYTE(MODBUSR(H, 0x0093, UInt16), 1) != v AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(GETBYTE(MODBUSR(H, 0x0093, UInt16), 1) != v, MODBUSW(SH, 0x0061, Uint16, v));
Settings - night charge from grid Schalter
Werte / Zustände: ON · OFF

Settings - night charge from grid

Schaltzustand lesen
GETBYTE(MODBUSR(H, 0x0093, UInt16), 0)
Schaltzustand schreiben
IF(GETBYTE(MODBUSR(H, 0x0093, UInt16), 0) != St AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(GETBYTE(MODBUSR(H, 0x0093, UInt16), 0) != St, MODBUSW(SH, 0x0062, Uint16, St));
Settings - night charge target SOC Dimmer

Settings - night charge target SOC

Level lesen
MODBUSR(H, 0x0094, UInt16) / 100
Level schreiben
VAR v := MAX(ROUND(Le * 100), 10);
IF(MODBUSR(H, 0x0094, UInt16) != v AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(MODBUSR(H, 0x0094, UInt16) != v, MODBUSW(SH, 0x0063, Uint16, v));
Settings - export limit Variable

Settings - export limit

Lesen
MODBUSR(H, 0x00B6, UInt16) / 100
Schreiben
VAR v := MAX(ROUND(Va * 100), 0);
IF(MODBUSR(H, 0x00B6, UInt16) != v AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(MODBUSR(H, 0x00B6, UInt16) != v, MODBUSW(SH, 0x0042, Uint16, v));
Remote control - AC power target Variable
Serviceattribute
Actual AC power

Remote control - AC power target

Lesen
IF(MODBUSR(A, 0x0100, UInt16) = 1, MODBUSR(A, 0x0102, LittleEndianInt32) / 1000, 0)
Schreiben
VAR w := ROUND(Va * 1000);
VAR u := IF(w < 0, w + 4294967296, w);
IF(w = 0 AND MODBUSR(A, 0x0100, UInt16) != 0, MODBUSW(H, 0x007C, Uint16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
IF(w != 0 AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(w != 0, MODBUSW(H, 0x007C, Uint16, 1, 1, MOD(u, 65536), FLOOR(u / 65536), 0, 0, 120, 0, 0, 0, 0, 0, 60));
Serviceattribute
Actual AC power
TOSTRING(MODBUSR(A, 0x0106, LittleEndianInt32)) + " W"
Verbindung: Modbus RTU • 19200 baud• 8N1 • Slave ID: $[SlaveId]

Importparameter

Diese Werte geben Sie beim Import des XML ein.

In der App abgefragtStandard
Modbus Slave ID1

Haben Sie ein Problem mit dieser Gerätevorlage gefunden?

Sagen Sie uns, was nicht funktioniert, was fehlt oder wie sich die Vorlage verhalten sollte. Ihr Feedback hilft uns, den Katalog genau zu halten.

Vorlage · TapHome-Portal SolaX X3-Ultra Hybrid Inverter — monitoring and power control (Modbus RTU) Öffne diese Vorlage im Kundenportal, um sie auf eine deiner Wohnungen anzuwenden, oder entwirf eine Anpassung und reiche sie an den Katalog ein. Modbus RTU Im TapHome-Portal ansehen