1 """The trafikverket_train component."""
3 from __future__
import annotations
11 from .const
import PLATFORMS
12 from .coordinator
import TVDataUpdateCoordinator
14 TVTrainConfigEntry = ConfigEntry[TVDataUpdateCoordinator]
16 _LOGGER = logging.getLogger(__name__)
20 """Set up Trafikverket Train from a config entry."""
23 await coordinator.async_config_entry_first_refresh()
24 entry.runtime_data = coordinator
26 entity_reg = er.async_get(hass)
27 entries = er.async_entries_for_config_entry(entity_reg, entry.entry_id)
28 for entity
in entries:
29 if not entity.unique_id.startswith(entry.entry_id):
30 entity_reg.async_update_entity(
31 entity.entity_id, new_unique_id=f
"{entry.entry_id}-departure_time"
34 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
35 entry.async_on_unload(entry.add_update_listener(update_listener))
41 """Unload Trafikverket Weatherstation config entry."""
43 return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
47 """Handle options update."""
48 await hass.config_entries.async_reload(entry.entry_id)
52 """Migrate config entry."""
53 _LOGGER.debug(
"Migrating from version %s", entry.version)
59 if entry.version == 1
and entry.minor_version == 1:
61 hass.config_entries.async_update_entry(entry, unique_id=
None, minor_version=2)
64 "Migration to version %s.%s successful",
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)
bool async_setup_entry(HomeAssistant hass, TVTrainConfigEntry entry)
None update_listener(HomeAssistant hass, ConfigEntry entry)
bool async_migrate_entry(HomeAssistant hass, TVTrainConfigEntry entry)