1 """The Goodwe inverter component."""
3 from goodwe
import InverterError, connect
19 from .coordinator
import GoodweUpdateCoordinator
23 """Set up the Goodwe components from a config entry."""
24 hass.data.setdefault(DOMAIN, {})
25 host = entry.data[CONF_HOST]
26 model_family = entry.data[CONF_MODEL_FAMILY]
30 inverter = await connect(
35 except InverterError
as err:
36 raise ConfigEntryNotReady
from err
39 configuration_url=
"https://www.semsportal.com",
40 identifiers={(DOMAIN, inverter.serial_number)},
42 manufacturer=
"GoodWe",
43 model=inverter.model_name,
44 sw_version=f
"{inverter.firmware} / {inverter.arm_firmware}",
51 await coordinator.async_config_entry_first_refresh()
53 hass.data[DOMAIN][entry.entry_id] = {
54 KEY_INVERTER: inverter,
55 KEY_COORDINATOR: coordinator,
56 KEY_DEVICE_INFO: device_info,
59 entry.async_on_unload(entry.add_update_listener(update_listener))
61 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
67 """Unload a config entry."""
68 unload_ok = await hass.config_entries.async_unload_platforms(
69 config_entry, PLATFORMS
73 hass.data[DOMAIN].pop(config_entry.entry_id)
78 async
def update_listener(hass: HomeAssistant, config_entry: ConfigEntry) ->
None:
79 """Handle options update."""
80 await hass.config_entries.async_reload(config_entry.entry_id)
None update_listener(HomeAssistant hass, ConfigEntry config_entry)
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)
bool async_unload_entry(HomeAssistant hass, ConfigEntry config_entry)