1 """The islamic_prayer_times component."""
3 from __future__
import annotations
12 from .coordinator
import IslamicPrayerDataUpdateCoordinator
14 PLATFORMS = [Platform.SENSOR]
17 _LOGGER = logging.getLogger(__name__)
19 type IslamicPrayerTimesConfigEntry = ConfigEntry[IslamicPrayerDataUpdateCoordinator]
23 hass: HomeAssistant, config_entry: IslamicPrayerTimesConfigEntry
25 """Set up the Islamic Prayer Component."""
29 entity_entry: er.RegistryEntry,
30 ) -> dict[str, str] |
None:
31 """Update unique ID of entity entry."""
32 if not entity_entry.unique_id.startswith(f
"{config_entry.entry_id}-"):
33 new_unique_id = f
"{config_entry.entry_id}-{entity_entry.unique_id}"
34 return {
"new_unique_id": new_unique_id}
37 await er.async_migrate_entries(hass, config_entry.entry_id, update_unique_id)
40 await coordinator.async_config_entry_first_refresh()
42 config_entry.runtime_data = coordinator
43 config_entry.async_on_unload(
44 config_entry.add_update_listener(async_options_updated)
46 await hass.config_entries.async_forward_entry_setups(config_entry, PLATFORMS)
52 """Migrate old entry."""
53 _LOGGER.debug(
"Migrating from version %s", config_entry.version)
55 if config_entry.version > 1:
58 if config_entry.version == 1:
59 new = {**config_entry.data}
60 if config_entry.minor_version < 2:
61 lat = hass.config.latitude
62 lon = hass.config.longitude
67 unique_id = f
"{lat}-{lon}"
68 hass.config_entries.async_update_entry(
69 config_entry, data=new, unique_id=unique_id, version=1, minor_version=2
72 _LOGGER.debug(
"Migration to version %s successful", config_entry.version)
78 hass: HomeAssistant, config_entry: IslamicPrayerTimesConfigEntry
80 """Unload Islamic Prayer entry from config_entry."""
81 if unload_ok := await hass.config_entries.async_unload_platforms(
82 config_entry, PLATFORMS
84 coordinator = config_entry.runtime_data
85 if coordinator.event_unsub:
86 coordinator.event_unsub()
91 hass: HomeAssistant, entry: IslamicPrayerTimesConfigEntry
93 """Triggered by config entry options updates."""
94 coordinator = entry.runtime_data
95 if coordinator.event_unsub:
96 coordinator.event_unsub()
97 await coordinator.async_request_refresh()
dict[str, str]|None update_unique_id(er.RegistryEntry entity_entry, str unique_id)
bool async_unload_entry(HomeAssistant hass, IslamicPrayerTimesConfigEntry config_entry)
bool async_setup_entry(HomeAssistant hass, IslamicPrayerTimesConfigEntry config_entry)
bool async_migrate_entry(HomeAssistant hass, ConfigEntry config_entry)
None async_options_updated(HomeAssistant hass, IslamicPrayerTimesConfigEntry entry)