TapHome

Victron Energy GX Wechselrichter

Modbus TCP
Eingereicht von
Zuletzt aktualisiert: 03. 2026
Victron Energy GX Wechselrichter

Die Victron GX Gerätefamilie (Cerbo GX, Cerbo GX MK2, Venus GX, CCGX) sind Kommunikations- und Überwachungsplattformen, die Modbus TCP-Zugriff auf angeschlossene Victron VE.Bus Wechselrichter/Ladegeräte (MultiPlus, Quattro) ermöglichen. Das GX-Gerät selbst ist kein Wechselrichter — es fungiert als Modbus TCP-Gateway zum VE.Bus-System.

TapHome verbindet sich mit dem GX-Gerät über Ethernet per Modbus TCP. Die Vorlage stellt SOC-Überwachung der Batterie, 3-phasige AC-Eingangs- und Ausgangsmessung, ESS-Leistungs-Sollwertsteuerung (Energy Storage System), Wechselrichtermodusumschaltung, PV-Wechselrichterverwaltung und umfassende Alarmüberwachung bereit.

Netzwerkverbindung

Das GX-Gerät verbindet sich über den Ethernet-Port mit dem lokalen Netzwerk. TapHome Core und das GX-Gerät müssen sich im selben Subnetz befinden.

  • Protokoll: Modbus TCP
  • Port: 502
  • Standard Slave ID: 227 (Cerbo GX VE.Bus-Port)
  • Funktionscodes: 3 (ReadHoldingRegisters), 6 (WriteSingleRegister), 16 (WriteMultipleRegisters)

Die Standard-Slave-ID 227 gilt für den Cerbo GX VE.Bus-Port. Andere GX-Geräte verwenden unterschiedliche IDs: 246 für CCGX, 242 für Venus GX, 228 für EasySolar-II GX. Unit IDs werden seit Venus OS 2.60 dynamisch vergeben — die tatsächliche ID kann am GX-Gerät unter Einstellungen → Dienste → Modbus/TCP → Verfügbare Dienste überprüft werden.

Konfiguration

Modbus TCP aktivieren

Modbus TCP ist auf allen GX-Geräten standardmäßig deaktiviert. Aktivierung:

  1. Am GX-Gerät zu Einstellungen → Dienste navigieren
  2. Modbus-TCP aktivieren

Nach der Aktivierung lauscht das GX-Gerät auf TCP-Port 502.

TapHome-Vorlage importieren

Beim Import der Vorlage in TapHome angeben:

  • IP-Adresse — IP-Adresse des GX-Geräts im lokalen Netzwerk
  • Slave ID — VE.Bus Unit ID (Standard: 227 für Cerbo GX)

Weisen Sie dem GX-Gerät eine statische IP-Adresse in den DHCP-Einstellungen des Routers zu, oder konfigurieren Sie eine statische IP direkt am GX-Gerät unter Einstellungen → Ethernet, damit sich die Adresse nach einem Neustart nicht ändert.

Gerätefunktionen

Die Vorlage stellt 10 Geräte bereit, aufgeteilt in Batterieüberwachung, AC-Messung, Modussteuerung und Schutzschalter.

Batterieüberwachung
  • Batterie — liest den VE.Bus-Ladezustand (SOC) aus Register H:30 als Dimmer-Pegel. Service-Attribute zeigen Batteriespannung (H:26), Batteriestrom mit Richtungsanzeige (H:27), Batterietemperatur (H:61), VE.Bus-Ladezustand (Aus, Niedrige Leistung, Fehler, Bulk, Absorption, Float, Speicher, Egalisierung, Passthru, Invertierung, Power Assist, Stromversorgung) und BMS-Lade-/Entladeberechtigungen (H:57–59). Das Readscript überwacht H:32 auf VE.Bus-Fehlercodes (1–26) und H:60 auf BMS-Fehler. Für die Systemwiederherstellung ist die Aktion VE.Bus Reset (H:62) verfügbar.
AC-Eingangsmessung

