"""The Home Assistant Green hardware platform.""" from __future__ import annotations from homeassistant.components.hardware.models import BoardInfo, HardwareInfo from homeassistant.components.hassio import get_os_info from homeassistant.core import HomeAssistant, callback from homeassistant.exceptions import HomeAssistantError from .const import DOMAIN BOARD_NAME = "Home Assistant Green" DOCUMENTATION_URL = "https://green.home-assistant.io/documentation/" MANUFACTURER = "homeassistant" MODEL = "green" @callback def async_info(hass: HomeAssistant) -> list[HardwareInfo]: """Return board info.""" if (os_info := get_os_info(hass)) is None: raise HomeAssistantError board: str | None if (board := os_info.get("board")) is None: raise HomeAssistantError if not board == "green": raise HomeAssistantError config_entries = [ entry.entry_id for entry in hass.config_entries.async_entries(DOMAIN) ] return [ HardwareInfo( board=BoardInfo( hassio_board_id=board, manufacturer=MANUFACTURER, model=MODEL, revision=None, ), config_entries=config_entries, dongle=None, name=BOARD_NAME, url=DOCUMENTATION_URL, ) ]