1 """The Forecast.Solar integration."""
3 from __future__
import annotations
15 from .coordinator
import ForecastSolarDataUpdateCoordinator
17 PLATFORMS = [Platform.SENSOR]
19 type ForecastSolarConfigEntry = ConfigEntry[ForecastSolarDataUpdateCoordinator]
23 """Migrate old config entry."""
25 if entry.version == 1:
26 new_options = entry.options.copy()
28 CONF_MODULES_POWER: new_options.pop(
"modules power"),
29 CONF_DAMPING_MORNING: new_options.get(CONF_DAMPING, 0.0),
30 CONF_DAMPING_EVENING: new_options.pop(CONF_DAMPING, 0.0),
33 hass.config_entries.async_update_entry(
34 entry, data=entry.data, options=new_options, version=2
41 hass: HomeAssistant, entry: ForecastSolarConfigEntry
43 """Set up Forecast.Solar from a config entry."""
45 await coordinator.async_config_entry_first_refresh()
47 entry.runtime_data = coordinator
49 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
51 entry.async_on_unload(entry.add_update_listener(async_update_options))
57 """Unload a config entry."""
58 return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
63 await hass.config_entries.async_reload(entry.entry_id)
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)
bool async_setup_entry(HomeAssistant hass, ForecastSolarConfigEntry entry)
None async_update_options(HomeAssistant hass, ConfigEntry entry)
bool async_migrate_entry(HomeAssistant hass, ConfigEntry entry)