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 |
---|---|---|
|
Facoltativo Nome dell'automazione. Queste informazioni non vengono mostrate agli utenti, ma servono solo come riferimento per gli sviluppatori. |
|
|
Obbligatorie Un elenco di comandi iniziali. |
|
|
Facoltativo Condizione |
|
|
[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