diff --git a/homeassistant/components/bluetooth/active_update_coordinator.py b/homeassistant/components/bluetooth/active_update_coordinator.py index 6d4e67119d5..5fa05b87cc8 100644 --- a/homeassistant/components/bluetooth/active_update_coordinator.py +++ b/homeassistant/components/bluetooth/active_update_coordinator.py @@ -169,3 +169,9 @@ class ActiveBluetoothDataUpdateCoordinator( # possible after a device comes online or back in range, if a poll is due if self.needs_poll(service_info): self.hass.async_create_task(self._debounced_poll.async_call()) + + @callback + def _async_stop(self) -> None: + """Cancel debouncer and stop the callbacks.""" + self._debounced_poll.async_cancel() + super()._async_stop() diff --git a/homeassistant/components/bluetooth/active_update_processor.py b/homeassistant/components/bluetooth/active_update_processor.py index b450c612250..8e38191c820 100644 --- a/homeassistant/components/bluetooth/active_update_processor.py +++ b/homeassistant/components/bluetooth/active_update_processor.py @@ -158,3 +158,9 @@ class ActiveBluetoothProcessorCoordinator( # possible after a device comes online or back in range, if a poll is due if self.needs_poll(service_info): self.hass.async_create_task(self._debounced_poll.async_call()) + + @callback + def _async_stop(self) -> None: + """Cancel debouncer and stop the callbacks.""" + self._debounced_poll.async_cancel() + super()._async_stop()