Automazioni

Lo struct automations è il nucleo di uno script di automazione. Qui viene specificato il comportamento delle automazioni, inclusi starter, condizioni e azioni. Nel complesso, questi elementi costituiscono una regola di automazione.

Uno struct automations contiene una o più regole di automazione e ogni regola contiene sempre un insieme di starter e azioni. Facoltativamente, una regola può contenere condizioni, ovvero qualificatori aggiuntivi che devono essere soddisfatti affinché lo script venga eseguito.

Chiave Tipo Descrizione

name

String

Facoltativo

Il nome dell'automazione.

Non viene mostrato agli utenti, serve solo come riferimento per lo sviluppatore.

starters

[Starter]

Obbligatorio

Un elenco di starter.

condition

Condition

Facoltativo

Condizione

actions

[Action]

Obbligatorio

Un elenco di azioni

Esempi

Di seguito sono riportati due esempi introduttivi di struct automations.

Nel primo esempio, l'automazione viene avviata quando viene acceso un TV chiamato "La mia TV".

Una volta attivato, vengono eseguite le seguenti azioni:

Due dispositivi LIGHT, denominati "Luce A" e "Luce B", sono accesi e impostati sul livello di luminosità 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

Nel secondo esempio, la stessa automazione viene avviata al tramonto ogni lunedì e giovedì:

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

Titolari

Lo struct Starter è il luogo in cui devono essere specificati gli starter che determinano l'esecuzione dello script di automazione. Ogni automation può contenere uno o più starter e almeno uno starter deve essere valutato come true affinché le condizioni successive vengano valutate.

Un esempio di starter time.schedule:

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

Un esempio di starter basato sulle modifiche di stato del dispositivo:

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

Un esempio di starter basato su un evento del dispositivo:

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

Un esempio di starter basato sulle modifiche della modalità di presenza in casa:

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

Visualizza l'elenco completo dei comandi iniziali.

Condizione

Le condizioni possono essere combinate con gli operatori logici and, or e not per esprimere una logica più complessa.

Nell'esempio seguente, è presente uno struct condition con una condizione time e una condizione device.state. Questo struct consente l'esecuzione dello script se è lunedì o martedì tra il tramonto e l'alba oppure se il volume della TV è compreso tra 1 e 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

Un esempio di condizione time di base che limita l'esecuzione di uno script di automazione ai fine settimana prima delle 10:00 del mattino:

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

Una condizione di temperatura del sensore del termostato:

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

Un esempio di condizione home.state.HomePresence:

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

Visualizza l'elenco completo delle condizioni.

Azioni

Come gli starter e le condizioni, ogni azione ha un type che indica il tipo di azione specificata.

I più importanti e utili sono i tipi di comandi device.command. Esempio di azione per spegnere le luci.

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

Un'azione per aggiungere un ritardo tra più azioni.

type: time.delay
for: 5min

Visualizza l'elenco completo delle azioni.