一、Home Assistant 自动化中的一个重要概念——模式
引入模式,用于解决正在执行过程中的同一规则又一次被触发的问题
二、Home Assistant 自动化规则的组成部分
2.1 触发条件Trigger:表示智能家居中事件或状态的转换
可选持续时间(特有)
trigger有由以下触发条件触发,可以设置trigger的id
2.2 状态条件Condition :表示一个或多个状态的布尔约束
2.3 动作Action :表示智能设备需要执行的操作
动作延迟,例如“开灯15min”可通过 “等待指定时间” 时间
action里有等待条件触发。action有没有开关自动化mode
三、Home Assistant 自动化规则example1
3.1 TAP规则example1:在白天,如果小米灯被关闭,就执行语音播报
1.找到自动化创建位置:TAP在配置的自动化里,右下角创建自动化
2.配置触发条件Trigger :如果小米灯被关闭
3.配置状态条件Condition :在白天
4.配置动作Action :用语音播报一下
5.其它一些值得注意的点 :触发对应一个时间点(刚回家、每隔一小时),条件对应一个时间段(在家的时候,灯持续开着)
当日出一瞬间,如果小米灯是关着的,和在白天,如果小米灯被关闭,就用语音播报一下作区分
3.2 自动化规则example2:在小米灯关后的一分钟,语音播报关灯了
1.确定触发条件、状态条件、动作三要素
触发条件 小米灯从关到开
条件 无
动作 延迟一分钟 调用关灯服务
2.单点模式的设置 本例子适合 模式restart
四、其它规则创建方法
4.1 自然语言(不成熟所以不推荐)
配置->自动化界面右下角添加自动化
4.2 Blueprint 官方提供的模板,填入设备即可,适合小白
4.3 通过与Home Assistant交互的其它平台
其他平台例如 Homekit、ESPHome、NodeRed、AppDeamon的介绍
开发平台是自己写程序DIY,配置平台是只需要配置就可DIY
Home Assistant中的Add-on可下载Home Assistant
ESP HOME 配置自动化规则示例
这种本地的TAP,不连接网络或者Home Assistant也能自动运行
当NFC靠近读卡器,闪烁板上的灯
Node Red(暂无)
五、一种特殊的自动化规则——消息发邮箱和语音播报的实现
六、自动化中的事件
6.1 适用场景
如on这个操作,可能是双击,可能是长按,光一个on不好表示,用事件更好表示
6.2 事件类型
state_change 如温度改变
service_registered 如新加了设备
call_service 调用服务
6.3 事件数据
state_change 哪个实体的状态变了,状态变化前和后的值
call_service 调用的是哪个服务,参数是什么
6.4 如何查看事件日志
在开发者工具中 或者 日志中
6.5 事件位于开发者工具中
七、自动化中的服务
在开发者工具中
如开灯服务,调用该服务就开灯
调用服务时传递数据
例子 当太阳下山,打开小夜灯,当太阳升起,关闭
八、自动化中的设备
实体与设备的关系,设备是物理上存在的装置,一个设备包含一个或多个实体,如电池设备包含电池种类、电量等实体
不属于设备的实体 如太阳、用户
例子 如果人体感应器的电量低于10%,就打开小米网关灯
九、自动化中的场景
在配置,场景中
如场景“日常”,进入后调灯光和音量
打开场景
场景无turn off,动作,要达到关闭效果就切换场景或调整设备
十、自动化中的脚本
官方文档 https://www.home-assistant.io/docs/scripts
脚本像规则,打开脚本可能并不是立即执行,而是等有了相应触发才执行
10.1 脚本的运行模式
10.2 脚本的例子:小米灯打开五次,就播报消息
1.设置5次循环
2.触发里添加动作 每次循环等待灯被打开(等待触发)
3.动作里设置语音消息
4.前端会多一个脚本图标,可以通过图标来执行
5.也可以通过调用服务
十一、自动化中的模板
之前都是静态的,如朗读预先设定的文字,如果要播报当前的动态的温度,用模板构建动态内容
在开发者工具中
十二、自动化中的trigger变量
例子 灯的状态变化时,前端显示一条通知消息
1.触发里设置灯的状态变化,属性那些都不用写
2.动作里调用服务,服务里有模板,模板里有trigger变量
十三、自动化中的辅助元素(略)
十四、IFTTT与HA的集成
HA中触发IFTTT的this条件
在HA中执行脚本,触发IFTTT点亮YeeLight智能灯
1.IFTTT平台配置IFTTT规则(this=webhook意思是外部web调用,receive a web request,that=YeeLight)
2.配置HA中脚本
IFTTT的that动作触发HA中的事件
关注点在触发HA中事件吧,比较有共性
前提是公网能访问HA
IFTTT平台的that选webhook,url填HA生成的,POST方式,JSON格式