Victron: Unterschied zwischen den Versionen

Aus FHEMWiki
 
(12 dazwischenliegende Versionen von 2 Benutzern 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 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}
 
 
==Einbindung über ModbusAttr==
Die verschiedenen Devices werden intern über verschieden Modbusadressen abgefragt.
Dies kann man dem Excel "Modbus-TCP Register List unter Link 1 entnehmen.
 
Hier ist der Code für ein MultiPlus II-5000 Device (die Unit ID 227 verweist auf den VE.Bus-Port an ttyS4, an welchem ausschließlich jener Multiplus angeschlossen ist). Leider kann ich es mangels Geräten nicht testen, aber ich vermute, dass wenn der Multiplus an einen anderen Port angeschlossen wird, lediglich die Modbus-ID zu ändern ist.
 
=== Multiplus II ===
<syntaxhighlight>
defmod MultiPlusII_227 ModbusAttr 227 5 192.168.243.38:502 TCP
attr MultiPlusII_227 dev-h-defPoll 1
attr MultiPlusII_227 obj-h0003-expr $val / 10
attr MultiPlusII_227 obj-h0003-len 2
attr MultiPlusII_227 obj-h0003-reading AC_Input_Voltage_L1
attr MultiPlusII_227 obj-h0003-unpack n
attr MultiPlusII_227 obj-h0004-expr $val / 10
attr MultiPlusII_227 obj-h0004-len 2
attr MultiPlusII_227 obj-h0004-reading AC_Input_Voltage_L2
attr MultiPlusII_227 obj-h0004-unpack n
attr MultiPlusII_227 obj-h0005-expr $val / 10
attr MultiPlusII_227 obj-h0005-reading AC_Input_Voltage_L3
attr MultiPlusII_227 obj-h0005-unpack n
attr MultiPlusII_227 obj-h0006-expr $val / 10
attr MultiPlusII_227 obj-h0006-reading AC_Input_Current_L1
attr MultiPlusII_227 obj-h0006-unpack s>
attr MultiPlusII_227 obj-h0007-expr $val / 10
attr MultiPlusII_227 obj-h0007-reading AC_Input_Current_L2
attr MultiPlusII_227 obj-h0007-unpack s>
attr MultiPlusII_227 obj-h0008-expr $val / 10
attr MultiPlusII_227 obj-h0008-reading AC_Input_Current_L3
attr MultiPlusII_227 obj-h0008-unpack s>
attr MultiPlusII_227 obj-h0009-expr $val / 100
attr MultiPlusII_227 obj-h0009-reading AC_Input_Frequency_L1
attr MultiPlusII_227 obj-h0009-unpack s>
attr MultiPlusII_227 obj-h0010-expr $val / 100
attr MultiPlusII_227 obj-h0010-reading AC_Input_Current_L2
attr MultiPlusII_227 obj-h0010-unpack s>
attr MultiPlusII_227 obj-h0011-expr $val / 100
attr MultiPlusII_227 obj-h0011-reading AC_Input_Frequency_L3
attr MultiPlusII_227 obj-h0011-unpack s>
attr MultiPlusII_227 obj-h0012-expr $val * 10
attr MultiPlusII_227 obj-h0012-reading AC_Input_Power_L1
attr MultiPlusII_227 obj-h0012-unpack s>
attr MultiPlusII_227 obj-h0013-expr $val * 10
attr MultiPlusII_227 obj-h0013-reading AC_Input_Power_L2
attr MultiPlusII_227 obj-h0013-unpack s>
attr MultiPlusII_227 obj-h0014-expr $val * 10
attr MultiPlusII_227 obj-h0014-reading AC_Input_Power_L3
attr MultiPlusII_227 obj-h0014-unpack s>
attr MultiPlusII_227 obj-h0015-expr $val / 10
attr MultiPlusII_227 obj-h0015-reading AC_Output_Voltage_L1
attr MultiPlusII_227 obj-h0015-unpack n
attr MultiPlusII_227 obj-h0016-expr $val / 10
attr MultiPlusII_227 obj-h0016-reading AC_Output_Voltage_L2
attr MultiPlusII_227 obj-h0016-unpack n
attr MultiPlusII_227 obj-h0017-expr $val / 10
attr MultiPlusII_227 obj-h0017-reading AC_Output_Voltage_L3
attr MultiPlusII_227 obj-h0017-unpack n
attr MultiPlusII_227 obj-h0018-expr $val / 10
attr MultiPlusII_227 obj-h0018-reading AC_Output_Current_L1
attr MultiPlusII_227 obj-h0018-unpack s>
attr MultiPlusII_227 obj-h0019-expr $val / 10
attr MultiPlusII_227 obj-h0019-reading AC_Output_Current_L2
attr MultiPlusII_227 obj-h0019-unpack s>
attr MultiPlusII_227 obj-h0020-expr $val / 10
attr MultiPlusII_227 obj-h0020-reading AC_Output_Current_L3
attr MultiPlusII_227 obj-h0020-unpack s>
attr MultiPlusII_227 obj-h0021-expr $val / 100
attr MultiPlusII_227 obj-h0021-reading AC_Output_Frequency
attr MultiPlusII_227 obj-h0021-unpack s>
attr MultiPlusII_227 obj-h0022-expr $val / 10
attr MultiPlusII_227 obj-h0022-reading Active_Input_current_Limit
attr MultiPlusII_227 obj-h0022-unpack s>
attr MultiPlusII_227 obj-h0023-expr $val * 10
attr MultiPlusII_227 obj-h0023-reading AC_Output_Power_L1
attr MultiPlusII_227 obj-h0023-unpack s>
attr MultiPlusII_227 obj-h0024-expr $val * 10
attr MultiPlusII_227 obj-h0024-reading AC_Output_Power_L2
attr MultiPlusII_227 obj-h0024-unpack s>
attr MultiPlusII_227 obj-h0025-expr $val * 10
attr MultiPlusII_227 obj-h0025-reading AC_Output_Power_L3
attr MultiPlusII_227 obj-h0025-unpack s>
attr MultiPlusII_227 obj-h0026-expr $val / 100
attr MultiPlusII_227 obj-h0026-reading Battery_Voltage
attr MultiPlusII_227 obj-h0026-unpack n
attr MultiPlusII_227 obj-h0027-expr $val / 10
attr MultiPlusII_227 obj-h0027-reading Battery_Current
attr MultiPlusII_227 obj-h0027-unpack s>
attr MultiPlusII_227 obj-h0028-reading Phase_Count
attr MultiPlusII_227 obj-h0028-unpack n
attr MultiPlusII_227 obj-h0029-map 0:AC Input 1,1:AC Input 2,240:Disconnected
attr MultiPlusII_227 obj-h0029-reading Active_Input
attr MultiPlusII_227 obj-h0029-unpack n
attr MultiPlusII_227 obj-h0030-expr $val / 10
attr MultiPlusII_227 obj-h0030-reading vebus_soc
attr MultiPlusII_227 obj-h0030-unpack n
attr MultiPlusII_227 obj-h0031-map 0:Off,1:Low Power,2:Fault,3:Bulk,4:Absorption,5:Float,6:Storage,7:Equalize,8:Passthru,9:Inverting,10:Power assist,11:Power supply,244:Sustain,252:External controL
attr MultiPlusII_227 obj-h0031-reading vebus_state
attr MultiPlusII_227 obj-h0031-unpack n
attr MultiPlusII_227 obj-h0032-map 0:No error,1:VE.Bus Error Device is switched off because one of the other phases in the system has switched off,2:VE.Bus Error New and old types MK2 are mixed in the system,3:VE.Bus Error Not all- or more than- the expected devices were found in the system,4:VE.Bus Error No other device whatsoever detected,5:VE.Bus Error Overvoltage on AC-out,6:VE.Bus Error  Error in DDC Program,7:VE.Bus BMS connected- which requires an Assistant- but no assistant found,10:VE.Bus Error System time synchronisation problem occurred,14:VE.Bus Error Device cannot transmit data,16:VE.Bus Error Dongle missing,17:VE.Bus Error One of the devices assumed master status because the original master failed,18:VE.Bus Error AC Overvoltage on the output of a slave has occurred while already switched off,22:VE.Bus Error This device cannot function as slave,24:VE.Bus Error Switch-over system protection initiated,25:VE.Bus Error 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 Internal error
attr MultiPlusII_227 obj-h0032-reading vebus_error
attr MultiPlusII_227 obj-h0032-unpack n
attr MultiPlusII_227 obj-h0033-map 1:Charger Only,2:Inverter Only,3:Charger and Inverter,4:Off
attr MultiPlusII_227 obj-h0033-reading Device_Status
attr MultiPlusII_227 obj-h0033-unpack n
attr MultiPlusII_227 obj-h0033-set 1
attr MultiPlusII_227 obj-h0034-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0034-reading temperature_alarm
attr MultiPlusII_227 obj-h0034-unpack n
attr MultiPlusII_227 obj-h0035-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0035-reading low_battery_alarm
attr MultiPlusII_227 obj-h0035-unpack n
attr MultiPlusII_227 obj-h0036-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0036-reading overload_alarm
attr MultiPlusII_227 obj-h0036-unpack n
attr MultiPlusII_227 obj-h0037-reading ESS_Power_setpoint_L1
attr MultiPlusII_227 obj-h0037-unpack s>
attr MultiPlusII_227 obj-h0038-map 0:Charge allowed,1:Charge disabled
attr MultiPlusII_227 obj-h0038-reading ESS_disable_charge_flag_phase
attr MultiPlusII_227 obj-h0038-unpack n
attr MultiPlusII_227 obj-h0039-map 0:Feed in allowed,1:Feed in disabled
attr MultiPlusII_227 obj-h0039-reading ESS_disable_feedback_flag_phase
attr MultiPlusII_227 obj-h0039-unpack n
attr MultiPlusII_227 obj-h0040-reading ESS_Power_setpoint_L2
attr MultiPlusII_227 obj-h0040-unpack s>
attr MultiPlusII_227 obj-h0041-reading ESS_Power_setpoint_L3
attr MultiPlusII_227 obj-h0041-unpack s>
attr MultiPlusII_227 obj-h0042-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0042-reading temperature_sensor_alarm
attr MultiPlusII_227 obj-h0042-unpack n
attr MultiPlusII_227 obj-h0043-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0043-reading voltage_sensor_alarm
attr MultiPlusII_227 obj-h0043-unpack n
attr MultiPlusII_227 obj-h0044-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0044-reading temperature_alarm_L1
attr MultiPlusII_227 obj-h0044-unpack n
attr MultiPlusII_227 obj-h0045-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0045-reading low_battery_alarm_L1
attr MultiPlusII_227 obj-h0045-unpack n
attr MultiPlusII_227 obj-h0046-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0046-reading overload_alarm_L1
attr MultiPlusII_227 obj-h0046-unpack n
attr MultiPlusII_227 obj-h0047-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0047-reading ripple_alarm_L1
attr MultiPlusII_227 obj-h0047-unpack n
attr MultiPlusII_227 obj-h0048-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0048-reading temperature_alarm_L2
attr MultiPlusII_227 obj-h0048-unpack n
attr MultiPlusII_227 obj-h0049-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0049-reading low_battery_alarm_L2
attr MultiPlusII_227 obj-h0049-unpack n
attr MultiPlusII_227 obj-h0050-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0050-reading overload_alarm_L2
attr MultiPlusII_227 obj-h0050-unpack n
attr MultiPlusII_227 obj-h0051-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0051-reading ripple_alarm_L2
attr MultiPlusII_227 obj-h0051-unpack n
attr MultiPlusII_227 obj-h0052-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0052-reading temperature_alarm_L3
attr MultiPlusII_227 obj-h0052-unpack n
attr MultiPlusII_227 obj-h0053-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0053-reading low_battery_alarm_L3
attr MultiPlusII_227 obj-h0053-unpack n
attr MultiPlusII_227 obj-h0054-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0054-reading overload_alarm_L3
attr MultiPlusII_227 obj-h0054-unpack n
attr MultiPlusII_227 obj-h0055-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0055-reading ripple_alarm_L3
attr MultiPlusII_227 obj-h0055-unpack n
attr MultiPlusII_227 obj-h0056-map 0:PV enabled,1:PV disabled
attr MultiPlusII_227 obj-h0056-reading disable_pv_inverter
attr MultiPlusII_227 obj-h0056-unpack n
attr MultiPlusII_227 obj-h0057-map 0:No,1:Yes
attr MultiPlusII_227 obj-h0057-reading bms_allow_charge
attr MultiPlusII_227 obj-h0057-unpack n
attr MultiPlusII_227 obj-h0058-map 0:No,1:Yes
attr MultiPlusII_227 obj-h0058-reading bms_allow_discharge
attr MultiPlusII_227 obj-h0058-unpack n
attr MultiPlusII_227 obj-h0059-map 0:No,1:Yes
attr MultiPlusII_227 obj-h0059-reading bms_expected
attr MultiPlusII_227 obj-h0059-unpack n
attr MultiPlusII_227 obj-h0060-map 0:No,1:Yes
attr MultiPlusII_227 obj-h0060-reading bms_error
attr MultiPlusII_227 obj-h0060-unpack n
attr MultiPlusII_227 obj-h0061-expr $val / 10
attr MultiPlusII_227 obj-h0061-reading temperature_battery
attr MultiPlusII_227 obj-h0061-unpack s>
attr MultiPlusII_227 obj-h0062-map 1:VE.Bus reset
attr MultiPlusII_227 obj-h0062-reading vebus_reset
attr MultiPlusII_227 obj-h0062-unpack n
attr MultiPlusII_227 obj-h0063-map 0:Ok,1:Warning
attr MultiPlusII_227 obj-h0063-reading phase_rotation_warning
attr MultiPlusII_227 obj-h0063-unpack n
attr MultiPlusII_227 obj-h0064-map 0:Ok,2:Alarm
attr MultiPlusII_227 obj-h0064-reading grid_lost_alarm
attr MultiPlusII_227 obj-h0064-unpack n
attr MultiPlusII_227 obj-h0065-map 0:Feed in overvoltage,1:Do not feed in overvoltage
attr MultiPlusII_227 obj-h0065-reading feed_dc_overvoltage_into_grid
attr MultiPlusII_227 obj-h0065-unpack n
attr MultiPlusII_227 obj-h0066-expr $val * 100
attr MultiPlusII_227 obj-h0066-reading maximum_overvoltage_feedin_power_L1
attr MultiPlusII_227 obj-h0066-unpack n
attr MultiPlusII_227 obj-h0067-expr $val * 100
attr MultiPlusII_227 obj-h0067-reading maximum_overvoltage_feedin_power_L2
attr MultiPlusII_227 obj-h0067-unpack n
attr MultiPlusII_227 obj-h0068-expr $val * 100
attr MultiPlusII_227 obj-h0068-reading maximum_overvoltage_feedin_power_L3
attr MultiPlusII_227 obj-h0068-unpack n
attr MultiPlusII_227 obj-h0069-map 0:AC input not ignored,1:AC input ignored
attr MultiPlusII_227 obj-h0069-reading ac_input_1_ignored
attr MultiPlusII_227 obj-h0069-unpack n
attr MultiPlusII_227 obj-h0070-map 0:AC input not ignored,1:AC input ignored
attr MultiPlusII_227 obj-h0070-reading ac_input_2_ignored
attr MultiPlusII_227 obj-h0070-unpack n
attr MultiPlusII_227 obj-h0071-map 0:AcPowerSetpoint interpreted normally, 1:AcPowerSetpoint is OvervoltageFeedIn limit
attr MultiPlusII_227 obj-h0071-reading ac_power_setpoint_acts_as_feedin_limit
attr MultiPlusII_227 obj-h0071-unpack n
attr MultiPlusII_227 obj-h0072-map 0:OvervoltageFeedIn uses 1V offset, 1:OvervoltageFeedIn uses 0.1V offset
attr MultiPlusII_227 obj-h0072-reading solar_offset_voltage
attr MultiPlusII_227 obj-h0072-unpack n
attr MultiPlusII_227 obj-h0073-map 0:Sustain inactive, 1:Sustain active
attr MultiPlusII_227 obj-h0073-reading sustain_active
attr MultiPlusII_227 obj-h0073-unpack n
attr MultiPlusII_227 obj-h0074-expr $val / 100
attr MultiPlusII_227 obj-h0074-len 2
attr MultiPlusII_227 obj-h0074-reading energy_from_acIn1_to_acOut
attr MultiPlusII_227 obj-h0074-unpack N
attr MultiPlusII_227 obj-h0076-expr $val / 100
attr MultiPlusII_227 obj-h0076-len 2
attr MultiPlusII_227 obj-h0076-reading energy_from_acIn1_to_battery
attr MultiPlusII_227 obj-h0076-unpack N
attr MultiPlusII_227 obj-h0078-expr $val / 100
attr MultiPlusII_227 obj-h0078-len 2
attr MultiPlusII_227 obj-h0078-reading energy_from_acIn2_to_acOut
attr MultiPlusII_227 obj-h0078-unpack N
attr MultiPlusII_227 obj-h0080-expr $val / 100
attr MultiPlusII_227 obj-h0080-len 2
attr MultiPlusII_227 obj-h0080-reading energy_from_acIn2_to_battery
attr MultiPlusII_227 obj-h0080-unpack N
attr MultiPlusII_227 obj-h0082-expr $val / 100
attr MultiPlusII_227 obj-h0082-len 2
attr MultiPlusII_227 obj-h0082-reading energy_from_acOut_to_acIn1
attr MultiPlusII_227 obj-h0082-unpack N
attr MultiPlusII_227 obj-h0084-expr $val / 100
attr MultiPlusII_227 obj-h0084-len 2
attr MultiPlusII_227 obj-h0084-reading energy_from_acOut_to_acIn2
attr MultiPlusII_227 obj-h0084-unpack f>
attr MultiPlusII_227 obj-h0086-expr $val / 100
attr MultiPlusII_227 obj-h0086-len 2
attr MultiPlusII_227 obj-h0086-reading energy_from_battery_to_AcIn1
attr MultiPlusII_227 obj-h0086-unpack f>
attr MultiPlusII_227 obj-h0088-expr $val / 100
attr MultiPlusII_227 obj-h0088-len 2
attr MultiPlusII_227 obj-h0088-reading energy_from_battery_to_AcIn2
attr MultiPlusII_227 obj-h0088-unpack N
attr MultiPlusII_227 obj-h0090-expr $val / 100
attr MultiPlusII_227 obj-h0090-len 2
attr MultiPlusII_227 obj-h0090-reading energy_from_battery_to_AcOut
attr MultiPlusII_227 obj-h0090-unpack f>
attr MultiPlusII_227 obj-h0092-expr $val / 100
attr MultiPlusII_227 obj-h0092-len 2
attr MultiPlusII_227 obj-h0092-reading energy_from_AcOut_to_battery
attr MultiPlusII_227 obj-h0092-unpack N
attr MultiPlusII_227 obj-h0094-map 0:OK,1:Warning
attr MultiPlusII_227 obj-h0094-reading low_cell_voltage_imminent
attr MultiPlusII_227 obj-h0094-unpack n
attr MultiPlusII_227 obj-h0095-map 0:Initialising,1:Bulk,2:Absorption,3:Float,4:Storage,5:Absorb repeat,6:Forced absorb,7:Equalise,8:Bulk stopped,9:Unknown
attr MultiPlusII_227 obj-h0095-reading charge_state
attr MultiPlusII_227 obj-h0095-unpack n
attr MultiPlusII_227 obj-h0096-reading ESS_Power_setpoint_L1
attr MultiPlusII_227 obj-h0096-unpack f>
attr MultiPlusII_227 obj-h0098-len 2
attr MultiPlusII_227 obj-h0098-reading ESS_Power_setpoint_L2
attr MultiPlusII_227 obj-h0098-unpack f>
attr MultiPlusII_227 obj-h0100-len 2
attr MultiPlusII_227 obj-h0100-reading ESS_Power_setpoint_L2
attr MultiPlusII_227 obj-h0100-unpack f>
attr MultiPlusII_227 obj-h0102-map 0:Renewable energy not preferred,1:Renewable energy preferred
attr MultiPlusII_227 obj-h0102-reading prefer_renewable_energy
attr MultiPlusII_227 obj-h0102-unpack n
attr MultiPlusII_227 obj-h0103-map 0:Generator not selected,1:Generator selected
attr MultiPlusII_227 obj-h0103-reading select_remote_generator
attr MultiPlusII_227 obj-h0103-unpack n
attr MultiPlusII_227 obj-h0104-map 0:Generator not selected,1:Generator selected
attr MultiPlusII_227 obj-h0104-reading remote_generator_selected
attr MultiPlusII_227 obj-h0104-unpack n
attr MultiPlusII_227 obj-h0105-map 0:No Action, 1:Redetect System
attr MultiPlusII_227 obj-h0105-reading redetect_vebus_system
attr MultiPlusII_227 obj-h0105-unpack n
attr MultiPlusII_227 obj-h0106-expr $val / 100
attr MultiPlusII_227 obj-h0106-reading powerAssist_boost_factor
attr MultiPlusII_227 obj-h0106-unpack n
attr MultiPlusII_227 obj-h0107-expr $val / 100
attr MultiPlusII_227 obj-h0107-reading configured_output_voltage
attr MultiPlusII_227 obj-h0107-unpack n
attr MultiPlusII_227 obj-h0108-map 0:disabled, 1:enabled
attr MultiPlusII_227 obj-h0108-reading powerAssist_enabled
attr MultiPlusII_227 obj-h0108-unpack n
attr MultiPlusII_227 obj-h0109-map 0:disabled, 1:enabled
attr MultiPlusII_227 obj-h0109-reading ups_function_enabled
attr MultiPlusII_227 obj-h0109-unpack n
attr MultiPlusII_227 room Solar->Victron
</syntaxhighlight>
 
