automations 结构是自动化脚本的核心。您可以在其中指定自动化行为,包括启动方式、条件和操作。
这些统称为自动化规则 。
automations 结构包含一项或多项自动化规则,每条规则始终包含一组启动方式和操作。规则可以选择性地包含条件,这些条件是脚本执行时必须满足的其他限定条件。
| 键 | 类型 | 说明 |
|---|---|---|
|
|
可选 自动化的名称。 此名称不会向用户显示,仅供开发者参考。 |
|
|
|
[Starter] |
必填 启动方式列表。 |
|
|
可选 条件 |
|
|
|
[Action] |
必填 操作列表 |
示例
以下是两个 automations 结构的简介示例。
在第一个示例中,当名为“My TV”的
TV设备开启时,自动化会启动。
触发后,系统会执行以下操作:
两个LIGHT
设备“Light A”和“Light B”开启,亮度级别设置为
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 条件。此结构允许脚本在周一或周二日落到日出之间运行,或者在电视音量介于 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