Drei Stromzählergeräte überwachen die AC-Eingangsleistung pro Phase:

  • Eingangsleistung L1 — AC-Eingangsleistung Phase 1 aus H:12, mit Service-Attributen für Spannung (H:3), Strom (H:6), Frequenz (H:9) und ESS-Leistungs-Sollwert (H:37). Der ESS-Sollwert ist über eine Service-Aktion schreibbar.
  • Eingangsleistung L2 — AC-Eingangsleistung Phase 2 aus H:13, mit entsprechenden L2-Attributen und ESS-Sollwert L2 (H:40).
  • Eingangsleistung L3 — AC-Eingangsleistung Phase 3 aus H:14, mit entsprechenden L3-Attributen und ESS-Sollwert L3 (H:41).

Jedes Eingangsleistungsgerät enthält eine ESS-Leistungs-Sollwert-Service-Aktion für die jeweilige Phase, damit TapHome das ESS-Lade-/Entladeverhalten pro Phase steuern kann.

AC-Ausgangsmessung

Drei Stromzählergeräte überwachen die AC-Ausgangsleistung pro Phase:

  • Ausgangsleistung L1 — AC-Ausgang aus H:18, mit Service-Attributen für Spannung (H:15), Strom (H:18) und Frequenz (H:21). Das Readscript überwacht phasenweise Alarme für Temperatur (H:44), niedrige Batterie (H:45), Überlast (H:46) und Welligkeit (H:47).
  • Ausgangsleistung L2 — AC-Ausgang aus H:24, mit L2-Spannung (H:16), Strom (H:19) und Frequenz (H:21). Überwacht L2-Alarme (H:48–51).
  • Ausgangsleistung L3 — AC-Ausgang aus H:25, mit L3-Spannung (H:17), Strom (H:20) und Frequenz (H:21). Überwacht L3-Alarme (H:52–55).
Eingangs-Stromgrenzensteuerung
  • Aktive Eingangs-Stromgrenze — liest und schreibt die aktive Eingangs-Stromgrenze (H:22) in Ampere. Die Service-Aktion „Grenze setzen" akzeptiert einen Float-Wert (0–100 A).
Schutzschalter
  • DC-Überspannung ins Netz einspeisen — Umschalter (H:65) zur Steuerung, ob DC-Überspannung ins Netz zurückgespeist wird. Service-Attribute zeigen maximale Überspannungseinspeisung pro Phase (H:66–68) und AC-Eingangs-Ignorierstatus (H:69–70). Eine Service-Aktion erlaubt die Einstellung der maximalen Einspeiseleistung pro Phase.
  • PV-Wechselrichter — Umschalter (H:56) zum Aktivieren oder Deaktivieren der Frequenzverschiebung des PV-Wechselrichters am AC-Ausgang. Bei Aktivierung (Schalter AUS) arbeitet der PV-Wechselrichter am AC-Ausgang normal; bei Deaktivierung (Schalter EIN) begrenzt die Frequenzverschiebung den PV-Ausgang.
Service-Attribute und -Aktionen auf Modulebene

Das Modul selbst stellt mehrere Service-Attribute bereit, die vom Gateway-Gerät in TapHome zugänglich sind:

AttributRegisterBeschreibung
PhasenanzahlH:28Anzahl der AC-Phasen im VE.Bus-System
SchalterpositionH:33Wechselrichtermodus — Nur Ladegerät, Nur Wechselrichter, Ein, Aus
Aktiver EingangH:29Aktive AC-Eingangsquelle — AC-Eingang 1, AC-Eingang 2, Getrennt
ESS Laden deaktivierenH:38Ladeflag — Laden aktiviert / Laden deaktiviert
ESS Einspeisung deaktivierenH:39Einspeiseflag — Einspeisung aktiviert / Einspeisung deaktiviert
ESS Leistungs-Sollwert L1–L3H:37, H:40, H:41ESS-Leistungs-Sollwert pro Phase in Watt

Service-Aktionen auf Modulebene ermöglichen die Umschaltung des Wechselrichtermodus (Nur Ladegerät, Nur Wechselrichter, Ein, Aus), das Umschalten des ESS-Ladeflags und das Umschalten des ESS-Einspeiseflags.

