通过YAML进行集成配置
通过YAML进行集成配置
configuration.yaml是由用户定义的配置文件。它在Home Assistant首次启动时自动创建,用于定义要加载哪些组件。
关于设备和/或服务的YAML注意事项
与设备和/或服务通信的集成通过配置流程进行配置。在极少数情况下,我们可以破例。对于不应有YAML配置的现有集成,允许并鼓励其实现配置流程并移除YAML支持。对于这些相同现有集成的现有YAML配置的更改将不再被接受。
预处理
Home Assistant将根据指定要加载的组件对配置进行一些预处理。
CONFIG_SCHEMA
如果一个组件定义了变量CONFIG_SCHEMA,传入的配置对象将是通过CONFIG_SCHEMA运行配置后的结果。CONFIG_SCHEMA应该是一个voluptuous模式。
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
}
]
}
总结
本文主要讲述了Home Assistant中通过YAML进行集成配置的相关内容,包括configuration.yaml文件的作用、设备和服务相关集成配置的方式(通常通过配置流程,特殊情况除外)、Home Assistant对配置的预处理操作(涉及CONFIG_SCHEMA和PLATFORM_SCHEMA的验证及平台配置的收集),并通过示例展示了YAML配置文件如何被处理后传递给组件,为开发者理解和处理Home Assistant中的YAML配置提供了指导。
4237

被折叠的 条评论
为什么被折叠?



