From cd3e045e06fe37e99ea632255269533e084eaffe Mon Sep 17 00:00:00 2001 From: Rami Mosleh Date: Mon, 13 Jul 2020 22:32:22 +0300 Subject: [PATCH] Properly set update_interval during Speedtest setup (#37708) * Properly set update_interval during setup * implement new update_interval method --- .../components/speedtestdotnet/__init__.py | 27 +++++++++---------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/homeassistant/components/speedtestdotnet/__init__.py b/homeassistant/components/speedtestdotnet/__init__.py index 1b50516f340..2ef49877031 100644 --- a/homeassistant/components/speedtestdotnet/__init__.py +++ b/homeassistant/components/speedtestdotnet/__init__.py @@ -105,16 +105,14 @@ class SpeedTestDataCoordinator(DataUpdateCoordinator): self.api = None self.servers = {} super().__init__( - self.hass, - _LOGGER, - name=DOMAIN, - update_method=self.async_update, - update_interval=timedelta( + self.hass, _LOGGER, name=DOMAIN, update_method=self.async_update, + ) + if not self.config_entry.options.get(CONF_MANUAL): + self.update_interval = timedelta( minutes=self.config_entry.options.get( CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL ) - ), - ) + ) def update_servers(self): """Update list of test servers.""" @@ -189,12 +187,11 @@ class SpeedTestDataCoordinator(DataUpdateCoordinator): async def options_updated_listener(hass, entry): """Handle options update.""" - if not entry.options[CONF_MANUAL]: - hass.data[DOMAIN].update_interval = timedelta( - minutes=entry.options[CONF_SCAN_INTERVAL] - ) - await hass.data[DOMAIN].async_request_refresh() + if entry.options[CONF_MANUAL]: + hass.data[DOMAIN].update_interval = None return - # set the update interval to a very long time - # if the user wants to disable auto update - hass.data[DOMAIN].update_interval = timedelta(days=7) + + hass.data[DOMAIN].update_interval = timedelta( + minutes=entry.options[CONF_SCAN_INTERVAL] + ) + await hass.data[DOMAIN].async_request_refresh()