Systemalarmüberwachung

Das Modul-Readscript überwacht 7 Systemalarme:

RegisterAlarmStufen
H:34Temperaturalarm0=Ok, 1=Warnung, 2=Alarm
H:35Niedrige-Batterie-Alarm0=Ok, 1=Warnung, 2=Alarm
H:36Überlastalarm0=Ok, 1=Warnung, 2=Alarm
H:42Temperatursensor-Alarm0=Ok, 1=Warnung, 2=Alarm
H:43Spannungssensor-Alarm0=Ok, 1=Warnung, 2=Alarm
H:63Phasenfolgewarnung0=Ok, 1=Warnung
H:64Netzverlust-Alarm0=Ok, 1=Alarm
Weitere Funktionen

Der VE.Bus-Registersatz (H:3–H:231) bietet weitere Register über die aktuell implementierte Vorlage hinaus. Dazu gehören Energiezähler für AC-Eingangs-/Ausgangs-/Batterieflüsse (H:74–92, flüchtig — Reset beim Neustart), Ladezustandsaufzählung (H:95), 32-Bit-ESS-Leistungs-Sollwerte für größere Systeme (H:96–100), erweiterte ESS-Einstellungen wie Bevorzugung erneuerbarer Energie (H:102), PowerAssist-Konfiguration (H:106–108), UPS-Funktionssteuerung (H:109) und Microgrid-/Droop-Modus-Register (H:200–231). Diese können in einem zukünftigen Update zur TapHome-Vorlage hinzugefügt werden.

Fehlerbehebung

Keine Modbus-Kommunikation
  1. Überprüfen, dass Modbus TCP am GX-Gerät aktiviert ist (Einstellungen → Dienste → Modbus-TCP)
  2. IP-Adresse des GX-Geräts bestätigen — DHCP-Leasing-Tabelle des Routers oder Netzwerkeinstellungen des GX-Geräts prüfen
  3. Sicherstellen, dass TapHome Core und GX-Gerät im selben Subnetz sind
  4. Prüfen, dass keine Firewall TCP-Port 502 blockiert
  5. Korrekte Unit ID verifizieren — Standard 227 gilt für Cerbo GX; andere GX-Modelle verwenden unterschiedliche IDs
Falsche Leistungswerte

Die Vorlage verwendet einen /100-Skalierungsfaktor für Leistungsregister (H:12–14, H:23–25), während die Victron-Dokumentation einen Faktor 0,1 angibt (d. h. Rohwert × 10 = tatsächliche Watt). Dies kann zu Leistungswerten führen, die niedriger als erwartet sind. Wenn Leistungswerte falsch erscheinen, handelt es sich um einen bekannten Vorlagenunterschied — die relativen Messungen bleiben proportional korrekt.

VE.Bus-Fehlercodes

Das Readscript des Batteriegeräts prüft Register H:32 auf VE.Bus-Fehlercodes. Häufige Fehler:

CodeBeschreibung
1Gerät ausgeschaltet, weil eine andere Phase ausgeschaltet hat
5Überspannung am AC-Ausgang
10Problem mit der Systemzeitsynchronisierung
14Gerät kann keine Daten übertragen
16Dongle fehlt
17Gerät übernahm Master-Status, weil der ursprüngliche Master ausgefallen ist
25Firmware-Inkompatibilität zwischen verbundenen Geräten
26Interner Fehler

Bei anhaltenden VE.Bus-Fehlern kann die Aktion VE.Bus Reset (am Batteriegerät verfügbar) für einen Wiederherstellungsversuch verwendet werden.

Unit ID nach Venus OS-Update geändert

Seit Venus OS 2.60 werden Unit IDs dynamisch vergeben. Nach einem Firmware-Update kann sich die Unit ID ändern. Unter Einstellungen → Dienste → Modbus/TCP → Verfügbare Dienste am GX-Gerät die aktuelle VE.Bus Unit ID überprüfen und dann die Slave ID in der TapHome-Vorlage entsprechend aktualisieren.

Verfügbare Geräte

