From 628236209b850ce848cf627af80eb846c074a19f Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Thu, 4 May 2023 19:10:44 +0200 Subject: [PATCH] Fix lingering timer in cloud (#92498) --- homeassistant/components/cloud/client.py | 6 ++++-- homeassistant/components/google_assistant/report_state.py | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/cloud/client.py b/homeassistant/components/cloud/client.py index 89fca4a5ea0..f3878fd68af 100644 --- a/homeassistant/components/cloud/client.py +++ b/homeassistant/components/cloud/client.py @@ -16,7 +16,7 @@ from homeassistant.components.alexa import ( smart_home as alexa_smart_home, ) from homeassistant.components.google_assistant import smart_home as ga -from homeassistant.core import Context, HomeAssistant, callback +from homeassistant.core import Context, HassJob, HomeAssistant, callback from homeassistant.helpers.dispatcher import async_dispatcher_send from homeassistant.helpers.event import async_call_later from homeassistant.util.aiohttp import MockRequest, serialize_response @@ -150,10 +150,12 @@ class CloudClient(Interface): ), err, ) - async_call_later(self._hass, 30, enable_alexa) + async_call_later(self._hass, 30, enable_alexa_job) except (alexa_errors.NoTokenAvailable, alexa_errors.RequireRelink): pass + enable_alexa_job = HassJob(enable_alexa, cancel_on_shutdown=True) + async def enable_google(_): """Enable Google.""" gconf = await self.get_google_config() diff --git a/homeassistant/components/google_assistant/report_state.py b/homeassistant/components/google_assistant/report_state.py index 737b54c8b1e..109ea61dbab 100644 --- a/homeassistant/components/google_assistant/report_state.py +++ b/homeassistant/components/google_assistant/report_state.py @@ -139,7 +139,9 @@ def async_enable_report_state(hass: HomeAssistant, google_config: AbstractConfig unsub = async_track_state_change(hass, MATCH_ALL, async_entity_state_listener) - unsub = async_call_later(hass, INITIAL_REPORT_DELAY, initial_report) + unsub = async_call_later( + hass, INITIAL_REPORT_DELAY, HassJob(initial_report, cancel_on_shutdown=True) + ) @callback def unsub_all():