Automazioni

Lo struct automations è il nucleo di uno script di automazione. È qui che viene specificato il comportamento di automazione, inclusi comandi iniziali, condizioni e azioni. Collettivamente, queste vengono chiamate regola dell'automazione.

Uno struct automations contiene una o più regole di automazione e ogni regola contiene sempre un insieme di comandi iniziali e azioni. Una regola può facoltativamente contenere condizioni, che sono qualificatori aggiuntivi che devono essere attivi per consentire l'esecuzione dello script.

Chiave Digitare Descrizione

name

Stringa

Facoltativo

Nome dell'automazione.

Queste informazioni non vengono mostrate agli utenti, ma servono solo come riferimento per gli sviluppatori.

starters

[Comando iniziale]

Obbligatorie

Un elenco di comandi iniziali.

condition

Condizione

Facoltativo

Condizione

actions

[Azione]

Obbligatorie

Un elenco di azioni

Esempi

Di seguito sono riportati due esempi introduttivi di Struct automations.

Nel primo esempio, l'automazione viene avviata quando viene attivata una TV denominata "La mia TV".

Una volta attivate, 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

Starters

Lo struct Starter consente di specificare i comandi iniziali che causano l'esecuzione dello script di automazione. Ogni automation può contenere uno o più comandi iniziali e almeno un comando iniziale deve restituire il valore true affinché vengano valutate le condizioni successive.

Esempio di comando iniziale time.schedule:

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

Esempio di un comando iniziale sulle modifiche di stato del dispositivo:

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

Esempio di comando iniziale su un evento del dispositivo:

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

Esempio di un comando iniziale relativo alla 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 il lunedì o il 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:

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

Una condizione di temperatura del sensore del dispositivo del termostato:

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

Esempio di condizione home.state.HomePresence:

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

Visualizza l'elenco completo delle condizioni.

Azioni

Come i comandi iniziali e le condizioni, ogni azione ha un type che indica il tipo di azione specificato.

I più importanti e i più utili sono i tipi di comando device.command. Un esempio pratico di spegnere le luci.

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

Un'azione per aggiungere un ritardo tra diverse altre azioni.

type: time.delay
for: 5min

Visualizza l'elenco completo delle azioni.