Victron GX Line Inverter Modul
Serviceattribute
Phasenanzahl
SchalterpositionWechselrichterbetriebsmodus — Nur Ladegerät, Nur Wechselrichter, Ein, Aus
Aktiver EingangAktive AC-Eingangsquelle — AC-Eingang 1, AC-Eingang 2, Getrennt
ESS Lade-Deaktivierungsflag PhaseESS Ladeerlaubnis — Laden aktiviert oder Laden deaktiviert
ESS Lade-Deaktivierungs-Feedback PhaseESS Einspeiseerlaubnis — Einspeisung aktiviert oder Einspeisung deaktiviert
ESS Leistungs-Sollwert Phase 1
ESS Leistungs-Sollwert Phase 2
ESS Leistungs-Sollwert Phase 3
Serviceaktionen
SchalterpositionWechselrichtermodus setzen — Nur Ladegerät, Nur Wechselrichter, Ein, Aus
Ladeflag PhaseESS-Batterieladung aktivieren oder deaktivieren
Feedback-Flag PhaseESS-Netzeinspeisung aktivieren oder deaktivieren

Vitron GX Line Inverter

Lesen (Modul)
var temp := MODBUSR(H, 34, Uint16);
IF(temp = 1, ADDWARNING("Temperature alarm"));
IF(temp = 2, ADDERROR("Temperature alarm"));
var low := MODBUSR(H, 35, Uint16);
IF(low = 1, ADDWARNING("Low Battery alarm"));
IF(low = 2, ADDERROR("Low Battery alarm"));
var over := MODBUSR(H, 36, Uint16);
IF(over = 1, ADDWARNING("Overload alarm"));
IF(over = 2, ADDERROR("Overload alarm"));
var seb := MODBUSR(H, 42, Uint16);
IF(seb = 1, ADDWARNING("Temperature sensor alarm"));
IF(seb = 2, ADDERROR("Temperature sensor alarm"));
var vol := MODBUSR(H, 43, Uint16);
IF(vol = 1, ADDWARNING("Voltage sensor alarm"));
IF(vol = 2, ADDERROR("Voltage sensor alarm"));
IF(MODBUSR(H, 63, Uint16) = 1, ADDWARNING("Phase Rotation Warning"));
IF(MODBUSR(H, 64, Uint16) = 1, ADDERROR("Grid Lost Alarm"));
Serviceattribute
Phase Count
MODBUSR(H, 28, Uint16);
Switch Position
var reg := MODBUSR(H, 33, Uint16);
Switch(reg, 1, "Charger Only", 2, "Inverter Only", 3 ,"On", 4, "Off", "Unknown");
Active Input
var reg := MODBUSR(H, 29, Uint16);
switch(reg, 0, "AC Input 1", 1, "AC Input 2", 240, "Disconnected", "Unknown");
ESS Disable Charge flag phase
IF(MODBUSR(H, 38, Uint16) = 1, "Charge disabled", "Charge enabled")
ESS Disable Charge feedback phase
IF(MODBUSR(H, 39, Uint16) = 1, "Feed disabled");
IF(MODBUSR(H, 39, Uint16) = 0, "Feed in enabled", "Not set");
ESS power setpoint phase 1
MODBUSR(H, 37, Uint16) + " W";
ESS power setpoint phase 2
MODBUSR(H, 40, Uint16) + " W";
ESS power setpoint phase 3
MODBUSR(H, 41, Uint16) + " W";
Serviceaktionen
Switch Position
Parameter: Switch Position
MODBUSWNE(H, 33, uint16, pos);
Charge flag phase
Parameter: Charge flag phase
MODBUSWNE(H, 38, Uint16, chfp);
Feedback flag phase
Parameter: Feedback flag phase
MODBUSWNE(H, 39, Uint16, ffp);
Aktive Eingangs-Stromgrenze Variable

AC-Eingangs-Stromgrenze in Ampere — einstellbar über Aktion Grenze setzen (0–100 A)

Register: H:22 Int16 Einheit: A numeric
Serviceaktionen
Grenze setzen

