automations 结构是自动化脚本的核心。您可以在此处指定自动化行为,包括启动方式、条件和操作。
这些统称为自动化规则。
automations 结构包含一个或多个自动化规则,每个规则始终包含一组启动方式和操作。规则可以选择性地包含条件,这些条件是必须满足的附加限定符,只有这样才能执行脚本。
| 密钥 | 类型 | 说明 |
|---|---|---|
|
|
可选 自动化操作的名称。 此名称不会向用户显示,仅供开发者参考。 |
|
|
|
[Starter] |
必需 启动器列表。 |
|
|
可选 条件 |
|
|
|
[操作] |
必需 操作列表 |
示例
以下是两个 automations 结构体的入门示例。
在第一个示例中,当名为“我的电视”的 TV 打开时,自动化操作会启动。
触发后,系统会执行以下操作:
两个 LIGHT 设备(分别命名为“灯 A”和“灯 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