Автоматизация

Структура automations — это ядро ​​скрипта автоматизации. Здесь задается поведение автоматизации, включая начальные условия, условия и действия. В совокупности они также называются правилом автоматизации.

Структура automations содержит одно или несколько правил автоматизации, и каждое правило всегда содержит набор итераторов и действий. Правило может дополнительно содержать условия, которые являются необходимыми условиями для выполнения скрипта.

Ключ Тип Описание

name

Нить

Необязательный

Название автоматизации.

Эта информация не отображается пользователям, она предназначена только для ознакомления разработчиков.

starters

[ Стартовый ]

Необходимый

Список закусок.

condition

Состояние

Необязательный

Состояние

actions

[ Действие ]

Необходимый

Список действий

Примеры

Ниже приведены два вводных примера структур automations .

В первом примере автоматизация запускается при включении TV с именем "Мой телевизор".

После запуска выполняются следующие действия:

Два 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 . Эта структура позволяет запускать скрипт, если время находится между закатом и восходом солнца в понедельник или вторник, или если громкость телевизора находится в диапазоне от 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

Посмотреть полный список действий .