前置知识
必须看,才能更好的理解正文的内容
一、基本知识要点
homeassistant的每一条自动化规则,主要由三个部分组成,触发器、条件、动作。触发器在每一条规则中是必须有的,当符合条件被触发时,这条规则启动进入后续执行。在node对应到node-red里面,左侧节点板里面只有符合左边没有输入右边有输出的节点才能做完触发器使用。如下图
二、homeassistant的触发器类型
homeassistant的自动化规则中的触发器存在不同的类型(time,event,state,numeric_state等)。在配置文件中,不同类型的触发器以“platform:”(平台)字段标识。不同类型的触发器,需要配置的信息是不一样的。例如:
automation:
trigger:
platform: event
event_type: MY_CUSTOM_EVENT
# optional
event_data:
mood: happy
这个自动化的触发器的类型就是event。
三、时间作为触发
时间触发在指定的时间触发规则,可以是某个时刻,也可以是某个指定的分钟(小时、秒),或者每隔多少时间。
- 指定的时间触发,比如每天十二点
- 周期性的时间,比如每隔10秒
- 指定时间段每隔x秒/分/小时执行
四、状态(state)触发器
在homeassistant,状态触发器在对应实体的状态发生改变时进行触发。
- 对应实体有任何变化都触发
- 对应实体state符合某种规则就触发
五、数字触发器
homeassistant里的实体的状态或者某一属性(要属于数字类型),当某个阈值,符合条件则触发规则。
在node-red里面,一般使用events-state节点+switch节点结合起来判断
比如选择一个数字型state的实体xx的温度在20-25之间,则触发:
其他的大于或者等于或者包含或者其他的逻辑关系,根据对应的情况选择就可以
上面选择的是state为数值的实体变化作为触发,假如实体的某个属性也是数值型的,则也可以使用改属性作为触发。
首先要根据前置学习的教程,获取实体的属性,在switch里面的属性项目填入要比较的属性路径。具体看看下图