2017-02-14 05:34:36 +00:00
|
|
|
"""Component to configure Home Assistant via an API."""
|
2024-03-08 13:51:32 +00:00
|
|
|
|
2024-01-18 08:20:19 +00:00
|
|
|
from __future__ import annotations
|
|
|
|
|
2022-01-14 09:01:12 +00:00
|
|
|
from homeassistant.components import frontend
|
2024-03-06 02:18:57 +00:00
|
|
|
from homeassistant.const import EVENT_COMPONENT_LOADED
|
2022-03-18 12:09:10 +00:00
|
|
|
from homeassistant.core import HomeAssistant
|
2023-05-29 18:38:33 +00:00
|
|
|
from homeassistant.helpers import config_validation as cv
|
2022-01-02 16:05:18 +00:00
|
|
|
from homeassistant.helpers.typing import ConfigType
|
2019-03-08 22:09:18 +00:00
|
|
|
from homeassistant.setup import ATTR_COMPONENT
|
2024-01-18 08:20:19 +00:00
|
|
|
|
2024-03-06 02:18:57 +00:00
|
|
|
from . import (
|
|
|
|
area_registry,
|
|
|
|
auth,
|
|
|
|
auth_provider_homeassistant,
|
|
|
|
automation,
|
2024-03-15 12:25:16 +00:00
|
|
|
category_registry,
|
2024-03-06 02:18:57 +00:00
|
|
|
config_entries,
|
|
|
|
core,
|
|
|
|
device_registry,
|
|
|
|
entity_registry,
|
|
|
|
floor_registry,
|
|
|
|
label_registry,
|
|
|
|
scene,
|
|
|
|
script,
|
|
|
|
)
|
|
|
|
from .const import DOMAIN
|
2024-02-17 00:12:33 +00:00
|
|
|
|
2018-09-14 09:57:18 +00:00
|
|
|
SECTIONS = (
|
2024-03-06 02:18:57 +00:00
|
|
|
area_registry,
|
|
|
|
auth,
|
|
|
|
auth_provider_homeassistant,
|
|
|
|
automation,
|
2024-03-15 12:25:16 +00:00
|
|
|
category_registry,
|
2024-03-06 02:18:57 +00:00
|
|
|
config_entries,
|
|
|
|
core,
|
|
|
|
device_registry,
|
|
|
|
entity_registry,
|
|
|
|
floor_registry,
|
|
|
|
label_registry,
|
|
|
|
script,
|
|
|
|
scene,
|
2018-09-14 09:57:18 +00:00
|
|
|
)
|
2024-03-06 02:18:57 +00:00
|
|
|
|
2017-02-12 01:29:05 +00:00
|
|
|
|
2023-05-29 18:38:33 +00:00
|
|
|
CONFIG_SCHEMA = cv.empty_config_schema(DOMAIN)
|
|
|
|
|
2017-02-12 01:29:05 +00:00
|
|
|
|
2022-01-02 16:05:18 +00:00
|
|
|
async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
|
2017-04-30 05:04:49 +00:00
|
|
|
"""Set up the config component."""
|
2022-01-14 09:01:12 +00:00
|
|
|
frontend.async_register_built_in_panel(
|
|
|
|
hass, "config", "config", "hass:cog", require_admin=True
|
2019-07-31 19:25:30 +00:00
|
|
|
)
|
2017-02-12 01:29:05 +00:00
|
|
|
|
2024-03-06 02:18:57 +00:00
|
|
|
for panel in SECTIONS:
|
2024-02-17 00:12:33 +00:00
|
|
|
if panel.async_setup(hass):
|
2024-03-06 02:18:57 +00:00
|
|
|
name = panel.__name__.split(".")[-1]
|
|
|
|
key = f"{DOMAIN}.{name}"
|
2017-02-14 05:34:36 +00:00
|
|
|
hass.bus.async_fire(EVENT_COMPONENT_LOADED, {ATTR_COMPONENT: key})
|
|
|
|
|
2017-02-12 01:29:05 +00:00
|
|
|
return True
|