Victron: Unterschied zwischen den Versionen
Culemu (Diskussion | Beiträge) (typo) |
Culemu (Diskussion | Beiträge) |
||
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 4: | Zeile 4: | ||
Victron ist generell gut dokumentiert: https://www.victronenergy.com/support-and-downloads/technical-information | Victron ist generell gut dokumentiert: https://www.victronenergy.com/support-and-downloads/technical-information | ||
==Einbindung fhem als MQTT2_DEVICE== | ==Einbindung in 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. | Über MQTT2_CLIENT wird zunächst 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 | defmod venus MQTT2_CLIENT 10.1.x.x:1883 | ||
attr venus autocreate complex | attr venus autocreate complex | ||
Zeile 11: | Zeile 11: | ||
attr venus room MQTT2_DEVICE | attr venus room MQTT2_DEVICE | ||
attr venus verbose 4 | attr venus verbose 4 | ||
Das Wechselrichter wird dann als MQTT2_DEVICE angelegt: | |||
defmod MQTT2_mp2 MQTT2_DEVICE venus | |||
attr MQTT2_mp2 IODev venus | |||
===== Aufbau der Topics von Victron ===== | ===== Aufbau der Topics von Victron ===== | ||
Jede Installation ''Venus'' gibt sich eine | Jede Installation ''Venus'' gibt sich eine vrm_ID, die initial aus der Hardwareadresse abgeleitet wird. Über diese ID wird die Installation auf dem [https:///vrm.victronenergy.com Victron VRM Portal] erkannt. In den Beispielen unten taucht sie als <vrm_ID> 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. | Nach Verbindung erscheint eine umfangreiche readingList, aus der hier nur einige Elemente verwendet werden. | ||
Zeile 21: | Zeile 25: | ||
* vebus - Wechselrichter, Anschluß über Cat5, serielles Protokoll | * vebus - Wechselrichter, Anschluß über Cat5, serielles Protokoll | ||
N/< | N/<vrm_ID>/system/0/Batteries:.* { json2nameValue($EVENT, 'Batteries_', $JSONMAP) } | ||
N/< | N/<vrm_ID>/solarcharger/290/Yield/Power:.* { json2nameValue($EVENT, 'PVPower_', $JSONMAP) } | ||
N/< | N/<vrm_ID>/grid/30/Ac/Power:.* { json2nameValue($EVENT, 'GridPower_', $JSONMAP) } | ||
N/< | N/<vrm_ID>/vebus/288/Ac/Out/P:.* { json2nameValue($EVENT, 'P_', $JSONMAP) } | ||
N/< | N/<vrm_ID>/system/0/SystemState/State:.* { json2nameValue($EVENT, 'State_', $JSONMAP) } | ||
N/< | N/<vrm_ID>/vebus/288/Mode:.* { json2nameValue($EVENT, 'Mode_', $JSONMAP) } | ||
===== Topics zum Schreiben ===== | ===== Topics zum Schreiben ===== | ||
Zeile 35: | Zeile 39: | ||
* CurrentLimit: max. Strom aus/in das Netz | * CurrentLimit: max. Strom aus/in das Netz | ||
* MinimumSocLimit: Entladegranze im ESS (Speicher-)Betrieb, solange das Netz anliegt | * MinimumSocLimit: Entladegranze im ESS (Speicher-)Betrieb, solange das Netz anliegt | ||
* Relay[0|1]: Schalte interne Relais | |||
Eine einfache Setlist: | Eine einfache Setlist: | ||
off W/< | off W/<vrm_ID>/vebus/288/Mode {"value":4} | ||
on W/< | on W/<vrm_ID>/vebus/288/Mode {"value":3} | ||
inv W/< | inv W/<vrm_ID>/vebus/288/Mode {"value":2} | ||
chg W/< | chg W/<vrm_ID>/vebus/288/Mode {"value":1} | ||
Mode W/< | Mode W/<vrm_ID>/vebus/288/Mode {"value":$EVTPART1} | ||
GridCurrentLimit W/< | GridCurrentLimit W/<vrm_ID>/vebus/288/Ac/In/1/CurrentLimit {"value":$EVTPART1} | ||
MinSOC W/< | MinSOC W/<vrm_ID>/settings/0/Settings/CGwacs/BatteryLife/MinimumSocLimit {"value":$EVTPART1} | ||
Relay0 W/<vrm_ID>/system/0/Relay/0/State:.* {"value":$EVTPART1} | |||
Relay1 W/<vrm_ID>/system/0/Relay/1/State:.* {"value":$EVTPART1} | |||
== Visualisierung == | == Visualisierung == | ||
Zeile 64: | Zeile 71: | ||
Derzeit existiert noch kein Template, aber das kann sich ja ändern. | Derzeit existiert noch kein Template, aber das kann sich ja ändern. | ||
== Externe Links == | |||
* [https://www.victronenergy.com/support-and-downloads/technical-information Victron Technical Info] | |||
* [https://vrm-api-docs.victronenergy.com/#/ VRm API] | |||
* [https://github.com/victronenergy/dbus-mqtt Venus MQTT Broker] |
Aktuelle Version vom 29. Januar 2023, 11:55 Uhr
Übersicht
Die Familie der Solarlade und -speichergeräte von Victron verwenden verschiedene Bussysteme, um untereinander zu kommunizieren. Sehr angenehm 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 in fhem als MQTT2_DEVICE
Über MQTT2_CLIENT wird zunächst 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
Das Wechselrichter wird dann als MQTT2_DEVICE angelegt:
defmod MQTT2_mp2 MQTT2_DEVICE venus attr MQTT2_mp2 IODev venus
Aufbau der Topics von Victron
Jede Installation Venus gibt sich eine vrm_ID, 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 <vrm_ID> 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/<vrm_ID>/system/0/Batteries:.* { json2nameValue($EVENT, 'Batteries_', $JSONMAP) } N/<vrm_ID>/solarcharger/290/Yield/Power:.* { json2nameValue($EVENT, 'PVPower_', $JSONMAP) } N/<vrm_ID>/grid/30/Ac/Power:.* { json2nameValue($EVENT, 'GridPower_', $JSONMAP) } N/<vrm_ID>/vebus/288/Ac/Out/P:.* { json2nameValue($EVENT, 'P_', $JSONMAP) } N/<vrm_ID>/system/0/SystemState/State:.* { json2nameValue($EVENT, 'State_', $JSONMAP) } N/<vrm_ID>/vebus/288/Mode:.* { json2nameValue($EVENT, 'Mode_', $JSONMAP) }
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
- Relay[0|1]: Schalte interne Relais
Eine einfache Setlist:
off W/<vrm_ID>/vebus/288/Mode {"value":4} on W/<vrm_ID>/vebus/288/Mode {"value":3} inv W/<vrm_ID>/vebus/288/Mode {"value":2} chg W/<vrm_ID>/vebus/288/Mode {"value":1} Mode W/<vrm_ID>/vebus/288/Mode {"value":$EVTPART1} GridCurrentLimit W/<vrm_ID>/vebus/288/Ac/In/1/CurrentLimit {"value":$EVTPART1} MinSOC W/<vrm_ID>/settings/0/Settings/CGwacs/BatteryLife/MinimumSocLimit {"value":$EVTPART1} Relay0 W/<vrm_ID>/system/0/Relay/0/State:.* {"value":$EVTPART1} Relay1 W/<vrm_ID>/system/0/Relay/1/State:.* {"value":$EVTPART1}
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.