diff --git a/packages/modules/devices/kostal/kostal_plenticore/bat.py b/packages/modules/devices/kostal/kostal_plenticore/bat.py index 4c10ce66cc..0e93d3180c 100644 --- a/packages/modules/devices/kostal/kostal_plenticore/bat.py +++ b/packages/modules/devices/kostal/kostal_plenticore/bat.py @@ -47,11 +47,15 @@ def update(self) -> None: if power < 0: power = self.client.read_holding_registers( 106, ModbusDataType.FLOAT_32, unit=self.modbus_id, wordorder=self.endianess) * -1 + bat_current = self.client.read_holding_registers(200, ModbusDataType.FLOAT_32, + unit=self.modbus_id, wordorder=self.endianess) * -1 + currents = [bat_current / 3] * 3 self.peak_filter.check_values(power) imported, exported = self.sim_counter.sim_count(power) bat_state = BatState( power=power, + currents=currents, soc=soc, imported=imported, exported=exported @@ -75,16 +79,12 @@ def set_power_limit(self, power_limit: Optional[int]) -> None: self.client.write_register(1034, 0.0, data_type=ModbusDataType.FLOAT_32, wordorder=self.endianess, unit=unit) elif power_limit < 0: - log.debug(f"Aktive Batteriesteuerung. Batterie wird mit {power_limit} W entladen für den Hausverbrauch") - # Die maximale Entladeleistung begrenzen auf 7000W - power_value = float(min(abs(power_limit), 7000)) + power_value = float(abs(power_limit)) log.debug(f"Aktive Batteriesteuerung. Batterie wird mit {power_value} W entladen für den Hausverbrauch") self.client.write_register(1034, power_value, data_type=ModbusDataType.FLOAT_32, wordorder=self.endianess, unit=unit) elif power_limit > 0: - log.debug(f"Aktive Batteriesteuerung. Batterie wird mit {power_limit} W geladen") - # Die maximale Ladeleistung begrenzen auf 7000W - power_value = float(min(abs(power_limit), 7000)) * -1 + power_value = float(abs(power_limit)) * -1 log.debug(f"Aktive Batteriesteuerung. Batterie wird mit {power_value} W geladen") self.client.write_register(1034, power_value, data_type=ModbusDataType.FLOAT_32, wordorder=self.endianess, unit=unit) diff --git a/packages/modules/devices/kostal/kostal_plenticore/inverter.py b/packages/modules/devices/kostal/kostal_plenticore/inverter.py index 8712ba8ba2..60561aaf61 100644 --- a/packages/modules/devices/kostal/kostal_plenticore/inverter.py +++ b/packages/modules/devices/kostal/kostal_plenticore/inverter.py @@ -43,6 +43,8 @@ def initialize(self) -> None: def update(self) -> None: power = self.client.read_holding_registers( 575, ModbusDataType.INT_16, unit=self.modbus_id, wordorder=self.endianess) * -1 + currents = [self.client.read_holding_registers( + reg, ModbusDataType.FLOAT_32, unit=self.modbus_id, wordorder=self.endianess) for reg in [154, 160, 166]] exported = self.client.read_holding_registers( 320, ModbusDataType.FLOAT_32, unit=self.modbus_id, wordorder=self.endianess) # Try to read dc_power, if it fails just skip it and set to None @@ -58,6 +60,7 @@ def update(self) -> None: imported, _ = self.sim_counter.sim_count(power) inverter_state = InverterState( power=power, + currents=currents, exported=exported, dc_power=dc_power, imported=imported