通过YAML进行集成配置
configuration.yaml
是由用户定义的配置文件。它在Home Assistant首次启动时自动创建。它定义了要加载的组件。
关于设备和/或服务的YAML说明
与设备和/或服务通信的集成通过配置流程进行配置。在极少数情况下,我们可以例外。已存在的集成如果不应有YAML配置,允许并鼓励实施配置流程并移除YAML支持。对这些已有集成的现有YAML配置的更改将不再被接受。
更多详细信息请参阅 ADR-0010
预处理
Home Assistant将根据指定加载的组件对配置进行一些预处理。
CONFIG_SCHEMA
如果一个组件定义了变量 CONFIG_SCHEMA
,则传入的配置对象将是通过 CONFIG_SCHEMA
运行配置的结果。 CONFIG_SCHEMA
应该是一个强壮的模式(voluptuous schema)。
PLATFORM_SCHEMA
如果一个组件定义了变量 PLATFORM_SCHEMA
,则该组 件将被视为实体组件。实体组件的配置是平台配置的列表。
Home Assistant将收集此组件的所有平台配置。它将通过查找组件域(如 light
)下的配置条目,同时还会查找域+附加文本的任何条目来实现。
在收集平台配置时,Home Assistant会对其进行验证。它会检查平台是否存在,并且如果平台定义了 PLATFORM_SCHEMA
,则会根据该模式进行验证。如果未定义,则会根据组件中定义的 PLATFORM_SCHEMA
来验证配置。任何引用不存在的平台或包含无效配置的配置将被删除。
以下的 configuration.yaml
:
unrelated_component:
some_key: some_value
switch:
platform: example1
switch living room:
- platform: example2
some_config: true
- platform: invalid_platform
将被传递给组件为
{
"unrelated_component": {
"some_key": "some_value"
},
"switch": [
{
"platform": "example1"
},
{
"platform": "example2",
"some_config": True
}
],
}