Victron

Aus FHEMWiki
Version vom 23. Januar 2023, 13:50 Uhr von Culemu (Diskussion | Beiträge) (fix: falscher Abschnitt)

Übersicht

Die Familie der Solarlade und -speichergeräte von Victron verwenden verschiedene Bussysteme, um untereinander zu kommunizieren. Sehr angenehmn ist, daß die zentrale Steuerung namens Venus (Victron ENergy Unix System :-) frei verfügbar ist, und gern auf einem RaspberryPi läuft. Integriert ist gleich ein MQTT Server (mit und ohne SSL), der die Meßwerte der angeschlossenen Geräte - und das sind viele - per MQTT anbietet.

Victron ist generell gut dokumentiert: https://www.victronenergy.com/support-and-downloads/technical-information

Einbindung fhem als MQTT2_DEVICE

Über MQTT2_CLIENT wird die Verbindung zum Broker auf dem Victron Venus Gerät angelegt. Hier ist die IP noch anzupasssen.

defmod venus MQTT2_CLIENT 10.1.x.x:1883
attr venus autocreate complex
attr venus clientOrder MQTT_GENERIC_BRIDGE MQTT2_DEVICE
attr venus room MQTT2_DEVICE
attr venus verbose 4
Aufbau der Topics von Victron

Jede Installation Venus gibt sich eine InstallID, die initial aus der Hardwareadresse abgeleitet wird. Über diese ID wird die Installation auf dem Victron VRM Portal erkannt. In den Beispielen unten taucht sie als <InstallID> auf. Die einzelnen Geräte einer Installation erhalten Nummern, die eine Unterscheidung auch mehrerer Wechselrichter (etwa im 3-Phasenbetrieb) oder mehrerer Solarlader ermöglichen.

Nach Verbindung erscheint eine umfangreiche readingList, aus der hier nur einige Elemente verwendet werden.

  • system - Konfiguration des Gesamtsystems bzw. konsolidierte Werte
  • solarcharger - MPPT-DC-Lader, Anschluß VE-Direct (seriell, baut auf RS-485) , Wartung per Bluetooth und App
  • grid - Stromzähler , Anschluß über RS-485 / wahlweise Ethernet
  • vebus - Wechselrichter, Anschluß über Cat5, serielles Protokoll
N/<InstallID>/system/0/Batteries:.* { json2nameValue($EVENT, 'Batteries_', $JSONMAP) }
N/<InstallID>/solarcharger/290/Yield/Power:.* { json2nameValue($EVENT, 'PVPower_', $JSONMAP) }
N/<InstallID>/grid/30/Ac/Power:.* { json2nameValue($EVENT, 'GridPower_', $JSONMAP) }
N/<InstallID>/vebus/288/Ac/Out/P:.* { json2nameValue($EVENT, 'P_', $JSONMAP) }
N/<InstallID>/system/0/SystemState/State:.* { json2nameValue($EVENT, 'State_', $JSONMAP) }
N/<InstallID>/vebus/288/Mode:.* { json2nameValue($EVENT, 'Mode_', $JSONMAP) }
Visualisierung

stateFormat kann so aussehen:

SSOC Batteries_value_1_soc, 
SOC: Batteries_value_1_soc % (MinimumSocLimit_value), 
Bat: Batteries_value_1_power W,
PV: PVPower_value W,
ACin: GridPower_value W, 
ACout2: P_value W,
State: State_value,
Mode: Mode_value

SSOC wird später für das devStateIcon genutzt.

Das devStateIcon bietet einen ersten Blick auf den Ladestand:

SSOC\s[2|3|4].+:measure_battery_25
SSOC\s[5|6].+:measure_battery_50
SSOC\s[7|8].+:measure_battery_75
SSOC\s[9].+:measure_battery_100

Derzeit existiert noch kein Template, aber das kann sich ja ändern.

Topics zum Schreiben

Einige Enstellungen sind schreibbar. Die entsprechenden Topics beginnen mit einem W. Eine setList kann beispielsweise so aussehen und erlaubt dann An- und Abschalten, Inverter- und Charger Mode Mode: Betriebszustand CurrentLimit: max. Strom aus/in das Netz MinimumSocLimit: Entladegranze im ESS (Speicher-)Betrieb, solange das Netz anliegt

off W/<InstallID>/vebus/288/Mode {"value":4}
on W/<InstallID>/vebus/288/Mode {"value":3}
inv W/<InstallID>/vebus/288/Mode {"value":2}
chg W/<InstallID>/vebus/288/Mode {"value":1}
Mode W/<InstallID>/vebus/288/Mode {"value":$EVTPART1}
GridCurrentLimit W/<InstallID>/vebus/288/Ac/In/1/CurrentLimit {"value":$EVTPART1}
MinSOC W/<InstallID>/settings/0/Settings/CGwacs/BatteryLife/MinimumSocLimit {"value":$EVTPART1}