Properly set update_interval during Speedtest setup (#37708)

* Properly set update_interval during setup

* implement new update_interval method
This commit is contained in:
Rami Mosleh 2020-07-13 22:32:22 +03:00 committed by GitHub
parent b152d59afe
commit cd3e045e06
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -105,15 +105,13 @@ class SpeedTestDataCoordinator(DataUpdateCoordinator):
self.api = None self.api = None
self.servers = {} self.servers = {}
super().__init__( super().__init__(
self.hass, self.hass, _LOGGER, name=DOMAIN, update_method=self.async_update,
_LOGGER, )
name=DOMAIN, if not self.config_entry.options.get(CONF_MANUAL):
update_method=self.async_update, self.update_interval = timedelta(
update_interval=timedelta(
minutes=self.config_entry.options.get( minutes=self.config_entry.options.get(
CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL
) )
),
) )
def update_servers(self): def update_servers(self):
@ -189,12 +187,11 @@ class SpeedTestDataCoordinator(DataUpdateCoordinator):
async def options_updated_listener(hass, entry): async def options_updated_listener(hass, entry):
"""Handle options update.""" """Handle options update."""
if not entry.options[CONF_MANUAL]: if entry.options[CONF_MANUAL]:
hass.data[DOMAIN].update_interval = None
return
hass.data[DOMAIN].update_interval = timedelta( hass.data[DOMAIN].update_interval = timedelta(
minutes=entry.options[CONF_SCAN_INTERVAL] minutes=entry.options[CONF_SCAN_INTERVAL]
) )
await hass.data[DOMAIN].async_request_refresh() await hass.data[DOMAIN].async_request_refresh()
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)