Aktive Eingangs-Stromgrenze

Lesen
MODBUSR(H, 22, int16)/10
Serviceaktionen
Set Limit
Parameter: Active Input Current Limit [A] (0–100 aic)
MODBUSWNE(H, 22, Int16, aic*10)
Batterie Dimmer

Batterie-Ladezustand mit Spannung, Strom, Temperatur, VE.Bus-Ladezustand und BMS-Berechtigungen

Register: H:30 UInt16 Einheit: % numeric
Serviceattribute
Batteriespannung
Batteriestrom
FlussrichtungStromrichtung — DC-System zu Multi, Multi zu DC-System oder Leerlauf
Batterietemperatur
ZustandVE.Bus-Ladezustand — Aus, Niedrige Leistung, Fehler, Bulk, Absorption, Float, Speicher, Egalisierung, Passthru, Invertierung, Power Assist, Stromversorgung
VE.Bus BMS erlaubt Batterieladung
VE.Bus BMS erlaubt Batterieentladung
VE.Bus BMS wird erwartet
Serviceaktionen
VE.Bus Reset

Batterie

Lesen (Modul)
var reg := MODBUSR(H, 32, Uint16);
SWITCH(reg, 1, ADDERROR("VE.Bus Error 1: Device is switched off because one of the other phases in the system has switched of"), 2, "VE.Bus Error 2: New and old types MK2 are mixed in the system", 3, "VE.Bus Error 3: Not all- or more than- the expected devices were found in the system", 4, "VE.Bus Error 4: No other device whatsoever detected", 5, "VE.Bus Error 5: Overvoltage on AC-out", 6, "VE.Bus Error 6: Error in DDC Program", 7, "VE.Bus BMS connected- which requires an Assistant- but no assistant found", 10, "VE.Bus Error 10: System time synchronisation problem occurred", 14, "VE.Bus Error 14: Device cannot transmit data", 16, "VE.Bus Error 16: Dongle missing", 17, "VE.Bus Error 17: One of the devices assumed master status because the original master failed",18, "VE.Bus Error 18: AC Overvoltage on the output of a slave has occurred while already switched off", 22, "VE.Bus Error 22: This device cannot function as slave", 24, "VE.Bus Error 24: Switch-over system protection initiated", 25, "VE.Bus Error 25: Firmware incompatibility. The firmware of one of the connected device is not sufficiently up to date to operate in conjunction with this device", 26, "VE.Bus Error 26: Internal error", "No error");
IF(MODBUSR(H, 60, Uint16) = 1, ADDERROR("VE.Bus BMS error"));
Level lesen
MODBUSR(H, 30, UInt16) / 1000
Serviceattribute
Battery Voltage
MODBUSR(H, 26, Uint16)/100 + " V";
Battery Current
ABS(MODBUSR(H, 27, int16)/10) + " A";
Flow
var reg := MODBUSR(H, 27, int16);
IF(reg = 0, "-");
IF(reg < 0, "DC system to Multi", "Multi to DC system");
Battery Temperature
var tempt := MODBUSR(H, 61, Int16)/10; 
IF(tempt = 0, "Unknown", tempt + " °C")
State
var reg := MODBUSR(H, 31, Uint16);
SWITCH(reg, 0, "Off",
 1, "Low Power",
 2, "Fault",
 3, "Bulk",
 4, "Absorbtion",
 5, "Float", 
 6, "Storage", 
 7, "Equalize", 
 8, "Passtru", 
 9, "Inverting", 
 10, "Power Assist", 
 11, "Power Supply", 
 252, "Bulk protection",
 "Unknown" );
VE.Bus BMS allows battery to be charged
SWITCH(MODBUSR(H, 57, Uint16), 0, "No", 1, "Yes", "Unknown");
VE.Bus BMS allows battery to be discharged
SWITCH(MODBUSR(H, 58, Uint16), 0, "No", 1, "Yes", "Unknown");
VE.Bus BMS is expected
SWITCH(MODBUSR(H, 59, Uint16), 0, "No", 1, "Yes", "Unknown");
Serviceaktionen
VE.Bus Reset
Parameter: Reset
MODBUSW(H, 62, Uint16, res);
DC-Überspannung ins Netz einspeisen Schalter

