Структура automations
— это ядро сценария автоматизации. Здесь указывается поведение автоматизации, включая стартеры, условия и действия. В совокупности они также называются правилом автоматизации.
Структура automations
содержит одно или несколько правил автоматизации, и каждое правило всегда содержит набор стартеров и действий. Правило может дополнительно содержать условия — дополнительные квалификаторы, которые должны быть соблюдены для выполнения сценария.
Ключ | Тип | Описание |
---|---|---|
| Необязательный Название автоматики. Это не отображается пользователям, оно предназначено только для справки для разработчиков. | |
| [ Стартер ] | Необходимый Список стартовиков. |
| Необязательный Состояние | |
| [ Действие ] | Необходимый Список действий |
Примеры
Ниже приведены два вводных примера структур automations
.
В первом примере автоматизация запускается при включении 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
Закуска
Стартовая структура — это место, где вы указываете стартеры, которые вызывают выполнение сценария автоматизации. Каждая 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