Skip to content

Commit 5fb1327

Browse files
authored
fix delayed pro soc and manual soc = 0% (openWB#2619)
1 parent a01c543 commit 5fb1327

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

packages/modules/common/configurable_vehicle.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,11 @@ def update(self, vehicle_update_data: VehicleUpdateData):
8787
Pub().pub(f"openWB/set/vehicle/{self.vehicle}/soc_module/calculated_soc_state",
8888
asdict(self.calculated_soc_state))
8989
if (vehicle_update_data.soc_timestamp is None or
90-
vehicle_update_data.soc_timestamp <= car_state.soc_timestamp):
90+
vehicle_update_data.soc_timestamp <= car_state.soc_timestamp + 60):
9191
# Nur wenn der SoC neuer ist als der bisherige, diesen setzen.
92+
# Manche Fahrzeuge liefern in Ladepausen zwar einen SoC, aber manchmal einen alten.
93+
# Die Pro liefert manchmal den SoC nicht, bis nach dem Anstecken das SoC-Update getriggert wird.
94+
# Wenn Sie dann doch noch den alten SoC liefert, darf dieser nicht verworfen werden.
9295
self.store.set(car_state)
9396
elif vehicle_update_data.soc_timestamp > 1e10:
9497
# car_state ist in ms geschrieben, dieser kann überschrieben werden
@@ -100,7 +103,7 @@ def _get_carstate_source(self, vehicle_update_data: VehicleUpdateData) -> SocSou
100103
# Kein SoC vom LP vorhanden oder erwünscht
101104
if (vehicle_update_data.soc_from_cp is None or self.general_config.use_soc_from_cp is False or
102105
# oder aktueller manueller SoC vorhanden (ausgelesenen SoC während der Ladung korrigieren)
103-
self.calculated_soc_state.manual_soc):
106+
self.calculated_soc_state.manual_soc is not None):
104107
if isinstance(self.vehicle_config, ManualSoc):
105108
# Wenn ein manueller SoC gesetzt wurde, diesen als neuen Start merken.
106109
if self.calculated_soc_state.manual_soc is not None or self.calculated_soc_state.imported_start is None:

0 commit comments

Comments
 (0)