Victron: Unterschied zwischen den Versionen

Aus FHEMWiki
 
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
==Übersicht==
==Ü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 [https://de.wikipedia.org/wiki/MQTT MQTT] Server (mit und ohne SSL), der die Meßwerte der angeschlossenen Geräte - und das sind viele - per MQTT anbietet.
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 [https://de.wikipedia.org/wiki/MQTT 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
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 InstallID, 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 <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.  
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/<InstallID>/system/0/Batteries:.* { json2nameValue($EVENT, 'Batteries_', $JSONMAP) }
  N/<vrm_ID>/system/0/Batteries:.* { json2nameValue($EVENT, 'Batteries_', $JSONMAP) }
  N/<InstallID>/solarcharger/290/Yield/Power:.* { json2nameValue($EVENT, 'PVPower_', $JSONMAP) }
  N/<vrm_ID>/solarcharger/290/Yield/Power:.* { json2nameValue($EVENT, 'PVPower_', $JSONMAP) }
  N/<InstallID>/grid/30/Ac/Power:.* { json2nameValue($EVENT, 'GridPower_', $JSONMAP) }
  N/<vrm_ID>/grid/30/Ac/Power:.* { json2nameValue($EVENT, 'GridPower_', $JSONMAP) }
  N/<InstallID>/vebus/288/Ac/Out/P:.* { json2nameValue($EVENT, 'P_', $JSONMAP) }
  N/<vrm_ID>/vebus/288/Ac/Out/P:.* { json2nameValue($EVENT, 'P_', $JSONMAP) }
  N/<InstallID>/system/0/SystemState/State:.* { json2nameValue($EVENT, 'State_', $JSONMAP) }
  N/<vrm_ID>/system/0/SystemState/State:.* { json2nameValue($EVENT, 'State_', $JSONMAP) }
  N/<InstallID>/vebus/288/Mode:.* { json2nameValue($EVENT, 'Mode_', $JSONMAP) }
  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/<InstallID>/vebus/288/Mode {"value":4}
  off W/<vrm_ID>/vebus/288/Mode {"value":4}
  on W/<InstallID>/vebus/288/Mode {"value":3}
  on W/<vrm_ID>/vebus/288/Mode {"value":3}
  inv W/<InstallID>/vebus/288/Mode {"value":2}
  inv W/<vrm_ID>/vebus/288/Mode {"value":2}
  chg W/<InstallID>/vebus/288/Mode {"value":1}
  chg W/<vrm_ID>/vebus/288/Mode {"value":1}
  Mode W/<InstallID>/vebus/288/Mode {"value":$EVTPART1}
  Mode W/<vrm_ID>/vebus/288/Mode {"value":$EVTPART1}
  GridCurrentLimit W/<InstallID>/vebus/288/Ac/In/1/CurrentLimit {"value":$EVTPART1}
  GridCurrentLimit W/<vrm_ID>/vebus/288/Ac/In/1/CurrentLimit {"value":$EVTPART1}
  MinSOC W/<InstallID>/settings/0/Settings/CGwacs/BatteryLife/MinimumSocLimit {"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 ==
== 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, 12: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.

Externe Links