=== Cerbo GX mit Unit ID 100 ===
<syntaxhighlight>
defmod Cerbo_100 ModbusAttr 100 5 192.168.243.38:502 TCP
attr Cerbo_100 dev-h-defPoll 1
attr Cerbo_100 obj-h0800-len 6
attr Cerbo_100 obj-h0800-reading system_serial
attr Cerbo_100 obj-h0800-unpack Z12
attr Cerbo_100 obj-h0806-map 0:Open,1:Closed
attr Cerbo_100 obj-h0806-reading CCGX_relay_state_1
attr Cerbo_100 obj-h0806-unpack n
attr Cerbo_100 obj-h0807-map 0:Open,1:Closed
attr Cerbo_100 obj-h0807-reading CCGX_relay_state_2
attr Cerbo_100 obj-h0807-unpack n
attr Cerbo_100 obj-h0808-reading PV_AC_Coupled_output_L1
attr Cerbo_100 obj-h0808-unpack n
attr Cerbo_100 obj-h0809-reading PV_AC_Coupled_output_L2
attr Cerbo_100 obj-h0809-unpack n
attr Cerbo_100 obj-h0810-reading PV_AC_Coupled_output_L3
attr Cerbo_100 obj-h0810-unpack n
attr Cerbo_100 obj-h0811-reading PV_AC_Coupled_input_L1
attr Cerbo_100 obj-h0811-unpack n
attr Cerbo_100 obj-h0812-reading PV_AC_Coupled_input_L2
attr Cerbo_100 obj-h0812-unpack n
attr Cerbo_100 obj-h0813-reading PV_AC_Coupled_input_L3
attr Cerbo_100 obj-h0813-unpack n
attr Cerbo_100 obj-h0814-reading PV_AC_Coupled_generator_L1
attr Cerbo_100 obj-h0814-unpack n
attr Cerbo_100 obj-h0815-reading PV_AC_Coupled_generator_L2
attr Cerbo_100 obj-h0815-unpack n
attr Cerbo_100 obj-h0816-reading PV_AC_Coupled_generator_L3
attr Cerbo_100 obj-h0816-unpack n
attr Cerbo_100 obj-h0817-reading AC_consumption_L1
attr Cerbo_100 obj-h0817-unpack n
attr Cerbo_100 obj-h0818-reading AC_consumption_L2
attr Cerbo_100 obj-h0818-unpack n
attr Cerbo_100 obj-h0819-reading AC_consumption_L3
attr Cerbo_100 obj-h0819-unpack n
attr Cerbo_100 obj-h0820-reading grid_L1
attr Cerbo_100 obj-h0820-unpack s>
attr Cerbo_100 obj-h0821-reading grid_L2
attr Cerbo_100 obj-h0821-unpack s>
attr Cerbo_100 obj-h0822-reading grid_L3
attr Cerbo_100 obj-h0822-unpack s>
attr Cerbo_100 obj-h0823-reading genset_L1
attr Cerbo_100 obj-h0823-unpack s>
attr Cerbo_100 obj-h0824-reading genset_L2
attr Cerbo_100 obj-h0824-unpack s>
attr Cerbo_100 obj-h0825-reading genset_L3
attr Cerbo_100 obj-h0825-unpack s>
attr Cerbo_100 obj-h0826-map 0:Unknown,1:Grid,2:Generator,3:Shore power,240:Not connected
attr Cerbo_100 obj-h0826-reading active_input_source
attr Cerbo_100 obj-h0826-unpack s>
attr Cerbo_100 obj-h0830-len 4
attr Cerbo_100 obj-h0830-reading system_UTC_time
attr Cerbo_100 obj-h0830-unpack Q
attr Cerbo_100 obj-h0840-expr $val / 10
attr Cerbo_100 obj-h0840-reading battery_voltage_system
attr Cerbo_100 obj-h0840-unpack n
attr Cerbo_100 obj-h0841-expr $val / 10
attr Cerbo_100 obj-h0841-reading battery_current_system
attr Cerbo_100 obj-h0841-unpack s>
attr Cerbo_100 obj-h0842-reading battery_power_system
attr Cerbo_100 obj-h0842-unpack s>
attr Cerbo_100 obj-h0843-reading battery_soc_system
attr Cerbo_100 obj-h0843-unpack n
attr Cerbo_100 obj-h0844-map 0:idle,1:charging,2:discharging
attr Cerbo_100 obj-h0844-reading battery_state_system
attr Cerbo_100 obj-h0844-unpack n
attr Cerbo_100 obj-h0845-expr $val /-10
attr Cerbo_100 obj-h0845-reading battery_consumed_amphours_system
attr Cerbo_100 obj-h0845-unpack n
attr Cerbo_100 obj-h0846-expr $val * 100
attr Cerbo_100 obj-h0846-reading battery_timetogo_system
attr Cerbo_100 obj-h0846-unpack n
attr Cerbo_100 obj-h0850-reading PV_DC_Coupled_power
attr Cerbo_100 obj-h0850-unpack n
attr Cerbo_100 obj-h0851-expr $val /10
attr Cerbo_100 obj-h0851-reading PV_DC_Coupled_current
attr Cerbo_100 obj-h0851-unpack s>
attr Cerbo_100 obj-h0855-reading charger_power
attr Cerbo_100 obj-h0855-unpack n
attr Cerbo_100 obj-h0860-reading dc_system_power
attr Cerbo_100 obj-h0860-unpack s>
attr Cerbo_100 obj-h0865-expr $val /10
attr Cerbo_100 obj-h0865-reading vebus_charge_current_system
attr Cerbo_100 obj-h0865-unpack s>
attr Cerbo_100 obj-h0866-reading vebus_charge_power_system
attr Cerbo_100 obj-h0866-unpack s>
attr Cerbo_100 obj-h0867-reading RESERVED
attr Cerbo_100 obj-h0867-unpack n
attr Cerbo_100 obj-h0868-expr $val /10
attr Cerbo_100 obj-h0868-reading inverter_charger_current
attr Cerbo_100 obj-h0868-unpack f>
attr Cerbo_100 obj-h0870-len 2
attr Cerbo_100 obj-h0870-reading inverter_charger_power
attr Cerbo_100 obj-h0870-unpack f>
attr Cerbo_100 obj-h0872-len 2
attr Cerbo_100 obj-h0872-reading power_between_meter_and_charger_L1
attr Cerbo_100 obj-h0872-unpack f>
attr Cerbo_100 obj-h0874-len 2
attr Cerbo_100 obj-h0874-reading power_between_meter_and_charger_L2
attr Cerbo_100 obj-h0874-unpack f>
attr Cerbo_100 obj-h0876-len 2
attr Cerbo_100 obj-h0876-reading power_between_meter_and_charger_L3
attr Cerbo_100 obj-h0876-unpack f>
attr Cerbo_100 obj-h0878-len 2
attr Cerbo_100 obj-h0878-reading power_output_inverter_charger_L1
attr Cerbo_100 obj-h0878-unpack f>
attr Cerbo_100 obj-h0880-len 2
attr Cerbo_100 obj-h0880-reading power_output_inverter_charger_L2
attr Cerbo_100 obj-h0880-unpack f>
attr Cerbo_100 obj-h0882-len 2
attr Cerbo_100 obj-h0882-reading power_output_inverter_charger_L3
attr Cerbo_100 obj-h0882-unpack f>
attr Cerbo_100 room Solar->Victron
 
