Victron: Unterschied zwischen den Versionen

Aus FHEMWiki
Keine Bearbeitungszusammenfassung
 
(11 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.


==Einbindung fhem als MQTT2_DEVICE==
Victron ist generell gut dokumentiert: https://www.victronenergy.com/support-and-downloads/technical-information
Über MQTT2_CLIENT wird die Verbindung zum Broker auf dem Victron Venus Gerät angelegt. Hier ist die IP noch anzupasssen.
 
==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
  defmod venus MQTT2_CLIENT 10.1.x.x:1883
  attr venus autocreate complex
  attr venus autocreate complex
Zeile 9: 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.
* 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 - [https://www.victronenergy.com/accessories/energy-meter 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/<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) }


===== Visualisierung =====
===== Topics zum Schreiben =====
stateFormat kann so aussehen:
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,  
  SSOC Batteries_value_1_soc,  
  SOC: Batteries_value_1_soc % (MinimumSocLimit_value),  
  SOC: Batteries_value_1_soc % (MinimumSocLimit_value),  
Zeile 34: Zeile 64:
SSOC wird später für das devStateIcon genutzt.
SSOC wird später für das devStateIcon genutzt.


Das devStateIcon bietet einen ersten Blick auf den Ladestand:
Das '''devStateIcon''' bietet einen ersten Blick auf den Ladestand:
  SSOC\s[2|3|4].+:measure_battery_25
  SSOC\s[2|3|4].+:measure_battery_25
  SSOC\s[5|6].+:measure_battery_50
  SSOC\s[5|6].+:measure_battery_50
Zeile 42: Zeile 72:
Derzeit existiert noch kein Template, aber das kann sich ja ändern.
Derzeit existiert noch kein Template, aber das kann sich ja ändern.


==Topics zum Schreiben==
== Externe Links ==
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
* [https://www.victronenergy.com/support-and-downloads/technical-information Victron Technical Info]
Mode: Betriebszustand
* [https://vrm-api-docs.victronenergy.com/#/ VRm API]
CurrentLimit: max. Strom aus/in das Netz
* [https://github.com/victronenergy/dbus-mqtt Venus MQTT Broker]
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}

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.

Externe Links