diff --git a/homeassistant/components/uptimerobot/__init__.py b/homeassistant/components/uptimerobot/__init__.py index 7bf990489e6..e5829882200 100644 --- a/homeassistant/components/uptimerobot/__init__.py +++ b/homeassistant/components/uptimerobot/__init__.py @@ -9,13 +9,12 @@ from homeassistant.core import HomeAssistant from homeassistant.exceptions import ConfigEntryAuthFailed from homeassistant.helpers.aiohttp_client import async_get_clientsession -from .const import DOMAIN, PLATFORMS +from .const import PLATFORMS from .coordinator import UptimeRobotConfigEntry, UptimeRobotDataUpdateCoordinator async def async_setup_entry(hass: HomeAssistant, entry: UptimeRobotConfigEntry) -> bool: """Set up UptimeRobot from a config entry.""" - hass.data.setdefault(DOMAIN, {}) key: str = entry.data[CONF_API_KEY] if key.startswith(("ur", "m")): raise ConfigEntryAuthFailed( @@ -23,7 +22,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: UptimeRobotConfigEntry) ) uptime_robot_api = UptimeRobot(key, async_get_clientsession(hass)) - hass.data[DOMAIN][entry.entry_id] = coordinator = UptimeRobotDataUpdateCoordinator( + coordinator = UptimeRobotDataUpdateCoordinator( hass, entry, api=uptime_robot_api, @@ -31,6 +30,8 @@ async def async_setup_entry(hass: HomeAssistant, entry: UptimeRobotConfigEntry) await coordinator.async_config_entry_first_refresh() + entry.runtime_data = coordinator + await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS) return True @@ -40,8 +41,4 @@ async def async_unload_entry( hass: HomeAssistant, entry: UptimeRobotConfigEntry ) -> bool: """Unload a config entry.""" - unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS) - if unload_ok: - hass.data[DOMAIN].pop(entry.entry_id) - - return unload_ok + return await hass.config_entries.async_unload_platforms(entry, PLATFORMS) diff --git a/homeassistant/components/uptimerobot/binary_sensor.py b/homeassistant/components/uptimerobot/binary_sensor.py index f35c7bd87bd..f14d6d93d71 100644 --- a/homeassistant/components/uptimerobot/binary_sensor.py +++ b/homeassistant/components/uptimerobot/binary_sensor.py @@ -10,8 +10,7 @@ from homeassistant.components.binary_sensor import ( from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback -from .const import DOMAIN -from .coordinator import UptimeRobotConfigEntry, UptimeRobotDataUpdateCoordinator +from .coordinator import UptimeRobotConfigEntry from .entity import UptimeRobotEntity # Coordinator is used to centralize the data updates @@ -24,7 +23,7 @@ async def async_setup_entry( async_add_entities: AddConfigEntryEntitiesCallback, ) -> None: """Set up the UptimeRobot binary_sensors.""" - coordinator: UptimeRobotDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id] + coordinator = entry.runtime_data async_add_entities( UptimeRobotBinarySensor( coordinator, diff --git a/homeassistant/components/uptimerobot/diagnostics.py b/homeassistant/components/uptimerobot/diagnostics.py index b159d6ddba9..c3c2acbfbf1 100644 --- a/homeassistant/components/uptimerobot/diagnostics.py +++ b/homeassistant/components/uptimerobot/diagnostics.py @@ -8,8 +8,7 @@ from pyuptimerobot import UptimeRobotException from homeassistant.core import HomeAssistant -from .const import DOMAIN -from .coordinator import UptimeRobotConfigEntry, UptimeRobotDataUpdateCoordinator +from .coordinator import UptimeRobotConfigEntry async def async_get_config_entry_diagnostics( @@ -17,7 +16,7 @@ async def async_get_config_entry_diagnostics( entry: UptimeRobotConfigEntry, ) -> dict[str, Any]: """Return diagnostics for a config entry.""" - coordinator: UptimeRobotDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id] + coordinator = entry.runtime_data account: dict[str, Any] | str | None = None try: response = await coordinator.api.async_get_account_details() diff --git a/homeassistant/components/uptimerobot/sensor.py b/homeassistant/components/uptimerobot/sensor.py index 2c0b77fcc20..3ed97d17508 100644 --- a/homeassistant/components/uptimerobot/sensor.py +++ b/homeassistant/components/uptimerobot/sensor.py @@ -11,8 +11,7 @@ from homeassistant.const import EntityCategory from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback -from .const import DOMAIN -from .coordinator import UptimeRobotConfigEntry, UptimeRobotDataUpdateCoordinator +from .coordinator import UptimeRobotConfigEntry from .entity import UptimeRobotEntity SENSORS_INFO = { @@ -33,7 +32,7 @@ async def async_setup_entry( async_add_entities: AddConfigEntryEntitiesCallback, ) -> None: """Set up the UptimeRobot sensors.""" - coordinator: UptimeRobotDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id] + coordinator = entry.runtime_data async_add_entities( UptimeRobotSensor( coordinator, diff --git a/homeassistant/components/uptimerobot/switch.py b/homeassistant/components/uptimerobot/switch.py index a527bf8ec9b..9b25570393a 100644 --- a/homeassistant/components/uptimerobot/switch.py +++ b/homeassistant/components/uptimerobot/switch.py @@ -14,8 +14,8 @@ from homeassistant.components.switch import ( from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback -from .const import API_ATTR_OK, DOMAIN, LOGGER -from .coordinator import UptimeRobotConfigEntry, UptimeRobotDataUpdateCoordinator +from .const import API_ATTR_OK, LOGGER +from .coordinator import UptimeRobotConfigEntry from .entity import UptimeRobotEntity # Limit the number of parallel updates to 1 @@ -28,7 +28,7 @@ async def async_setup_entry( async_add_entities: AddConfigEntryEntitiesCallback, ) -> None: """Set up the UptimeRobot switches.""" - coordinator: UptimeRobotDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id] + coordinator = entry.runtime_data async_add_entities( UptimeRobotSwitch( coordinator,