Home Assistant Unofficial Reference 2024.12.1
hardware.py
Go to the documentation of this file.
1 """The Home Assistant Yellow hardware platform."""
2 
3 from __future__ import annotations
4 
5 from homeassistant.components.hardware.models import BoardInfo, HardwareInfo
6 from homeassistant.components.hassio import get_os_info
7 from homeassistant.core import HomeAssistant, callback
8 from homeassistant.exceptions import HomeAssistantError
9 
10 from .const import DOMAIN
11 
12 BOARD_NAME = "Home Assistant Yellow"
13 DOCUMENTATION_URL = "https://yellow.home-assistant.io/documentation/"
14 MANUFACTURER = "homeassistant"
15 MODEL = "yellow"
16 
17 
18 @callback
19 def async_info(hass: HomeAssistant) -> list[HardwareInfo]:
20  """Return board info."""
21  if (os_info := get_os_info(hass)) is None:
22  raise HomeAssistantError
23  board: str | None
24  if (board := os_info.get("board")) is None:
25  raise HomeAssistantError
26  if not board == "yellow":
27  raise HomeAssistantError
28 
29  config_entries = [
30  entry.entry_id for entry in hass.config_entries.async_entries(DOMAIN)
31  ]
32 
33  return [
35  board=BoardInfo(
36  hassio_board_id=board,
37  manufacturer=MANUFACTURER,
38  model=MODEL,
39  revision=None,
40  ),
41  config_entries=config_entries,
42  dongle=None,
43  name=BOARD_NAME,
44  url=DOCUMENTATION_URL,
45  )
46  ]
dict[str, Any]|None get_os_info(HomeAssistant hass)
Definition: coordinator.py:169
list[HardwareInfo] async_info(HomeAssistant hass)
Definition: hardware.py:19