Fix wrong ble device being logged (#83091)

This code can be simplified a bit now that we
have the fast bleak lookup. We do connect
via the correct path, but we logged the wrong one
This commit is contained in:
J. Nick Koston 2022-12-01 21:08:35 -10:00 committed by GitHub
parent 3e71436267
commit 56c0eacb08
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -162,7 +162,6 @@ class HaBleakClientWrapper(BleakClient):
self.__address = address_or_ble_device self.__address = address_or_ble_device
self.__disconnected_callback = disconnected_callback self.__disconnected_callback = disconnected_callback
self.__timeout = timeout self.__timeout = timeout
self.__ble_device: BLEDevice | None = None
self._backend: BaseBleakClient | None = None # type: ignore[assignment] self._backend: BaseBleakClient | None = None # type: ignore[assignment]
@property @property
@ -183,12 +182,9 @@ class HaBleakClientWrapper(BleakClient):
async def connect(self, **kwargs: Any) -> bool: async def connect(self, **kwargs: Any) -> bool:
"""Connect to the specified GATT server.""" """Connect to the specified GATT server."""
assert models.MANAGER is not None assert models.MANAGER is not None
( wrapped_backend = self._async_get_best_available_backend_and_device()
wrapped_backend,
self.__ble_device,
) = self._async_get_best_available_backend_and_device()
self._backend = wrapped_backend.client( self._backend = wrapped_backend.client(
self.__ble_device, wrapped_backend.device,
disconnected_callback=self.__disconnected_callback, disconnected_callback=self.__disconnected_callback,
timeout=self.__timeout, timeout=self.__timeout,
hass=models.MANAGER.hass, hass=models.MANAGER.hass,
@ -218,7 +214,7 @@ class HaBleakClientWrapper(BleakClient):
@hass_callback @hass_callback
def _async_get_best_available_backend_and_device( def _async_get_best_available_backend_and_device(
self, self,
) -> tuple[_HaWrappedBleakBackend, BLEDevice]: ) -> _HaWrappedBleakBackend:
"""Get a best available backend and device for the given address. """Get a best available backend and device for the given address.
This method will return the backend with the best rssi This method will return the backend with the best rssi
@ -235,9 +231,10 @@ class HaBleakClientWrapper(BleakClient):
or NO_RSSI_VALUE, or NO_RSSI_VALUE,
reverse=True, reverse=True,
): ):
ble_device = device_advertisement_data[0] if backend := self._async_get_backend_for_ble_device(
if backend := self._async_get_backend_for_ble_device(ble_device): device_advertisement_data[0]
return backend, ble_device ):
return backend
raise BleakError( raise BleakError(
f"No backend with an available connection slot that can reach address {address} was found" f"No backend with an available connection slot that can reach address {address} was found"