Home Assistant Unofficial Reference 2024.12.1
__init__.py
Go to the documentation of this file.
1 """The Home Assistant Green integration."""
2 
3 from __future__ import annotations
4 
5 from homeassistant.components.hassio import get_os_info
6 from homeassistant.config_entries import ConfigEntry
7 from homeassistant.core import HomeAssistant
8 from homeassistant.exceptions import ConfigEntryNotReady
9 from homeassistant.helpers.hassio import is_hassio
10 
11 
12 async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
13  """Set up a Home Assistant Green config entry."""
14  if not is_hassio(hass):
15  # Not running under supervisor, Home Assistant may have been migrated
16  hass.async_create_task(hass.config_entries.async_remove(entry.entry_id))
17  return False
18 
19  if (os_info := get_os_info(hass)) is None:
20  # The hassio integration has not yet fetched data from the supervisor
21  raise ConfigEntryNotReady
22 
23  board: str | None
24  if (board := os_info.get("board")) is None or board != "green":
25  # Not running on a Home Assistant Green, Home Assistant may have been migrated
26  hass.async_create_task(hass.config_entries.async_remove(entry.entry_id))
27  return False
28 
29  return True
30 
31 
32 async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
33  """Unload a config entry."""
34  return True
dict[str, Any]|None get_os_info(HomeAssistant hass)
Definition: coordinator.py:169
bool is_hassio(HomeAssistant hass)
Definition: __init__.py:302
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)
Definition: __init__.py:32
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)
Definition: __init__.py:12