automations
结构体是自动化脚本的核心。您可以在此处指定自动化行为,包括启动方式、条件和操作。这些统称为自动化规则。
automations
结构体包含一个或多个自动化规则,且每条规则始终包含一组启动方式和操作。规则可以视需要包含条件,这些条件是指为执行脚本而必须满足的额外限定符。
键 | 类型 | 说明 |
---|---|---|
|
可选 自动化操作的名称。 此名称不会向用户显示,仅供开发者参考。 |
|
|
[入门] |
必需 启动方式列表。 |
|
可选 条件 |
|
|
[行动] |
必需 操作列表 |
示例
以下是 automations
结构体的两个介绍性示例。
在第一个示例中,当名为“我的电视”的 TV
开启时,自动化操作会启动。
触发后,系统会执行以下操作:
两个名为“灯 A”和“灯 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
Struct,其中包含一个 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
Action
与启动方式和条件一样,每个操作都有一个 type
,用于指示指定的操作类型。
device.command
命令类型是最重要和最有用的类型。关灯的操作示例。
type: device.command.OnOff
devices:
- Light A - Living Room
on: false
用于在多项其他操作之间添加延迟的操作。
type: time.delay
for: 5min