场景支持
HA有场景支持。场景是(部分的)实体状态的集合。当场景被激活时,Home Assistant将尝试调用正确的服务以获得处于指定状态的指定场景。
集成负责向Home Assistant添加支持,以便能够调用正确的服务来重现场景中的状态
增加支持
在新的集成中添加重新生成状态支持的最快方法是使用我们内置的scaffold模板。在Home Assistant开发环境中,运行python3 -m script.scaffold reproduce_state
,并按照说明操作
如果你更喜欢手动的方式,在你的集成文件夹中创建一个新的文件,名为reproe_state.py
,并实现以下方法:
1 | import asyncio |
有意义(重要)改变的支持
Home Assistant不仅收集数据,它还将数据导出到各种服务。并非所有这些服务都对每个更改感兴趣。为了帮助这些服务过滤无关紧要的更改,您的实体集成可以添加重要的更改支持
This support is added by creating a significant_change.py
platform file with a function async_check_significant_change
.
1 | from typing import Any, Optional |
这个函数传递一个以前被认为重要的状态和新的状态。它不只是传递最后两个已知状态。如果函数有意义,则返回布尔值;如果函数不知道是否有意义,则返回None。
在决定重要性时,请确保将所有已知属性都考虑在内。使用设备类来区分实体类型。
以下是一些无关紧要的变化的例子:
- 一种损耗0.1%电量的电池
- 温度传感器变化0.1摄氏度
- 一种可以改变亮度的灯
HA 将自动处理未知和不可用的情况。要为实体集成添加重要的状态支持python3 -m script.scaffold significant_change