Automatyzacja

automations Struktura jest podstawą skryptu automatyzacji. W tym miejscu określa się zachowanie automatyzacji, w tym polecenia inicjujące, warunki i działania. Są one też nazywane łącznie regułą automatyzacji.

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

Klucz Typ Opis

name

String

Opcjonalny

Nazwa automatyzacji.

Użytkownicy nie będą tego widzieć. Jest to przeznaczone tylko dla deweloperów.

starters

[Starter]

Wymagane

Lista przystawek.

condition

Warunek

Opcjonalny

Warunek

actions

[Działanie]

Wymagane

Lista działań

Przykłady

Poniżej znajdziesz 2 przykłady struktur automations.

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

Po uruchomieniu wykonywane są te działania:

Dwa urządzenia LIGHT o nazwach „Światło A” i „Światło B” są włączone i ustawione na 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 o zachodzie słońca w każdy poniedziałek i czwartek:

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 strukturze Starter określasz elementy inicjujące, które powodują wykonanie skryptu automatyzacji. Każdy warunek automation może zawierać co najmniej 1 polecenie inicjujące, a co najmniej 1 z nich musi mieć wartość true, aby można było ocenić kolejne warunki.

Przykład time.schedule polecenia inicjującego:

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

Przykład polecenia inicjującego zmianę stanu urządzenia:

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

Przykład polecenia inicjującego zdarzenie na urządzeniu:

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

Przykład polecenia inicjującego dotyczącego zmian trybu obecności w domu:

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

Zobacz pełną listę starterów

Warunek

Warunki można łączyć za pomocą operatorów logicznych and, ornot, aby wyrażać bardziej złożoną logikę.

W tym przykładzie znajduje się condition Struct z 1 warunkiem time i 1 warunkiem device.state. Ta struktura umożliwia uruchomienie skryptu, jeśli jest poniedziałek lub wtorek i jest między zachodem a wschodem słońca albo jeśli głośność telewizora jest 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 godziną 10:00:

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

Warunek 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 polecenia inicjujące i warunki, każde działanie ma type, które wskazują, jakiego rodzaju działanie jest określane.

Najważniejsze i najbardziej przydatne są device.command typy poleceń. Przykład działania polegającego na wyłączeniu świateł.

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

Działanie, które dodaje opóźnienie między kilkoma innymi działaniami.

type: time.delay
for: 5min

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