DC-Überspannungseinspeisung ins Netz mit phasenweisen Maximalleistungsgrenzen umschalten

Register: H:65 UInt16 numeric
Werte / Zustände: Feed in overvoltage · Don't feed in overvoltage
Serviceaktionen
Maximale ÜberspannungseinspeisungMaximale DC-Überspannungseinspeisung pro Phase setzen (L1, L2, L3)

DC-Überspannung ins Netz einspeisen

Schaltzustand lesen
MODBUSR(H, 65, Uint16);
Schaltzustand schreiben
MODBUSW(H, 65, Uint16, St);
Serviceattribute
Maximum overvoltage feed-in power L1
MODBUSR(H, 66, Uint16)/ 0.01 + " W";
Maximum overvoltage feed-in power L2
MODBUSR(H, 67, Uint16)/ 0.01 + " W";
Maximum overvoltage feed-in power L3
MODBUSR(H, 68, Uint16)/ 0.01 + " W";
AC input 1
SWITCH(MODBUSR(H, 69, Uint16), 0, "not ignored", 1, "ignored", "Unknown");
AC input 2
SWITCH(MODBUSR(H, 70, Uint16), 0, "not ignored", 1, "ignored", "Unknown");
Serviceaktionen
Maximum overvoltage feed-in power
Parameter: L1[W] (0–6.5535e+06 L1), L2[W] (0–6.5535e+06 L2), L3[W] (0–65535 L3)
MODBUSWNE(H, 66, Uint16, L1)/100;
MODBUSWNE(H, 67, Uint16, L2)/100;
MODBUSWNE(H, 68, Uint16, L2)/100;
Eingangsleistung L1 Stromzähler

AC-Eingangsleistung Phase 1 mit Spannung, Strom, Frequenz und ESS-Leistungs-Sollwert

Register: H:12 Int16 Einheit: W numeric
Serviceattribute
Eingangsspannung L1
Eingangsstrom L1
Eingangsfrequenz 1
ESS Leistungs-Sollwert Phase 1
Serviceaktionen
ESS Leistungs-Sollwert Phase 1

Eingangsleistung L1

Bedarf lesen
MODBUSR(H, 12, Int16) / 100
Serviceattribute
Input Voltage L1
MODBUSR(H, 3, Uint16)/10  + " V"
Input Current L1
MODBUSR(H, 6, Int16)/10  + " A";
Input Frequency 1
MODBUSR(H, 9, Int16)/100  + " Hz";
ESS power setpoint phase 1
MODBUSR(H, 37, int16) + " W";
Serviceaktionen
ESS power setpoint phase 1
Parameter: Power setpoint L1 [W] (-32768–32768 L1)
MODBUSW(H, 37, int16, L1);
Eingangsleistung L2 Stromzähler

AC-Eingangsleistung Phase 2 mit Spannung, Strom, Frequenz und ESS-Leistungs-Sollwert

Register: H:13 Int16 Einheit: W numeric
Serviceattribute
Eingangsspannung L2
Eingangsstrom L2
Eingangsfrequenz 2
ESS Leistungs-Sollwert Phase 2
Serviceaktionen
ESS Leistungs-Sollwert Phase 2

Eingangsleistung L2

Bedarf lesen
MODBUSR(H, 13, Int16) / 100
Serviceattribute
Input Voltage L2
MODBUSR(H, 4, Uint16)/10  + " V"
Input Current L2
MODBUSR(H, 7, Int16)/10  + " A";
Input Frequency 2
MODBUSR(H, 10, Int16)/100  + " Hz";
ESS power setpoint phase 2
MODBUSR(H, 40, int16) + " W";
Serviceaktionen
ESS power setpoint phase 2
Parameter: ESS Power setpoint L2 [W] (-32768–32768 L2)
MODBUSW(H, 40, Int16, L2)
Eingangsleistung L3 Stromzähler

AC-Eingangsleistung Phase 3 mit Spannung, Strom, Frequenz und ESS-Leistungs-Sollwert

