Home Assistant自动化编写指南(二)
前言
前面一篇文章介绍了触发条件的概念,并介绍了Home Assistant中触发条件的种类以及如何配置触发条件,今天来聊聊自动化的第二个概念:环境条件
环境条件
环境条件,顾名思义就是在触发条件满足后,还需满足这些附加条件,自动化动作才会执行。例如,当家里没人时,门窗传感器触发后会发送报警通知,那么触发条件就是门窗传感器被触发,环境条件就是家里没人
Home Assistant提供了多种类型的环境条件以供用户选择
比较常用的有如下几种
状态:最常用的条件类型,可以根据实体(如设备、用户等)的状态进行检查。比如可以设置,当家中的人都离开时(使用设备追踪器进行检测),触发的自动化才能执行
区域:可以检查设备是否在某个区域内部或外部。比如可以设置,当你的手机不在家中时,触发的自动化才能执行
时间:可以设定符合特定时间范围的条件。例如,可以设置在早上6点到晚上6点这个时间范围内,才执行自动化操作
日出/日落:与时间条件类似,但是它是基于日出和日落的时间。例如,可以设置只有在日落以后到次日日出前,才执行自动化操作
模板:如果普通的条件不能满足你的要求,还可以使用模板来创建自定义的条件。在模板中,可以编写基于Python模板语言的代码,来实现复杂的条件检查
数值:用于检查设备的数值状态是否在某个范围内,比如温度、湿度或者照明强度等
Home Assistant的自动化可以设置多个环境条件,当设置多个环境条件时,条件之间的关系可以是”并且“(全部满足)或者是“或者”(任一满足)
如果你选择并且,则所有设置的环境条件都必须满足,自动化才会触发。例如,设置当所有家庭成员的手机都不在家(一个条件),并且是白天时间(另一个条件)时,才关闭所有家中的灯光
如果你选择或者,则只需要任意一个环境条件满足,自动化就会触发。例如,设置当任何一位家庭成员的手机进入家(一个条件),或者当是晚上时间(另一个条件)时,就开启门口的灯光
配置
在配置自动化时(不限于触发条件),可以点击右侧的三个点,对自动化进行测试、重命名、以YAML编辑等操作
如果是选择YAML编辑,则会调出代码输入框。Home Asisstant最开始只能以YAML格式的文件来编写自动化,随着Home Aisstant发展与更新,才加入图形界面编写功能,便于普通用户理解和维护
当设置好触发条件后,可以点击测试按钮进行调试,如果当前环境满足设置的触发条件,则会在顶部弹出绿色的提示条
一些简单自动化不需要环境条件,则可以省略环境条件的配置,直接编写从触发条件->执行动作的自动化
后记
环境条件在Home Assistant的自动化中扮演着至关重要的角色。它可以帮助我们过滤触发条件,在特定的时候执行动作,通过精细化的条件限制,可以减少自动化的误触发,让自动化编写更加灵活
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
栤嚸
校验提示文案
栤嚸
校验提示文案