</syntaxhighlight>
 


== Visualisierung ==
==Visualisierung==
'''stateFormat''' kann so aussehen:
'''stateFormat''' kann so aussehen:
  SSOC Batteries_value_1_soc,  
  SSOC Batteries_value_1_soc,  
Zeile 65: Zeile 495:
Derzeit existiert noch kein Template, aber das kann sich ja ändern.
Derzeit existiert noch kein Template, aber das kann sich ja ändern.


== Externe Links ==
==Externe Links==
* [https://www.victronenergy.com/support-and-downloads/technical-information Victron Technical Info]
*[https://www.victronenergy.com/support-and-downloads/technical-information Victron Technical Info]
* [https://vrm-api-docs.victronenergy.com/#/ VRm API]
*[https://vrm-api-docs.victronenergy.com/#/ VRm API]
*[https://github.com/victronenergy/dbus-mqtt Venus MQTT Broker]

Aktuelle Version vom 10. März 2025, 11:34 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}


Einbindung über ModbusAttr

Die verschiedenen Devices werden intern über verschieden Modbusadressen abgefragt. Dies kann man dem Excel "Modbus-TCP Register List unter Link 1 entnehmen.

Hier ist der Code für ein MultiPlus II-5000 Device (die Unit ID 227 verweist auf den VE.Bus-Port an ttyS4, an welchem ausschließlich jener Multiplus angeschlossen ist). Leider kann ich es mangels Geräten nicht testen, aber ich vermute, dass wenn der Multiplus an einen anderen Port angeschlossen wird, lediglich die Modbus-ID zu ändern ist.

Multiplus II

defmod MultiPlusII_227 ModbusAttr 227 5 192.168.243.38:502 TCP
attr MultiPlusII_227 dev-h-defPoll 1
attr MultiPlusII_227 obj-h0003-expr $val / 10
attr MultiPlusII_227 obj-h0003-len 2
attr MultiPlusII_227 obj-h0003-reading AC_Input_Voltage_L1
attr MultiPlusII_227 obj-h0003-unpack n
attr MultiPlusII_227 obj-h0004-expr $val / 10
attr MultiPlusII_227 obj-h0004-len 2
attr MultiPlusII_227 obj-h0004-reading AC_Input_Voltage_L2
attr MultiPlusII_227 obj-h0004-unpack n
attr MultiPlusII_227 obj-h0005-expr $val / 10
attr MultiPlusII_227 obj-h0005-reading AC_Input_Voltage_L3
attr MultiPlusII_227 obj-h0005-unpack n
attr MultiPlusII_227 obj-h0006-expr $val / 10
attr MultiPlusII_227 obj-h0006-reading AC_Input_Current_L1
attr MultiPlusII_227 obj-h0006-unpack s>
attr MultiPlusII_227 obj-h0007-expr $val / 10
attr MultiPlusII_227 obj-h0007-reading AC_Input_Current_L2
attr MultiPlusII_227 obj-h0007-unpack s>
attr MultiPlusII_227 obj-h0008-expr $val / 10
attr MultiPlusII_227 obj-h0008-reading AC_Input_Current_L3
attr MultiPlusII_227 obj-h0008-unpack s>
attr MultiPlusII_227 obj-h0009-expr $val / 100
attr MultiPlusII_227 obj-h0009-reading AC_Input_Frequency_L1
attr MultiPlusII_227 obj-h0009-unpack s>
attr MultiPlusII_227 obj-h0010-expr $val / 100
attr MultiPlusII_227 obj-h0010-reading AC_Input_Current_L2
attr MultiPlusII_227 obj-h0010-unpack s>
attr MultiPlusII_227 obj-h0011-expr $val / 100
attr MultiPlusII_227 obj-h0011-reading AC_Input_Frequency_L3
attr MultiPlusII_227 obj-h0011-unpack s>
attr MultiPlusII_227 obj-h0012-expr $val * 10
attr MultiPlusII_227 obj-h0012-reading AC_Input_Power_L1
attr MultiPlusII_227 obj-h0012-unpack s>
attr MultiPlusII_227 obj-h0013-expr $val * 10
attr MultiPlusII_227 obj-h0013-reading AC_Input_Power_L2
attr MultiPlusII_227 obj-h0013-unpack s>
attr MultiPlusII_227 obj-h0014-expr $val * 10
attr MultiPlusII_227 obj-h0014-reading AC_Input_Power_L3
attr MultiPlusII_227 obj-h0014-unpack s>
attr MultiPlusII_227 obj-h0015-expr $val / 10
attr MultiPlusII_227 obj-h0015-reading AC_Output_Voltage_L1
attr MultiPlusII_227 obj-h0015-unpack n
attr MultiPlusII_227 obj-h0016-expr $val / 10
attr MultiPlusII_227 obj-h0016-reading AC_Output_Voltage_L2
attr MultiPlusII_227 obj-h0016-unpack n
attr MultiPlusII_227 obj-h0017-expr $val / 10
attr MultiPlusII_227 obj-h0017-reading AC_Output_Voltage_L3
attr MultiPlusII_227 obj-h0017-unpack n
attr MultiPlusII_227 obj-h0018-expr $val / 10
attr MultiPlusII_227 obj-h0018-reading AC_Output_Current_L1
attr MultiPlusII_227 obj-h0018-unpack s>
attr MultiPlusII_227 obj-h0019-expr $val / 10
attr MultiPlusII_227 obj-h0019-reading AC_Output_Current_L2
attr MultiPlusII_227 obj-h0019-unpack s>
attr MultiPlusII_227 obj-h0020-expr $val / 10
attr MultiPlusII_227 obj-h0020-reading AC_Output_Current_L3
attr MultiPlusII_227 obj-h0020-unpack s>
attr MultiPlusII_227 obj-h0021-expr $val / 100
attr MultiPlusII_227 obj-h0021-reading AC_Output_Frequency
attr MultiPlusII_227 obj-h0021-unpack s>
attr MultiPlusII_227 obj-h0022-expr $val / 10
attr MultiPlusII_227 obj-h0022-reading Active_Input_current_Limit
attr MultiPlusII_227 obj-h0022-unpack s>
attr MultiPlusII_227 obj-h0023-expr $val * 10
attr MultiPlusII_227 obj-h0023-reading AC_Output_Power_L1
attr MultiPlusII_227 obj-h0023-unpack s>
attr MultiPlusII_227 obj-h0024-expr $val * 10
attr MultiPlusII_227 obj-h0024-reading AC_Output_Power_L2
attr MultiPlusII_227 obj-h0024-unpack s>
attr MultiPlusII_227 obj-h0025-expr $val * 10
attr MultiPlusII_227 obj-h0025-reading AC_Output_Power_L3
attr MultiPlusII_227 obj-h0025-unpack s>
attr MultiPlusII_227 obj-h0026-expr $val / 100
attr MultiPlusII_227 obj-h0026-reading Battery_Voltage
attr MultiPlusII_227 obj-h0026-unpack n
attr MultiPlusII_227 obj-h0027-expr $val / 10
attr MultiPlusII_227 obj-h0027-reading Battery_Current
attr MultiPlusII_227 obj-h0027-unpack s>
attr MultiPlusII_227 obj-h0028-reading Phase_Count
attr MultiPlusII_227 obj-h0028-unpack n
attr MultiPlusII_227 obj-h0029-map 0:AC Input 1,1:AC Input 2,240:Disconnected
attr MultiPlusII_227 obj-h0029-reading Active_Input
attr MultiPlusII_227 obj-h0029-unpack n
attr MultiPlusII_227 obj-h0030-expr $val / 10
attr MultiPlusII_227 obj-h0030-reading vebus_soc
attr MultiPlusII_227 obj-h0030-unpack n
attr MultiPlusII_227 obj-h0031-map 0:Off,1:Low Power,2:Fault,3:Bulk,4:Absorption,5:Float,6:Storage,7:Equalize,8:Passthru,9:Inverting,10:Power assist,11:Power supply,244:Sustain,252:External controL
attr MultiPlusII_227 obj-h0031-reading vebus_state
attr MultiPlusII_227 obj-h0031-unpack n
attr MultiPlusII_227 obj-h0032-map 0:No error,1:VE.Bus Error Device is switched off because one of the other phases in the system has switched off,2:VE.Bus Error New and old types MK2 are mixed in the system,3:VE.Bus Error Not all- or more than- the expected devices were found in the system,4:VE.Bus Error No other device whatsoever detected,5:VE.Bus Error Overvoltage on AC-out,6:VE.Bus Error  Error in DDC Program,7:VE.Bus BMS connected- which requires an Assistant- but no assistant found,10:VE.Bus Error System time synchronisation problem occurred,14:VE.Bus Error Device cannot transmit data,16:VE.Bus Error Dongle missing,17:VE.Bus Error One of the devices assumed master status because the original master failed,18:VE.Bus Error AC Overvoltage on the output of a slave has occurred while already switched off,22:VE.Bus Error This device cannot function as slave,24:VE.Bus Error Switch-over system protection initiated,25:VE.Bus Error 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 Internal error
attr MultiPlusII_227 obj-h0032-reading vebus_error
attr MultiPlusII_227 obj-h0032-unpack n
attr MultiPlusII_227 obj-h0033-map 1:Charger Only,2:Inverter Only,3:Charger and Inverter,4:Off
attr MultiPlusII_227 obj-h0033-reading Device_Status
attr MultiPlusII_227 obj-h0033-unpack n
attr MultiPlusII_227 obj-h0033-set 1
attr MultiPlusII_227 obj-h0034-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0034-reading temperature_alarm
attr MultiPlusII_227 obj-h0034-unpack n
attr MultiPlusII_227 obj-h0035-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0035-reading low_battery_alarm
attr MultiPlusII_227 obj-h0035-unpack n
attr MultiPlusII_227 obj-h0036-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0036-reading overload_alarm
attr MultiPlusII_227 obj-h0036-unpack n
attr MultiPlusII_227 obj-h0037-reading ESS_Power_setpoint_L1
attr MultiPlusII_227 obj-h0037-unpack s>
attr MultiPlusII_227 obj-h0038-map 0:Charge allowed,1:Charge disabled
attr MultiPlusII_227 obj-h0038-reading ESS_disable_charge_flag_phase
attr MultiPlusII_227 obj-h0038-unpack n
attr MultiPlusII_227 obj-h0039-map 0:Feed in allowed,1:Feed in disabled
attr MultiPlusII_227 obj-h0039-reading ESS_disable_feedback_flag_phase
attr MultiPlusII_227 obj-h0039-unpack n
attr MultiPlusII_227 obj-h0040-reading ESS_Power_setpoint_L2
attr MultiPlusII_227 obj-h0040-unpack s>
attr MultiPlusII_227 obj-h0041-reading ESS_Power_setpoint_L3
attr MultiPlusII_227 obj-h0041-unpack s>
attr MultiPlusII_227 obj-h0042-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0042-reading temperature_sensor_alarm
attr MultiPlusII_227 obj-h0042-unpack n
attr MultiPlusII_227 obj-h0043-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0043-reading voltage_sensor_alarm
attr MultiPlusII_227 obj-h0043-unpack n
attr MultiPlusII_227 obj-h0044-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0044-reading temperature_alarm_L1
attr MultiPlusII_227 obj-h0044-unpack n
attr MultiPlusII_227 obj-h0045-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0045-reading low_battery_alarm_L1
attr MultiPlusII_227 obj-h0045-unpack n
attr MultiPlusII_227 obj-h0046-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0046-reading overload_alarm_L1
attr MultiPlusII_227 obj-h0046-unpack n
attr MultiPlusII_227 obj-h0047-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0047-reading ripple_alarm_L1
attr MultiPlusII_227 obj-h0047-unpack n
attr MultiPlusII_227 obj-h0048-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0048-reading temperature_alarm_L2
attr MultiPlusII_227 obj-h0048-unpack n
attr MultiPlusII_227 obj-h0049-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0049-reading low_battery_alarm_L2
attr MultiPlusII_227 obj-h0049-unpack n
attr MultiPlusII_227 obj-h0050-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0050-reading overload_alarm_L2
attr MultiPlusII_227 obj-h0050-unpack n
attr MultiPlusII_227 obj-h0051-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0051-reading ripple_alarm_L2
attr MultiPlusII_227 obj-h0051-unpack n
attr MultiPlusII_227 obj-h0052-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0052-reading temperature_alarm_L3
attr MultiPlusII_227 obj-h0052-unpack n
attr MultiPlusII_227 obj-h0053-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0053-reading low_battery_alarm_L3
attr MultiPlusII_227 obj-h0053-unpack n
attr MultiPlusII_227 obj-h0054-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0054-reading overload_alarm_L3
attr MultiPlusII_227 obj-h0054-unpack n
attr MultiPlusII_227 obj-h0055-map 0:Ok,1:Warning,2:Alarm
attr MultiPlusII_227 obj-h0055-reading ripple_alarm_L3
attr MultiPlusII_227 obj-h0055-unpack n
attr MultiPlusII_227 obj-h0056-map 0:PV enabled,1:PV disabled
attr MultiPlusII_227 obj-h0056-reading disable_pv_inverter
attr MultiPlusII_227 obj-h0056-unpack n
attr MultiPlusII_227 obj-h0057-map 0:No,1:Yes
attr MultiPlusII_227 obj-h0057-reading bms_allow_charge
attr MultiPlusII_227 obj-h0057-unpack n
attr MultiPlusII_227 obj-h0058-map 0:No,1:Yes
attr MultiPlusII_227 obj-h0058-reading bms_allow_discharge
attr MultiPlusII_227 obj-h0058-unpack n
attr MultiPlusII_227 obj-h0059-map 0:No,1:Yes
attr MultiPlusII_227 obj-h0059-reading bms_expected
attr MultiPlusII_227 obj-h0059-unpack n
attr MultiPlusII_227 obj-h0060-map 0:No,1:Yes
attr MultiPlusII_227 obj-h0060-reading bms_error
attr MultiPlusII_227 obj-h0060-unpack n
attr MultiPlusII_227 obj-h0061-expr $val / 10
attr MultiPlusII_227 obj-h0061-reading temperature_battery
attr MultiPlusII_227 obj-h0061-unpack s>
attr MultiPlusII_227 obj-h0062-map 1:VE.Bus reset
attr MultiPlusII_227 obj-h0062-reading vebus_reset
attr MultiPlusII_227 obj-h0062-unpack n
attr MultiPlusII_227 obj-h0063-map 0:Ok,1:Warning
attr MultiPlusII_227 obj-h0063-reading phase_rotation_warning
attr MultiPlusII_227 obj-h0063-unpack n
attr MultiPlusII_227 obj-h0064-map 0:Ok,2:Alarm
attr MultiPlusII_227 obj-h0064-reading grid_lost_alarm
attr MultiPlusII_227 obj-h0064-unpack n
attr MultiPlusII_227 obj-h0065-map 0:Feed in overvoltage,1:Do not feed in overvoltage
attr MultiPlusII_227 obj-h0065-reading feed_dc_overvoltage_into_grid
attr MultiPlusII_227 obj-h0065-unpack n
attr MultiPlusII_227 obj-h0066-expr $val * 100
attr MultiPlusII_227 obj-h0066-reading maximum_overvoltage_feedin_power_L1
attr MultiPlusII_227 obj-h0066-unpack n
attr MultiPlusII_227 obj-h0067-expr $val * 100
attr MultiPlusII_227 obj-h0067-reading maximum_overvoltage_feedin_power_L2
attr MultiPlusII_227 obj-h0067-unpack n
attr MultiPlusII_227 obj-h0068-expr $val * 100
attr MultiPlusII_227 obj-h0068-reading maximum_overvoltage_feedin_power_L3
attr MultiPlusII_227 obj-h0068-unpack n
attr MultiPlusII_227 obj-h0069-map 0:AC input not ignored,1:AC input ignored
attr MultiPlusII_227 obj-h0069-reading ac_input_1_ignored
attr MultiPlusII_227 obj-h0069-unpack n
attr MultiPlusII_227 obj-h0070-map 0:AC input not ignored,1:AC input ignored
attr MultiPlusII_227 obj-h0070-reading ac_input_2_ignored
attr MultiPlusII_227 obj-h0070-unpack n
attr MultiPlusII_227 obj-h0071-map 0:AcPowerSetpoint interpreted normally, 1:AcPowerSetpoint is OvervoltageFeedIn limit
attr MultiPlusII_227 obj-h0071-reading ac_power_setpoint_acts_as_feedin_limit
attr MultiPlusII_227 obj-h0071-unpack n
attr MultiPlusII_227 obj-h0072-map 0:OvervoltageFeedIn uses 1V offset, 1:OvervoltageFeedIn uses 0.1V offset
attr MultiPlusII_227 obj-h0072-reading solar_offset_voltage
attr MultiPlusII_227 obj-h0072-unpack n
attr MultiPlusII_227 obj-h0073-map 0:Sustain inactive, 1:Sustain active
attr MultiPlusII_227 obj-h0073-reading sustain_active
attr MultiPlusII_227 obj-h0073-unpack n
attr MultiPlusII_227 obj-h0074-expr $val / 100
attr MultiPlusII_227 obj-h0074-len 2
attr MultiPlusII_227 obj-h0074-reading energy_from_acIn1_to_acOut
attr MultiPlusII_227 obj-h0074-unpack N
attr MultiPlusII_227 obj-h0076-expr $val / 100
attr MultiPlusII_227 obj-h0076-len 2
attr MultiPlusII_227 obj-h0076-reading energy_from_acIn1_to_battery
attr MultiPlusII_227 obj-h0076-unpack N
attr MultiPlusII_227 obj-h0078-expr $val / 100
attr MultiPlusII_227 obj-h0078-len 2
attr MultiPlusII_227 obj-h0078-reading energy_from_acIn2_to_acOut
attr MultiPlusII_227 obj-h0078-unpack N
attr MultiPlusII_227 obj-h0080-expr $val / 100
attr MultiPlusII_227 obj-h0080-len 2
attr MultiPlusII_227 obj-h0080-reading energy_from_acIn2_to_battery
attr MultiPlusII_227 obj-h0080-unpack N
attr MultiPlusII_227 obj-h0082-expr $val / 100
attr MultiPlusII_227 obj-h0082-len 2
attr MultiPlusII_227 obj-h0082-reading energy_from_acOut_to_acIn1
attr MultiPlusII_227 obj-h0082-unpack N
attr MultiPlusII_227 obj-h0084-expr $val / 100
attr MultiPlusII_227 obj-h0084-len 2
attr MultiPlusII_227 obj-h0084-reading energy_from_acOut_to_acIn2
attr MultiPlusII_227 obj-h0084-unpack f>
attr MultiPlusII_227 obj-h0086-expr $val / 100
attr MultiPlusII_227 obj-h0086-len 2
attr MultiPlusII_227 obj-h0086-reading energy_from_battery_to_AcIn1
attr MultiPlusII_227 obj-h0086-unpack f>
attr MultiPlusII_227 obj-h0088-expr $val / 100
attr MultiPlusII_227 obj-h0088-len 2
attr MultiPlusII_227 obj-h0088-reading energy_from_battery_to_AcIn2
attr MultiPlusII_227 obj-h0088-unpack N
attr MultiPlusII_227 obj-h0090-expr $val / 100
attr MultiPlusII_227 obj-h0090-len 2
attr MultiPlusII_227 obj-h0090-reading energy_from_battery_to_AcOut
attr MultiPlusII_227 obj-h0090-unpack f>
attr MultiPlusII_227 obj-h0092-expr $val / 100
attr MultiPlusII_227 obj-h0092-len 2
attr MultiPlusII_227 obj-h0092-reading energy_from_AcOut_to_battery
attr MultiPlusII_227 obj-h0092-unpack N
attr MultiPlusII_227 obj-h0094-map 0:OK,1:Warning
attr MultiPlusII_227 obj-h0094-reading low_cell_voltage_imminent
attr MultiPlusII_227 obj-h0094-unpack n
attr MultiPlusII_227 obj-h0095-map 0:Initialising,1:Bulk,2:Absorption,3:Float,4:Storage,5:Absorb repeat,6:Forced absorb,7:Equalise,8:Bulk stopped,9:Unknown
attr MultiPlusII_227 obj-h0095-reading charge_state
attr MultiPlusII_227 obj-h0095-unpack n
attr MultiPlusII_227 obj-h0096-reading ESS_Power_setpoint_L1
attr MultiPlusII_227 obj-h0096-unpack f>
attr MultiPlusII_227 obj-h0098-len 2
attr MultiPlusII_227 obj-h0098-reading ESS_Power_setpoint_L2
attr MultiPlusII_227 obj-h0098-unpack f>
attr MultiPlusII_227 obj-h0100-len 2
attr MultiPlusII_227 obj-h0100-reading ESS_Power_setpoint_L2
attr MultiPlusII_227 obj-h0100-unpack f>
attr MultiPlusII_227 obj-h0102-map 0:Renewable energy not preferred,1:Renewable energy preferred
attr MultiPlusII_227 obj-h0102-reading prefer_renewable_energy
attr MultiPlusII_227 obj-h0102-unpack n
attr MultiPlusII_227 obj-h0103-map 0:Generator not selected,1:Generator selected
attr MultiPlusII_227 obj-h0103-reading select_remote_generator
attr MultiPlusII_227 obj-h0103-unpack n
attr MultiPlusII_227 obj-h0104-map 0:Generator not selected,1:Generator selected
attr MultiPlusII_227 obj-h0104-reading remote_generator_selected
attr MultiPlusII_227 obj-h0104-unpack n
attr MultiPlusII_227 obj-h0105-map 0:No Action, 1:Redetect System
attr MultiPlusII_227 obj-h0105-reading redetect_vebus_system
attr MultiPlusII_227 obj-h0105-unpack n
attr MultiPlusII_227 obj-h0106-expr $val / 100
attr MultiPlusII_227 obj-h0106-reading powerAssist_boost_factor
attr MultiPlusII_227 obj-h0106-unpack n
attr MultiPlusII_227 obj-h0107-expr $val / 100
attr MultiPlusII_227 obj-h0107-reading configured_output_voltage
attr MultiPlusII_227 obj-h0107-unpack n
attr MultiPlusII_227 obj-h0108-map 0:disabled, 1:enabled
attr MultiPlusII_227 obj-h0108-reading powerAssist_enabled
attr MultiPlusII_227 obj-h0108-unpack n
attr MultiPlusII_227 obj-h0109-map 0:disabled, 1:enabled
attr MultiPlusII_227 obj-h0109-reading ups_function_enabled
attr MultiPlusII_227 obj-h0109-unpack n
attr MultiPlusII_227 room Solar->Victron

Cerbo GX mit Unit ID 100

defmod Cerbo_100 ModbusAttr 100 5 192.168.243.38:502 TCP
attr Cerbo_100 dev-h-defPoll 1
attr Cerbo_100 obj-h0800-len 6
attr Cerbo_100 obj-h0800-reading system_serial
attr Cerbo_100 obj-h0800-unpack Z12
attr Cerbo_100 obj-h0806-map 0:Open,1:Closed
attr Cerbo_100 obj-h0806-reading CCGX_relay_state_1
attr Cerbo_100 obj-h0806-unpack n
attr Cerbo_100 obj-h0807-map 0:Open,1:Closed
attr Cerbo_100 obj-h0807-reading CCGX_relay_state_2
attr Cerbo_100 obj-h0807-unpack n
attr Cerbo_100 obj-h0808-reading PV_AC_Coupled_output_L1
attr Cerbo_100 obj-h0808-unpack n
attr Cerbo_100 obj-h0809-reading PV_AC_Coupled_output_L2
attr Cerbo_100 obj-h0809-unpack n
attr Cerbo_100 obj-h0810-reading PV_AC_Coupled_output_L3
attr Cerbo_100 obj-h0810-unpack n
attr Cerbo_100 obj-h0811-reading PV_AC_Coupled_input_L1
attr Cerbo_100 obj-h0811-unpack n
attr Cerbo_100 obj-h0812-reading PV_AC_Coupled_input_L2
attr Cerbo_100 obj-h0812-unpack n
attr Cerbo_100 obj-h0813-reading PV_AC_Coupled_input_L3
attr Cerbo_100 obj-h0813-unpack n
attr Cerbo_100 obj-h0814-reading PV_AC_Coupled_generator_L1
attr Cerbo_100 obj-h0814-unpack n
attr Cerbo_100 obj-h0815-reading PV_AC_Coupled_generator_L2
attr Cerbo_100 obj-h0815-unpack n
attr Cerbo_100 obj-h0816-reading PV_AC_Coupled_generator_L3
attr Cerbo_100 obj-h0816-unpack n
attr Cerbo_100 obj-h0817-reading AC_consumption_L1
attr Cerbo_100 obj-h0817-unpack n
attr Cerbo_100 obj-h0818-reading AC_consumption_L2
attr Cerbo_100 obj-h0818-unpack n
attr Cerbo_100 obj-h0819-reading AC_consumption_L3
attr Cerbo_100 obj-h0819-unpack n
attr Cerbo_100 obj-h0820-reading grid_L1
attr Cerbo_100 obj-h0820-unpack s>
attr Cerbo_100 obj-h0821-reading grid_L2
attr Cerbo_100 obj-h0821-unpack s>
attr Cerbo_100 obj-h0822-reading grid_L3
attr Cerbo_100 obj-h0822-unpack s>
attr Cerbo_100 obj-h0823-reading genset_L1
attr Cerbo_100 obj-h0823-unpack s>
attr Cerbo_100 obj-h0824-reading genset_L2
attr Cerbo_100 obj-h0824-unpack s>
attr Cerbo_100 obj-h0825-reading genset_L3
attr Cerbo_100 obj-h0825-unpack s>
attr Cerbo_100 obj-h0826-map 0:Unknown,1:Grid,2:Generator,3:Shore power,240:Not connected
attr Cerbo_100 obj-h0826-reading active_input_source
attr Cerbo_100 obj-h0826-unpack s>
attr Cerbo_100 obj-h0830-len 4
attr Cerbo_100 obj-h0830-reading system_UTC_time
attr Cerbo_100 obj-h0830-unpack Q
attr Cerbo_100 obj-h0840-expr $val / 10
attr Cerbo_100 obj-h0840-reading battery_voltage_system
attr Cerbo_100 obj-h0840-unpack n
attr Cerbo_100 obj-h0841-expr $val / 10
attr Cerbo_100 obj-h0841-reading battery_current_system
attr Cerbo_100 obj-h0841-unpack s>
attr Cerbo_100 obj-h0842-reading battery_power_system
attr Cerbo_100 obj-h0842-unpack s>
attr Cerbo_100 obj-h0843-reading battery_soc_system
attr Cerbo_100 obj-h0843-unpack n
attr Cerbo_100 obj-h0844-map 0:idle,1:charging,2:discharging
attr Cerbo_100 obj-h0844-reading battery_state_system
attr Cerbo_100 obj-h0844-unpack n
attr Cerbo_100 obj-h0845-expr $val /-10
attr Cerbo_100 obj-h0845-reading battery_consumed_amphours_system
attr Cerbo_100 obj-h0845-unpack n
attr Cerbo_100 obj-h0846-expr $val * 100
attr Cerbo_100 obj-h0846-reading battery_timetogo_system
attr Cerbo_100 obj-h0846-unpack n
attr Cerbo_100 obj-h0850-reading PV_DC_Coupled_power
attr Cerbo_100 obj-h0850-unpack n
attr Cerbo_100 obj-h0851-expr $val /10
attr Cerbo_100 obj-h0851-reading PV_DC_Coupled_current
attr Cerbo_100 obj-h0851-unpack s>
attr Cerbo_100 obj-h0855-reading charger_power
attr Cerbo_100 obj-h0855-unpack n
attr Cerbo_100 obj-h0860-reading dc_system_power
attr Cerbo_100 obj-h0860-unpack s>
attr Cerbo_100 obj-h0865-expr $val /10
attr Cerbo_100 obj-h0865-reading vebus_charge_current_system
attr Cerbo_100 obj-h0865-unpack s>
attr Cerbo_100 obj-h0866-reading vebus_charge_power_system
attr Cerbo_100 obj-h0866-unpack s>
attr Cerbo_100 obj-h0867-reading RESERVED
attr Cerbo_100 obj-h0867-unpack n
attr Cerbo_100 obj-h0868-expr $val /10
attr Cerbo_100 obj-h0868-reading inverter_charger_current
attr Cerbo_100 obj-h0868-unpack f>
attr Cerbo_100 obj-h0870-len 2
attr Cerbo_100 obj-h0870-reading inverter_charger_power
attr Cerbo_100 obj-h0870-unpack f>
attr Cerbo_100 obj-h0872-len 2
attr Cerbo_100 obj-h0872-reading power_between_meter_and_charger_L1
attr Cerbo_100 obj-h0872-unpack f>
attr Cerbo_100 obj-h0874-len 2
attr Cerbo_100 obj-h0874-reading power_between_meter_and_charger_L2
attr Cerbo_100 obj-h0874-unpack f>
attr Cerbo_100 obj-h0876-len 2
attr Cerbo_100 obj-h0876-reading power_between_meter_and_charger_L3
attr Cerbo_100 obj-h0876-unpack f>
attr Cerbo_100 obj-h0878-len 2
attr Cerbo_100 obj-h0878-reading power_output_inverter_charger_L1
attr Cerbo_100 obj-h0878-unpack f>
attr Cerbo_100 obj-h0880-len 2
attr Cerbo_100 obj-h0880-reading power_output_inverter_charger_L2
attr Cerbo_100 obj-h0880-unpack f>
attr Cerbo_100 obj-h0882-len 2
attr Cerbo_100 obj-h0882-reading power_output_inverter_charger_L3
attr Cerbo_100 obj-h0882-unpack f>
attr Cerbo_100 room Solar->Victron


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