From 1b9a181a82cb7fd3f8da9dd1fa2ab26858b88da5 Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Wed, 30 Jul 2025 14:49:13 +0200 Subject: [PATCH] fix delayed pro soc and manual soc = 0% --- packages/modules/common/configurable_vehicle.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/modules/common/configurable_vehicle.py b/packages/modules/common/configurable_vehicle.py index 00024e1579..f829b7e40f 100644 --- a/packages/modules/common/configurable_vehicle.py +++ b/packages/modules/common/configurable_vehicle.py @@ -87,8 +87,11 @@ def update(self, vehicle_update_data: VehicleUpdateData): Pub().pub(f"openWB/set/vehicle/{self.vehicle}/soc_module/calculated_soc_state", asdict(self.calculated_soc_state)) if (vehicle_update_data.soc_timestamp is None or - vehicle_update_data.soc_timestamp <= car_state.soc_timestamp): + vehicle_update_data.soc_timestamp <= car_state.soc_timestamp + 60): # Nur wenn der SoC neuer ist als der bisherige, diesen setzen. + # Manche Fahrzeuge liefern in Ladepausen zwar einen SoC, aber manchmal einen alten. + # Die Pro liefert manchmal den SoC nicht, bis nach dem Anstecken das SoC-Update getriggert wird. + # Wenn Sie dann doch noch den alten SoC liefert, darf dieser nicht verworfen werden. self.store.set(car_state) elif vehicle_update_data.soc_timestamp > 1e10: # car_state ist in ms geschrieben, dieser kann überschrieben werden @@ -100,7 +103,7 @@ def _get_carstate_source(self, vehicle_update_data: VehicleUpdateData) -> SocSou # Kein SoC vom LP vorhanden oder erwünscht if (vehicle_update_data.soc_from_cp is None or self.general_config.use_soc_from_cp is False or # oder aktueller manueller SoC vorhanden (ausgelesenen SoC während der Ladung korrigieren) - self.calculated_soc_state.manual_soc): + self.calculated_soc_state.manual_soc is not None): if isinstance(self.vehicle_config, ManualSoc): # Wenn ein manueller SoC gesetzt wurde, diesen als neuen Start merken. if self.calculated_soc_state.manual_soc is not None or self.calculated_soc_state.imported_start is None: