From 6c8e967c13fa5f5936a434e4a8f9d4d7743266e9 Mon Sep 17 00:00:00 2001 From: cr0i Date: Tue, 24 Feb 2026 23:23:38 +0100 Subject: [PATCH] Update bat.py --- packages/modules/devices/solaredge/solaredge/bat.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/modules/devices/solaredge/solaredge/bat.py b/packages/modules/devices/solaredge/solaredge/bat.py index 5561bc98ce..517aaaded3 100644 --- a/packages/modules/devices/solaredge/solaredge/bat.py +++ b/packages/modules/devices/solaredge/solaredge/bat.py @@ -157,6 +157,8 @@ def set_power_limit(self, power_limit: Optional[int]) -> None: log.error(f"Failed to read registers: {e}") self.fault_state.error(f"Modbus read error: {e}") return + if values["StorageControlMode"] != CONTROL_MODE_REMOTE: # Save StorageControlMode if not Remote + self.StorageControlMode_Read = values["StorageControlMode"] soc = values[f"Battery{battery_index}StateOfEnergy"] if soc == FLOAT32_UNSUPPORTED or not 0 <= soc <= 100: log.warning(f"Speicher{battery_index}: Invalid SoC: {soc}") @@ -189,11 +191,10 @@ def set_power_limit(self, power_limit: Optional[int]) -> None: self._write_registers(values_to_write, unit) self.last_mode = 'discharge-mode' - else: # Remote Control not active. + else: # Remote Control Discharge Mode not active. if soc_reserve < soc: # Enable Remote Control if SoC above SoC-Reserve. log.debug(f"Discharge-Limit aktivieren, Speicher{battery_index}: {int(abs(power_limit))}W.") - self.StorageControlMode_Read = values["StorageControlMode"] values_to_write = { "StorageControlMode": CONTROL_MODE_REMOTE, "RemoteControlCommandModeDefault": REMOTE_CONTROL_COMMAND_MODE_MSC, @@ -215,7 +216,8 @@ def set_power_limit(self, power_limit: Optional[int]) -> None: log.error(f"Failed to read registers: {e}") self.fault_state.error(f"Modbus read error: {e}") return - + if values["StorageControlMode"] != CONTROL_MODE_REMOTE: # Save StorageControlMode if not Remote + self.StorageControlMode_Read = values["StorageControlMode"] if (values["StorageControlMode"] == CONTROL_MODE_REMOTE and values["RemoteControlCommandMode"] == REMOTE_CONTROL_COMMAND_MODE_CHARGE): # Remote Control Charge Mode active. @@ -229,7 +231,6 @@ def set_power_limit(self, power_limit: Optional[int]) -> None: else: # Remote Control Charge Mode inactive. log.debug(f"Aktivierung Laden Speicher{battery_index}: {int(abs(power_limit))}W.") - self.StorageControlMode_Read = values["StorageControlMode"] values_to_write = { "StorageControlMode": CONTROL_MODE_REMOTE, "RemoteControlCommandModeDefault": REMOTE_CONTROL_COMMAND_MODE_CHARGE,