diff --git a/apps/predbat/inverter.py b/apps/predbat/inverter.py index 604ab2317..245b0f0cf 100644 --- a/apps/predbat/inverter.py +++ b/apps/predbat/inverter.py @@ -3446,7 +3446,7 @@ def adjust_export_immediate(self, target_soc, freeze=False): service_data_stop = {"device_id": self.base.get_arg("device_id", index=self.id, default="")} extra_data = {"discharge_start_time": self.base.get_arg("discharge_start_time", index=self.id, default="00:00:00"), "discharge_end_time": self.base.get_arg("discharge_end_time", index=self.id, default="00:00:00")} - if target_soc < 100: + if target_soc < 100 or freeze: # Mirrors adjust_charge_immediate()'s charge_start_service payload just above - the # actual (possibly low-power-scaled) rate already set via adjust_discharge_rate(), not # always the inverter's maximum, which produced a full-power discharge_start_service diff --git a/apps/predbat/tests/test_inverter.py b/apps/predbat/tests/test_inverter.py index f48af8975..8772b8dd8 100644 --- a/apps/predbat/tests/test_inverter.py +++ b/apps/predbat/tests/test_inverter.py @@ -5833,6 +5833,7 @@ def run_inverter_tests(my_predbat_dummy): # deduplicated as a repeat - confirming the fallback isn't re-issued every cycle. failed |= test_call_adjust_charge_immediate("charge_immediate_freeze_no_service", my_predbat, ha, inv, dummy_items, 50, freeze=True, no_freeze=True, clear=True, stop_discharge=True) failed |= test_call_adjust_charge_immediate("charge_immediate_freeze_no_service_repeat", my_predbat, ha, inv, dummy_items, 75, freeze=True, no_freeze=True, repeat=True) + failed |= test_call_adjust_export_immediate("export_immediate_freeze_at_100_soc", my_predbat, ha, inv, dummy_items, 100, freeze=True, clear=True) failed |= test_call_adjust_export_immediate("export_immediate_freeze_no_service", my_predbat, ha, inv, dummy_items, 50, freeze=True, no_freeze=True, clear=True) failed |= test_call_adjust_export_immediate("export_immediate_freeze_no_service_repeat", my_predbat, ha, inv, dummy_items, 30, freeze=True, no_freeze=True, repeat=True) if failed: