@@ -107,7 +107,6 @@ def __init__(
107107 binascii .crc32 (password .encode ("ascii" )) & 0xFFFFFFFF
108108 )
109109 self ._client : BleakClientWithServiceCache | None = None
110- self ._cached_services : BleakGATTServiceCollection | None = None
111110 self ._read_char : BleakGATTCharacteristic | None = None
112111 self ._write_char : BleakGATTCharacteristic | None = None
113112 self ._disconnect_timer : asyncio .TimerHandle | None = None
@@ -229,15 +228,14 @@ async def _ensure_connected(self):
229228 self ._device ,
230229 self .name ,
231230 self ._disconnected ,
232- cached_services = self . _cached_services ,
231+ use_services_cache = True ,
233232 ble_device_callback = lambda : self ._device ,
234233 )
235234 _LOGGER .debug ("%s: Connected; RSSI: %s" , self .name , self .rssi )
236235 resolved = self ._resolve_characteristics (client .services )
237236 if not resolved :
238237 # Try to handle services failing to load
239238 resolved = self ._resolve_characteristics (await client .get_services ())
240- self ._cached_services = client .services if resolved else None
241239 self ._client = client
242240 self ._reset_disconnect_timer ()
243241
@@ -399,8 +397,6 @@ def update_from_advertisement(self, advertisement: SwitchBotAdvertisement) -> No
399397 """Update device data from advertisement."""
400398 # Only accept advertisements if the data is not missing
401399 # if we already have an advertisement with data
402- if self ._device and ble_device_has_changed (self ._device , advertisement .device ):
403- self ._cached_services = None
404400 self ._device = advertisement .device
405401
406402 async def get_device_data (
0 commit comments