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 |
---|---|---|
|
Opcjonalnie Nazwa automatyzacji. Ta informacja nie jest widoczna dla użytkowników i wyłącznie dla deweloperów. |
|
|
Wymagane Lista poleceń inicjujących. |
|
|
Opcjonalnie Warunek |
|
|
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
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