-
觸發器(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