「automations
結構」是自動化指令碼的核心,您可以在這個頁面上指定自動化行為,包括啟動條件、限制條件和動作。以上種種也稱為自動化規則。
automations
結構包含一或多個自動化規則,且每個規則一律會包含一組啟動條件和動作。您可以選擇在規則中加入條件,這些條件是執行指令碼才能執行的額外限定詞。
金鑰 | 類型 | 說明 |
---|---|---|
|
選用 自動化動作的名稱。 不會對使用者顯示,僅供開發人員參考。 |
|
|
[入門] |
需要 啟動條件清單。 |
|
選用 條件 |
|
|
[動作] |
需要 動作清單 |
範例
以下是 automations
結構的兩個簡介範例。
在第一個範例中,當名為「My TV」的 TV
開啟時,自動化動作就會啟動。
觸發後,系統會執行下列動作:
兩部名為「Light A」和「Light B」的 LIGHT
裝置已開啟,並將亮度設為 50。
automations:
- name: Dim the lights
starters:
- type: device.state.OnOff
device: My TV - Living Room
state: on
is: true
actions:
- type: device.command.OnOff
devices:
- Light A - Living Room
- Light B - Living Room
on: true
- type: device.command.BrightnessAbsolute
devices:
- Light A - Living Room
- Light B - Living Room
brightness: 50
在第二個範例中,系統會在每個星期一和星期四日落時啟動相同的自動化動作:
automations:
- name: Dim the lights
starters:
- type: time.schedule
at: SUNSET
weekday:
- MONDAY
- THURSDAY
state: on
is: true
actions:
- type: device.command.OnOff
devices:
- Light A - Living Room
- Light B - Living Room
on: true
- type: device.command.BrightnessAbsolute
devices:
- Light A - Living Room
- Light B - Living Room
brightness: 50
開胃菜
「Starter」(啟動結構) 可讓您指定觸發自動化指令碼的啟動條件。每個 automation
都可以包含一或多個啟動條件,且至少要有一個啟動條件評估為 true
,才能評估後續條件。
time.schedule
啟動條件範例:
type: time.schedule
at: sunrise+30min
weekdays:
- MON
- TUE
以下是裝置狀態變更啟動條件的示例:
type: device.state.Volume
device: My TV - Living Room
state: currentVolume
greaterThan: 1
lessThan: 10
裝置事件啟動條件示例:
type: device.event.DoorbellPress
device: My doorbell - Frontdoor
以下是住家在家狀態模式變更範例:
type: home.state.HomePresence
state: homePresenceMode
is: HOME
條件
條件可以搭配邏輯運算子 and
、or
和 not
使用,以表達更複雜的邏輯。
在以下範例中,有一個 condition
結構體具備一個 time
條件和一個 device.state
條件。這個「Struct」允許指令碼在星期一或星期二的日落和日出之間執行,或者如果電視音量介於 1 到 10 之間,也能執行該指令碼:
type: or
conditions:
- type: time.between
before: sunrise
after: sunset
weekdays:
- MON
- TUE
- type: device.state
device: My TV - Living Room
trait: Volume
state: currentVolume
greaterThanOrEqualTo: 1
lessThanOrEqualTo: 10
基本的 time
條件範例,可將自動化指令碼的執行時間限制在早上 10:00 之前:
type: time.between
before: 10am
weekdays:
- SAT
- SUN
溫度控制器裝置感應器的溫度條件:
type: device.state.TemperatureSetting
device: My Thermostat - Living Room
state: thermostatTemperatureAmbient
greaterThan: 65F
home.state.HomePresence
條件示例:
type: home.state.HomePresence
state: homePresenceMode
is: AWAY
動作
如同啟動條件和條件,每個動作都有 type
,用來指出要指定的動作類型。
最重要也最實用的指令為 device.command
指令類型。關燈的動作範例。
type: device.command.OnOff
devices:
- Light A - Living Room
on: false
此動作會在多個其他動作之間加上延遲。
type: time.delay
for: 5min