mirror of
https://github.com/home-assistant/core.git
synced 2025-07-25 06:07:17 +00:00
Try to switch to a different esphome BLE proxy if we run out of slots while connecting (#81268)
This commit is contained in:
parent
5ba3b499fe
commit
8416cc1906
@ -264,6 +264,7 @@ 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
|
||||||
@ -283,14 +284,21 @@ 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."""
|
||||||
if not self._backend:
|
if (
|
||||||
|
not self._backend
|
||||||
|
or not self.__ble_device
|
||||||
|
or not self._async_get_backend_for_ble_device(self.__ble_device)
|
||||||
|
):
|
||||||
assert MANAGER is not None
|
assert MANAGER is not None
|
||||||
wrapped_backend = (
|
wrapped_backend = (
|
||||||
self._async_get_backend() or self._async_get_fallback_backend()
|
self._async_get_backend() or self._async_get_fallback_backend()
|
||||||
)
|
)
|
||||||
self._backend = wrapped_backend.client(
|
self.__ble_device = (
|
||||||
await freshen_ble_device(wrapped_backend.device)
|
await freshen_ble_device(wrapped_backend.device)
|
||||||
or wrapped_backend.device,
|
or wrapped_backend.device
|
||||||
|
)
|
||||||
|
self._backend = wrapped_backend.client(
|
||||||
|
self.__ble_device,
|
||||||
disconnected_callback=self.__disconnected_callback,
|
disconnected_callback=self.__disconnected_callback,
|
||||||
timeout=self.__timeout,
|
timeout=self.__timeout,
|
||||||
hass=MANAGER.hass,
|
hass=MANAGER.hass,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user