diff --git a/homeassistant/components/wemo/__init__.py b/homeassistant/components/wemo/__init__.py index 3f7cbe4cf45cad8c856dd41aa977658281b3f78d..2f4d4c84c5c489a5ea75f36c6ff4dce6d92b2144 100644 --- a/homeassistant/components/wemo/__init__.py +++ b/homeassistant/components/wemo/__init__.py @@ -12,7 +12,7 @@ import voluptuous as vol from homeassistant import config_entries from homeassistant.config_entries import ConfigEntry from homeassistant.const import CONF_DISCOVERY, EVENT_HOMEASSISTANT_STOP, Platform -from homeassistant.core import CALLBACK_TYPE, Event, HomeAssistant, callback +from homeassistant.core import CALLBACK_TYPE, Event, HassJob, HomeAssistant, callback from homeassistant.helpers import config_validation as cv from homeassistant.helpers.event import async_call_later from homeassistant.helpers.typing import ConfigType @@ -252,6 +252,7 @@ class WemoDiscovery: self._stop: CALLBACK_TYPE | None = None self._scan_delay = 0 self._static_config = static_config + self._discover_job: HassJob[[datetime], Coroutine[Any, Any, None]] | None = None async def async_discover_and_schedule( self, event_time: datetime | None = None @@ -271,10 +272,12 @@ class WemoDiscovery: self._scan_delay + self.ADDITIONAL_SECONDS_BETWEEN_SCANS, self.MAX_SECONDS_BETWEEN_SCANS, ) + if not self._discover_job: + self._discover_job = HassJob(self.async_discover_and_schedule) self._stop = async_call_later( self._hass, self._scan_delay, - self.async_discover_and_schedule, + self._discover_job, ) @callback