-
触发器(trigger)
-
条件(condition)
-
动做(action)
-
自动化中的模板(template)
触发器(trigger)
时间(time)触发器
时间触发器在指定的时间触发规则,能够是某个时刻,也能够是某个指定的分钟(小时、秒),或者每隔多少时间。html
automation 1: trigger: platform: time # 在每一个小时的05分钟触发,好比……9:05,10:05,11:05…… minutes: 5 seconds: 00 automation 2: trigger: platform: time # 在天天的15:32:00触发 at: '15:32:00' automation 3: trigger: platform: time # 当分钟数能被5整除时(也就是每隔5分钟)触发 minutes: '/5'
seconds: 00
事件(event)触发器
事件是HomeAssistant运行的核心机制。事件触发器根据事件类型和事件附加信息进行触发;当配置中未设置事件附加信息时,此类事件发生时,无论事件附加信息是什么,此规则都会被触发。spa
homeassistant触发器
homeassistant触发器由HomeAssistant的启动或关闭事件触发。code
automation: trigger: platform: homeassistant # event的另外一个可选值是'shutdown' event: start
状态(state)触发器
状态触发器在对应实体的状态发生改变时进行触发。若是仅有实体ID,没有“from”、“to”时,这个实体的任何状态变化,或者仅仅是某一属性变化,都会触发规则。orm
automation: trigger: platform: state entity_id: device_tracker.paulus, device_tracker.anne_therese # 可选,表明状态变化前的值 from: 'not_home' # 可选,表明状态变化后的值 to: 'home'
数字状态(numeric_state)触发器
监测实体的状态或者某一属性(数字类型),当相应值从高变低(或者从低变高)越过某个阈值,触发规则。htm
automation: trigger: platform: numeric_state entity_id: sensor.temperature # 可选,当没有此配置时,判断的是实体的状态值。 # 此处使用了模板,对这个实体的battery属性进行判断。模板的使用,参见相关章节的介绍。 value_template: '{{ state.attributes.battery }}' # 若是从低到高越过17,或者从高到低越过25。换句话说,就是从[17,25]以外的范围进入这个范围。 above: 17 below: 25
太阳(sun)触发器
根据太阳的升起或降落进行触发。触发时间是升起(降落)的当时,也能够是升起(降落)前或者后多少时间。blog
automation: trigger: platform: sun # event的可选值是“sunset”和“sunrise” event: sunset # 可选,此处表明太阳下山前45分钟触发 offset: '-00:45:00'
MQTT触发器
在MQTT的broker上,当某一主题上发布了新的消息时触发。当不指定消息内容时,收到这个主题上的任何新的消息都会引发触发。事件
automation: trigger: platform: mqtt topic: living_room/switch/ac # 可选。表示当在“living_room/switch/ac”上收到“on”时触发;若是不设置这行,那么在这个主题上收到任何消息都触发。 payload: 'on'
模板(template)触发器
模板依据实体的状态或属性输出对应值,当输出值为“true”时触发规则。
模板样例一:判断实体device_tracker.paulus的状态是否为home{{ is_state('device_tracker.paulus', 'home') }}
模板样例二:上个样例的另外一种表达方式{% if is_state('device_tracker.paulus', 'home') %}true{% endif %}
模板样例三:判断实体climate.living_room的属性away_mode是不是off{{ is_state_attr('climate.living_room', 'away_mode', 'off') }}
get
automation: trigger: platform: template value_template: "{% if is_state('device_tracker.paulus', 'home') %}true{% endif %}"
区域(zone)触发器
当device_tracker域中的实体进入或者离开某一个区域时,触发规则。qt
automation: trigger: platform: zone entity_id: device_tracker.paulus zone: zone.home # event的可选值是enter和leave,表明进入和离开 event: enter
当并列多个触发器时,任何一个触发,规则触发。it
automation: trigger: # 第一个触发器 - platform: time minutes: 5 seconds: 00 # 第二个触发器 - platform: sun event: sunset