1 """The yale_smart_alarm component."""
3 from __future__
import annotations
11 from .const
import LOGGER, PLATFORMS
12 from .coordinator
import YaleDataUpdateCoordinator
14 type YaleConfigEntry = ConfigEntry[YaleDataUpdateCoordinator]
18 """Set up Yale from a config entry."""
21 await coordinator.async_config_entry_first_refresh()
22 entry.runtime_data = coordinator
24 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
25 entry.async_on_unload(entry.add_update_listener(update_listener))
31 """Handle options update."""
32 await hass.config_entries.async_reload(entry.entry_id)
36 """Unload a config entry."""
37 return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
41 """Migrate old entry."""
42 LOGGER.debug(
"Migrating from version %s", entry.version)
44 if entry.version == 1:
45 if config_entry_default_code := entry.options.get(CONF_CODE):
46 entity_reg = er.async_get(hass)
47 entries = er.async_entries_for_config_entry(entity_reg, entry.entry_id)
48 for entity
in entries:
49 if entity.entity_id.startswith(
"lock"):
50 entity_reg.async_update_entity_options(
53 {CONF_DEFAULT_CODE: config_entry_default_code},
55 new_options = entry.options.copy()
56 del new_options[CONF_CODE]
58 hass.config_entries.async_update_entry(entry, options=new_options)
60 hass.config_entries.async_update_entry(entry, version=2)
62 LOGGER.debug(
"Migration to version %s successful", entry.version)
None update_listener(HomeAssistant hass, ConfigEntry entry)
bool async_migrate_entry(HomeAssistant hass, ConfigEntry entry)
bool async_setup_entry(HomeAssistant hass, YaleConfigEntry entry)
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)