diff --git a/etc/dbus-serialbattery/battery.py b/etc/dbus-serialbattery/battery.py index f93d8a56..9a7ab60d 100644 --- a/etc/dbus-serialbattery/battery.py +++ b/etc/dbus-serialbattery/battery.py @@ -404,6 +404,7 @@ def manage_charge_voltage_linear(self) -> None: # to make it restart persistent self.bulk_last_reached = current_time if self.control_voltage: + # check if battery changed from bulk/absoprtion to float if not self.charge_mode.startswith("Float"): self.transition_start_time = current_time self.initial_control_voltage = self.control_voltage @@ -550,6 +551,10 @@ def manage_charge_voltage_step(self) -> None: ) else: + # check if battery changed from bulk/absoprtion to float + if not self.charge_mode.startswith("Float"): + # Assume battery SOC ist 100% at this stage + self.trigger_soc_reset() self.control_voltage = utils.FLOAT_CELL_VOLTAGE * self.cell_count self.charge_mode = "Float" # reset bulk when going into float