Use async_at_started in Speedtest.Net (#112110)

This commit is contained in:
G Johansson 2024-03-10 19:49:57 +01:00 committed by GitHub
parent 83dc99cd9e
commit 3f1b8eadd2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -7,9 +7,10 @@ from functools import partial
import speedtest
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import EVENT_HOMEASSISTANT_STARTED, Platform
from homeassistant.core import CoreState, Event, HomeAssistant
from homeassistant.const import Platform
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryNotReady
from homeassistant.helpers.start import async_at_started
from .const import DOMAIN
from .coordinator import SpeedTestDataCoordinator
@ -28,17 +29,12 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> b
except speedtest.SpeedtestException as err:
raise ConfigEntryNotReady from err
async def _request_refresh(event: Event) -> None:
"""Request a refresh."""
await coordinator.async_request_refresh()
if hass.state is CoreState.running:
async def _async_finish_startup(hass: HomeAssistant) -> None:
"""Run this only when HA has finished its startup."""
await coordinator.async_config_entry_first_refresh()
else:
# Running a speed test during startup can prevent
# integrations from being able to setup because it
# can saturate the network interface.
hass.bus.async_listen_once(EVENT_HOMEASSISTANT_STARTED, _request_refresh)
# Don't start a speedtest during startup
async_at_started(hass, _async_finish_startup)
hass.data[DOMAIN] = coordinator