1 """The pvpc_hourly_pricing integration to collect Spain official electric prices."""
8 from .const
import ATTR_POWER, ATTR_POWER_P3, DOMAIN
9 from .coordinator
import ElecPricesDataUpdateCoordinator
10 from .helpers
import get_enabled_sensor_keys
12 PLATFORMS: list[Platform] = [Platform.SENSOR]
16 """Set up pvpc hourly pricing from a config entry."""
17 entity_registry = er.async_get(hass)
19 using_private_api=entry.data.get(CONF_API_TOKEN)
is not None,
20 entries=er.async_entries_for_config_entry(entity_registry, entry.entry_id),
23 await coordinator.async_config_entry_first_refresh()
25 hass.data.setdefault(DOMAIN, {})[entry.entry_id] = coordinator
26 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
27 entry.async_on_unload(entry.add_update_listener(async_update_options))
32 """Handle options update."""
34 entry.data.get(attrib) != entry.options.get(attrib)
35 for attrib
in (ATTR_POWER, ATTR_POWER_P3, CONF_API_TOKEN)
38 hass.config_entries.async_update_entry(
39 entry, data={**entry.data, **entry.options}
41 await hass.config_entries.async_reload(entry.entry_id)
45 """Unload a config entry."""
46 unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
48 hass.data[DOMAIN].pop(entry.entry_id)
set[str] get_enabled_sensor_keys(bool using_private_api, list[RegistryEntry] entries)
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)
None async_update_options(HomeAssistant hass, ConfigEntry entry)