@@ -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