@@ -50,6 +50,7 @@ def update(self) -> None:
5050
5151 def set_power_limit (self , power_limit : Optional [int ]) -> None :
5252 modbus_id = self .component_config .configuration .modbus_id
53+ vebus_id = self .component_config .configuration .vebus_id
5354
5455 # Wenn Victron Dynamic ESS aktiv, erfolgt keine weitere Regelung in openWB
5556 dynamic_ess_mode = self .__tcp_client .read_holding_registers (5400 , ModbusDataType .UINT_16 , unit = modbus_id )
@@ -61,26 +62,27 @@ def set_power_limit(self, power_limit: Optional[int]) -> None:
6162 log .debug ("Keine Batteriesteuerung, Selbstregelung durch Wechselrichter" )
6263 if self .last_mode is not None :
6364 # ESS Mode 1 für Selbstregelung mit Phasenkompensation setzen
64- self .__tcp_client .write_registers (39 , [0 ], data_type = ModbusDataType .UINT_16 , unit = 228 )
6565 self .__tcp_client .write_registers (2902 , [1 ], data_type = ModbusDataType .UINT_16 , unit = modbus_id )
66+ self .__tcp_client .write_registers (39 , [0 ], data_type = ModbusDataType .UINT_16 , unit = vebus_id )
6667 self .last_mode = None
6768 elif power_limit == 0 :
6869 log .debug ("Aktive Batteriesteuerung. Batterie wird auf Stop gesetzt und nicht entladen" )
6970 if self .last_mode != 'stop' :
7071 # ESS Mode 3 für externe Steuerung und keine Entladung
7172 self .__tcp_client .write_registers (2902 , [3 ], data_type = ModbusDataType .UINT_16 , unit = modbus_id )
72- self .__tcp_client .write_registers (39 , [1 ], data_type = ModbusDataType .UINT_16 , unit = 228 )
73+ self .__tcp_client .write_registers (39 , [1 ], data_type = ModbusDataType .UINT_16 , unit = vebus_id )
7374 self .last_mode = 'stop'
7475 elif power_limit < 0 :
7576 if self .last_mode != 'discharge' :
7677 # ESS Mode 3 für externe Steuerung und auf L1 wird entladen
7778 self .__tcp_client .write_registers (2902 , [3 ], data_type = ModbusDataType .UINT_16 , unit = modbus_id )
78- self .__tcp_client .write_registers (39 , [0 ], data_type = ModbusDataType .UINT_16 , unit = 228 )
79+ self .__tcp_client .write_registers (39 , [0 ], data_type = ModbusDataType .UINT_16 , unit = vebus_id )
7980 self .last_mode = 'discharge'
8081 # Die maximale Entladeleistung begrenzen auf 5000W
8182 power_value = int (min (power_limit , 5000 ))
8283 log .debug (f"Aktive Batteriesteuerung. Batterie wird mit { power_value } W entladen" )
83- self .__tcp_client .write_registers (37 , [power_value & 0xFFFF ], data_type = ModbusDataType .INT_16 , unit = 228 )
84+ self .__tcp_client .write_registers (
85+ 37 , [power_value & 0xFFFF ], data_type = ModbusDataType .INT_16 , unit = vebus_id )
8486
8587 def power_limit_controllable (self ) -> bool :
8688 return True
0 commit comments