1 """The Ridwell integration."""
3 from __future__
import annotations
12 from .const
import DOMAIN, LOGGER, SENSOR_TYPE_NEXT_PICKUP
13 from .coordinator
import RidwellDataUpdateCoordinator
15 PLATFORMS: list[Platform] = [Platform.CALENDAR, Platform.SENSOR, Platform.SWITCH]
19 """Set up Ridwell from a config entry."""
21 await coordinator.async_initialize()
22 hass.data.setdefault(DOMAIN, {})[entry.entry_id] = coordinator
24 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
30 """Unload a config entry."""
31 if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS):
32 hass.data[DOMAIN].pop(entry.entry_id)
38 """Migrate an old config entry."""
39 version = entry.version
41 LOGGER.debug(
"Migrating from version %s", version)
47 hass.config_entries.async_update_entry(entry, version=version)
50 def migrate_unique_id(entity_entry: er.RegistryEntry) -> dict[str, Any]:
51 """Migrate the unique ID to a new format."""
53 "new_unique_id": f
"{entity_entry.unique_id}_{SENSOR_TYPE_NEXT_PICKUP}"
56 await er.async_migrate_entries(hass, entry.entry_id, migrate_unique_id)
58 LOGGER.debug(
"Migration to version %s successful", version)
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)
bool async_migrate_entry(HomeAssistant hass, ConfigEntry entry)