Skip to content

Commit

Permalink
Remove BLE connection state unsubscribe workaround from ESPHome (#104674
Browse files Browse the repository at this point in the history
)

aioesphomeapi now has explict coverage to ensure calling
the unsubscribe function after the connection drops is safe
and will not raise anymore
  • Loading branch information
bdraco committed Nov 28, 2023
1 parent bdef0ba commit de3b608
Showing 1 changed file with 3 additions and 18 deletions.
21 changes: 3 additions & 18 deletions homeassistant/components/esphome/bluetooth/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,23 +171,6 @@ def __str__(self) -> str:
"""Return the string representation of the client."""
return f"ESPHomeClient ({self._description})"

def _unsubscribe_connection_state(self) -> None:
"""Unsubscribe from connection state updates."""
if not self._cancel_connection_state:
return
try:
self._cancel_connection_state()
except (AssertionError, ValueError) as ex:
_LOGGER.debug(
(
"%s: Failed to unsubscribe from connection state (likely"
" connection dropped): %s"
),
self._description,
ex,
)
self._cancel_connection_state = None

def _async_disconnected_cleanup(self) -> None:
"""Clean up on disconnect."""
self.services = BleakGATTServiceCollection() # type: ignore[no-untyped-call]
Expand All @@ -196,7 +179,9 @@ def _async_disconnected_cleanup(self) -> None:
notify_abort()
self._notify_cancels.clear()
self._disconnect_callbacks.discard(self._async_esp_disconnected)
self._unsubscribe_connection_state()
if self._cancel_connection_state:
self._cancel_connection_state()
self._cancel_connection_state = None

def _async_ble_device_disconnected(self) -> None:
"""Handle the BLE device disconnecting from the ESP."""
Expand Down

0 comments on commit de3b608

Please sign in to comment.