Automatyzacja

Struktura automations jest podstawą skryptu automatyzacji. W tym miejscu określa się działanie automatyzacji, m.in. polecenia inicjujące, warunki i działania. Łącznie są one też nazywane regułami automatyzacji.

Struktura typu automations zawiera co najmniej 1 regułę automatyzacji, a każda reguła zawsze zawiera zestaw poleceń inicjujących i działań. Reguła może opcjonalnie zawierać warunki, czyli dodatkowe kwalifikatory, które muszą zostać spełnione, aby skrypt został wykonany.

Klucz Typ Opis

name

Ciąg znaków

Opcjonalnie

Nazwa automatyzacji.

Ta informacja nie jest widoczna dla użytkowników i wyłącznie dla deweloperów.

starters

[Polecenie inicjujące]

Wymagane

Lista poleceń inicjujących.

condition

Stan

Opcjonalnie

Warunek

actions

[Działanie]

Wymagane

Lista działań

Przykłady

Poniżej znajdziesz 2 wstępne przykłady elementów struct w systemie automations.

W pierwszym przykładzie automatyzacja rozpoczyna się, gdy włączony jest TV o nazwie „Mój telewizor”.

Po wywołaniu tego zdarzenia wykonywane są te działania:

Dwa urządzenia LIGHT o nazwach „Światło A” i „Światło B” są włączone i mają ustawiony poziom jasności 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

W drugim przykładzie ta sama automatyzacja jest uruchamiana w każdy poniedziałek i czwartek o zachodzie słońca:

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

Polecenia inicjujące

W sekcji Struktura inicjująca podajesz polecenia inicjujące, które mają powodować wykonywanie skryptu automatyzacji. Każdy element automation może zawierać 1 lub więcej poleceń inicjujących, a co najmniej 1 z nich musi mieć wartość true, aby kolejne warunki były sprawdzane.

Przykład polecenia inicjującego time.schedule:

type: time.schedule
at: sunrise+30min
weekdays:
- MON
- TUE

Przykład zmiany stanu polecenia inicjującego na urządzeniu:

type: device.state.Volume
device: My TV - Living Room
state: currentVolume
greaterThan: 1
lessThan: 10

Przykład polecenia inicjującego w związku ze zdarzeniem na urządzeniu:

type: device.event.DoorbellPress
device: My doorbell - Frontdoor

Zmieni się przykład polecenia inicjującego w trybie obecności w domu:

type: home.state.HomePresence
state: homePresenceMode
is: HOME

Wyświetl pełną listę poleceń inicjujących.

Warunek

Aby wyrazić bardziej złożoną logikę, warunki można połączyć z operatorami logicznymi and, or i not.

W poniższym przykładzie występuje struktura condition z 1 warunkem time i 1 warunkem device.state. Dzięki temu skrypt może być uruchamiany od zachodu do wschodu słońca w poniedziałek lub wtorek albo jeśli głośność telewizora mieści się w zakresie od 1 do 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

Podstawowy przykład warunku time, który ogranicza wykonywanie skryptu automatyzacji do weekendów przed 10:00 rano:

type: time.between
before: 10am
weekdays:
- SAT
- SUN

Stan pomiaru temperatury czujnika termostatu:

type: device.state.TemperatureSetting
device: My Thermostat - Living Room
state: thermostatTemperatureAmbient
greaterThan: 65F

Przykład warunku home.state.HomePresence:

type: home.state.HomePresence
state: homePresenceMode
is: AWAY

Zobacz pełną listę warunków

Działania

Podobnie jak w przypadku poleceń inicjujących i warunków, każde działanie ma atrybut type, który wskazuje wybrany rodzaj działania.

Najważniejsze i najbardziej przydatne są polecenia device.command. Przykład działania polegającego na wyłączeniu światła.

type: device.command.OnOff
devices:
- Light A - Living Room
on: false

Działanie pozwalające dodać opóźnienie między wieloma innymi działaniami.

type: time.delay
for: 5min

Wyświetl pełną listę działań.