-
觸發器(trigger)
-
條件(condition)
-
動作(action)
-
自動化中的模板(template)
觸發器(trigger)
時間(time)觸發器
時間觸發器在指定的時間觸發規則,可以是某個時刻,也可以是某個指定的分鍾(小時、秒),或者每隔多少時間。
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運行的核心機制。事件觸發器根據事件類型和事件附加信息進行觸發;當配置中未設置事件附加信息時,此類事件發生時,不管事件附加信息是什么,此規則都會被觸發。
homeassistant觸發器
homeassistant觸發器由HomeAssistant的啟動或關閉事件觸發。
automation:
trigger:
platform: homeassistant
# event的另一個可選值是'shutdown'
event: start
狀態(state)觸發器
狀態觸發器在對應實體的狀態發生改變時進行觸發。如果僅有實體ID,沒有“from”、“to”時,這個實體的任何狀態變化,或者僅僅是某一屬性變化,都會觸發規則。
automation:
trigger:
platform: state
entity_id: device_tracker.paulus, device_tracker.anne_therese
# 可選,代表狀態變化前的值
from: 'not_home'
# 可選,代表狀態變化后的值
to: 'home'
數字狀態(numeric_state)觸發器
監測實體的狀態或者某一屬性(數字類型),當相應值從高變低(或者從低變高)越過某個閾值,觸發規則。
automation:
trigger:
platform: numeric_state
entity_id: sensor.temperature
# 可選,當沒有此配置時,判斷的是實體的狀態值。
# 此處使用了模板,對這個實體的battery屬性進行判斷。模板的使用,參見相關章節的介紹。
value_template: '{{ state.attributes.battery }}'
# 如果從低到高越過17,或者從高到低越過25。換句話說,就是從[17,25]之外的范圍進入這個范圍。
above: 17
below: 25
太陽(sun)觸發器
根據太陽的升起或降落進行觸發。觸發時間是升起(降落)的當時,也可以是升起(降落)前或者后多少時間。
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') }}
automation:
trigger:
platform: template
value_template: "{% if is_state('device_tracker.paulus', 'home') %}true{% endif %}"
區域(zone)觸發器
當device_tracker域中的實體進入或者離開某一個區域時,觸發規則。
automation:
trigger:
platform: zone
entity_id: device_tracker.paulus
zone: zone.home
# event的可選值是enter和leave,代表進入和離開
event: enter
當並列多個觸發器時,任何一個觸發,規則觸發。
automation:
trigger:
# 第一個觸發器
- platform: time
minutes: 5
seconds: 00
# 第二個觸發器
- platform: sun
event: sunset
