1 """The Stookwijzer integration."""
3 from __future__
import annotations
7 from stookwijzer
import Stookwijzer
14 from .const
import DOMAIN, LOGGER
15 from .coordinator
import StookwijzerConfigEntry, StookwijzerCoordinator
17 PLATFORMS = [Platform.SENSOR]
21 """Set up Stookwijzer from a config entry."""
22 await er.async_migrate_entries(hass, entry.entry_id, async_migrate_entity_entry)
25 await coordinator.async_config_entry_first_refresh()
27 entry.runtime_data = coordinator
28 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
33 hass: HomeAssistant, entry: StookwijzerConfigEntry
35 """Unload Stookwijzer config entry."""
36 return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
40 hass: HomeAssistant, entry: StookwijzerConfigEntry
42 """Migrate old entry."""
43 LOGGER.debug(
"Migrating from version %s", entry.version)
45 if entry.version == 1:
46 latitude, longitude = await Stookwijzer.async_transform_coordinates(
48 entry.data[CONF_LOCATION][CONF_LATITUDE],
49 entry.data[CONF_LOCATION][CONF_LONGITUDE],
52 if not latitude
or not longitude:
53 ir.async_create_issue(
56 "location_migration_failed",
58 severity=ir.IssueSeverity.ERROR,
59 translation_key=
"location_migration_failed",
60 translation_placeholders={
61 "entry_title": entry.title,
66 hass.config_entries.async_update_entry(
70 CONF_LATITUDE: latitude,
71 CONF_LONGITUDE: longitude,
75 LOGGER.debug(
"Migration to version %s successful", entry.version)
82 """Migrate Stookwijzer entity entries.
84 - Migrates unique ID for the old Stookwijzer sensors to the new unique ID.
86 if entity_entry.unique_id == entity_entry.config_entry_id:
87 return {
"new_unique_id": f
"{entity_entry.config_entry_id}_advice"}
dict[str, Any]|None async_migrate_entity_entry(er.RegistryEntry entity_entry)
bool async_unload_entry(HomeAssistant hass, StookwijzerConfigEntry entry)
bool async_setup_entry(HomeAssistant hass, StookwijzerConfigEntry entry)
bool async_migrate_entry(HomeAssistant hass, StookwijzerConfigEntry entry)
aiohttp.ClientSession async_get_clientsession(HomeAssistant hass, bool verify_ssl=True, socket.AddressFamily family=socket.AF_UNSPEC, ssl_util.SSLCipherList ssl_cipher=ssl_util.SSLCipherList.PYTHON_DEFAULT)