Register: H:14 Int16 Einheit: W numeric
Serviceattribute
Eingangsspannung L3
Eingangsstrom L3
Eingangsfrequenz 3
ESS Leistungs-Sollwert Phase 3
Serviceaktionen
ESS Leistungs-Sollwert Phase 3

Eingangsleistung L3

Bedarf lesen
MODBUSR(H, 14, Int16) / 100
Serviceattribute
Input Voltage L3
MODBUSR(H, 5, Uint16)/10  + " V"
Input Current L3
MODBUSR(H, 8, Int16)/10  + " A";
Input Frequency 3
MODBUSR(H, 11, Int16)/100  + " Hz";
ESS power setpoint phase 3
MODBUSR(H, 41, int16) + " W";
Serviceaktionen
ESS power setpoint phase 3
Parameter: ESS power setpoint L3 [W] (-32768–32768 L3)
MODBUSW(H, 41, Int16, L3)
Ausgangsleistung L1 Stromzähler Nur lesen

AC-Ausgang Phase 1 mit Spannung, Strom, Frequenz und phasenweiser Alarmüberwachung

Register: H:18 Int16 Einheit: W numeric
Serviceattribute
Ausgangsspannung L1
Ausgangsstrom L1
Ausgangsfrequenz

Ausgangsleistung L1

Bedarf lesen
MODBUSR(H, 18, Int16) / 100
Lesen (Modul)
var tem := MODBUSR(H, 44, Uint16);
SWITCH(tem,1, ADDWARNING("Temperature Alarm L1"), 2, ADDERROR("Temperature Alarm L1"),"");
var bat := MODBUSR(H, 45, Uint16);
SWITCH(bat,1, ADDWARNING("Low Battery Alarm L1"), 2, ADDERROR("Low Battery Alarm L1"),"");
var ove := MODBUSR(H, 46, Uint16);
SWITCH(ove,1, ADDWARNING("Overload Alarm L1"), 2, ADDERROR("Overload Alarm L1"),"");
var rip := MODBUSR(H, 47, Uint16);
SWITCH(rip,1, ADDWARNING("Ripple Alarm L1"), 2, ADDERROR("Ripple Alarm L1"),"");
Serviceattribute
Output Voltage L1
MODBUSR(H, 15, UInt16)/10  + " V";
Output Current L1
MODBUSR(H, 18, Int16)/10  + " A";
Output Frequency
MODBUSR(H, 21, Int16)/100 + " Hz";
Ausgangsleistung L2 Stromzähler Nur lesen

AC-Ausgang Phase 2 mit Spannung, Strom, Frequenz und phasenweiser Alarmüberwachung

Register: H:24 Int16 Einheit: W numeric
Serviceattribute
Ausgangsspannung L2
Ausgangsstrom L2
Ausgangsfrequenz

Ausgangsleistung L2

Bedarf lesen
MODBUSR(H, 24, Int16) / 100
Lesen (Modul)
var tem := MODBUSR(H, 48, Uint16);
SWITCH(tem,1, ADDWARNING("Temperature Alarm L2"), 2, ADDERROR("Temperature Alarm L2"),"");
var bat := MODBUSR(H, 49, Uint16);
SWITCH(bat,1, ADDWARNING("Low Battery Alarm L2"), 2, ADDERROR("Low Battery Alarm L2"),"");
var ove := MODBUSR(H, 50, Uint16);
SWITCH(ove,1, ADDWARNING("Overload Alarm L2"), 2, ADDERROR("Overload Alarm L2"),"");
var rip := MODBUSR(H, 51, Uint16);
SWITCH(rip,1, ADDWARNING("Ripple Alarm L2"), 2, ADDERROR("Ripple Alarm L2"),"");
Serviceattribute
Output voltage L2
MODBUSR(H, 16, UInt16)/10  + " V";
Output Current L2
MODBUSR(H, 19, Int16)/10  + " A";
Output Frequency
MODBUSR(H, 21, Int16)/100 + " Hz";
Ausgangsleistung L3 Stromzähler Nur lesen

