From e39f0320dfebff6525197e8a922acd381f0d5bbf Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Fri, 14 Apr 2023 06:37:22 +0200 Subject: [PATCH] Fix lingering timers in analytics (#91363) --- homeassistant/components/analytics/__init__.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/analytics/__init__.py b/homeassistant/components/analytics/__init__.py index 2542ed5177e..c02c1a3a3b6 100644 --- a/homeassistant/components/analytics/__init__.py +++ b/homeassistant/components/analytics/__init__.py @@ -5,7 +5,7 @@ import voluptuous as vol from homeassistant.components import websocket_api from homeassistant.const import EVENT_HOMEASSISTANT_STARTED -from homeassistant.core import Event, HomeAssistant, callback +from homeassistant.core import Event, HassJob, HomeAssistant, callback from homeassistant.helpers.event import async_call_later, async_track_time_interval from homeassistant.helpers.typing import ConfigType @@ -24,11 +24,23 @@ async def async_setup(hass: HomeAssistant, _: ConfigType) -> bool: def start_schedule(_event: Event) -> None: """Start the send schedule after the started event.""" # Wait 15 min after started - async_call_later(hass, 900, analytics.send_analytics) + async_call_later( + hass, + 900, + HassJob( + analytics.send_analytics, + name="analytics schedule", + cancel_on_shutdown=True, + ), + ) # Send every day async_track_time_interval( - hass, analytics.send_analytics, INTERVAL, name="analytics daily" + hass, + analytics.send_analytics, + INTERVAL, + name="analytics daily", + cancel_on_shutdown=True, ) hass.bus.async_listen_once(EVENT_HOMEASSISTANT_STARTED, start_schedule)