Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions packages/modules/devices/solaredge/solaredge/bat.py
Original file line number Diff line number Diff line change
Expand Up @@ -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}")
Expand Down Expand Up @@ -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,
Expand All @@ -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.
Expand All @@ -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,
Expand Down