AC-Ausgang Phase 3 mit Spannung, Strom, Frequenz und phasenweiser Alarmüberwachung

Register: H:25 Int16 Einheit: W numeric
Serviceattribute
Ausgangsspannung L3
Ausgangsstrom L3
Ausgangsfrequenz

Ausgangsleistung L3

Bedarf lesen
MODBUSR(H, 25, Int16) / 100
Lesen (Modul)
var tem := MODBUSR(H, 52, Uint16);
SWITCH(tem,1, ADDWARNING("Temperature Alarm L3"), 2, ADDERROR("Temperature Alarm L3"),"");
var bat := MODBUSR(H, 53, Uint16);
SWITCH(bat,1, ADDWARNING("Low Battery Alarm L3"), 2, ADDERROR("Low Battery Alarm L3"),"");
var ove := MODBUSR(H, 54, Uint16);
SWITCH(ove,1, ADDWARNING("Overload Alarm L3"), 2, ADDERROR("Overload Alarm L3"),"");
var rip := MODBUSR(H, 55, Uint16);
SWITCH(rip,1, ADDWARNING("Ripple Alarm L3"), 2, ADDERROR("Ripple Alarm L3"),"");
Serviceattribute
Output Voltage L3
MODBUSR(H, 17, UInt16)/10  + " V";
Output Current L3
MODBUSR(H, 20, Int16)/10  + " A";
Output Frequency
MODBUSR(H, 21, Int16)/100 + " Hz";
PV-Wechselrichter Schalter

PV-Wechselrichter-Frequenzverschiebungssteuerung — PV-Ausgang am AC-Ausgang aktivieren oder deaktivieren

Register: H:56 UInt16 numeric
Werte / Zustände: PV disabled · PV enabled

PV-Wechselrichter

Schaltzustand lesen
MODBUSR(H, 56, Uint16)
Schaltzustand schreiben
MODBUSWNE(H, 56, Uint16, St);
Verbindung: Modbus TCP • Slave ID: $[SlaveId]
Mögliche Verbesserungen (16)
  • H:23 Output Power L1 — Int16, ×10, W — actual output power L1 register; template uses H:18 (current) for Output Power 1 readdemand instead
  • H:71 AcPowerSetpoint acts as feed-in limit — UInt16, 0=Normal, 1=OvervoltageFeedIn limit
  • H:72 Solar offset voltage — UInt16, 0=1V offset, 1=0.1V offset
  • H:73 Sustain active — UInt16, 0=Inactive, 1=Active
  • H:74-92 Energy Counters (10 × UInt32) — /100, kWh — AC-In/Out/Battery energy flow counters; volatile (reset on Multi/GX reboot)
  • H:94 BMS Pre-Alarm (Low cell voltage imminent) — UInt16, 0=Ok, 1=Warning, 2=Alarm
  • H:95 Charge State — UInt16, enum: 0=Initialising, 1=Bulk, 2=Absorption, 3=Float, 4=Storage, 5=Absorb repeat, 6=Forced absorb, 7=Equalise, 8=Bulk stopped, 9=Unknown
  • H:96-100 ESS 32-bit Power Setpoints (L1-L3) — Int32, W — 32-bit complement of H:37/40/41 for larger systems
  • H:102 Prefer Renewable Energy — UInt16, 0=No, 1=Yes; Venus 3.30+
  • H:103-104 Remote Generator Selected — UInt16, select/status; Venus 3.30+
  • H:105 Redetect VE.Bus system — Write 1 to redetect
  • H:106 Power Assist boost factor — UInt16, /100; Venus 3.30+
  • H:107 Configured output voltage — UInt16, /100, V AC; Venus 3.30+
  • H:108 PowerAssist enabled — UInt16, 0=Disabled, 1=Enabled; Venus 3.30+
  • H:109 UPS function enabled — UInt16, 0=Enabled, 1=Disabled (inverted); Venus 3.30+
  • H:200-231 Microgrid Registers — Grid-forming / grid-following / droop mode control; most RW, some unsupported in current firmware

Quellen