1 """The Home Assistant Yellow integration."""
3 from __future__
import annotations
21 from .const
import FIRMWARE, RADIO_DEVICE, ZHA_HW_DISCOVERY_DATA
23 _LOGGER = logging.getLogger(__name__)
27 """Set up a Home Assistant Yellow config entry."""
30 hass.async_create_task(hass.config_entries.async_remove(entry.entry_id))
35 raise ConfigEntryNotReady
37 if os_info.get(
"board") !=
"yellow":
39 hass.async_create_task(hass.config_entries.async_remove(entry.entry_id))
42 firmware = ApplicationType(entry.data[FIRMWARE])
44 if firmware
is ApplicationType.CPC:
47 except HomeAssistantError
as err:
48 raise ConfigEntryNotReady
from err
50 if firmware
is ApplicationType.EZSP:
51 discovery_flow.async_create_flow(
54 context={
"source": SOURCE_HARDWARE},
55 data=ZHA_HW_DISCOVERY_DATA,
62 """Unload a config entry."""
67 """Migrate old entry."""
70 "Migrating from version %s.%s", config_entry.version, config_entry.minor_version
73 if config_entry.version == 1:
74 if config_entry.minor_version == 1:
80 new_data = {**config_entry.data}
81 new_data[FIRMWARE] = firmware_guess.firmware_type.value
83 hass.config_entries.async_update_entry(
91 "Migration to version %s.%s successful",
93 config_entry.minor_version,
dict[str, Any]|None get_os_info(HomeAssistant hass)
bool is_hassio(HomeAssistant hass)
None check_multi_pan_addon(HomeAssistant hass)
FirmwareGuess guess_firmware_type(HomeAssistant hass, str device_path)
bool async_migrate_entry(HomeAssistant hass, ConfigEntry config_entry)
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)