La estructura automations es el núcleo de una secuencia de comandos de automatización. Aquí es donde se especifica el comportamiento de la automatización, incluidos los activadores, las condiciones y las acciones.
En conjunto, también se conocen como una regla de automatización.
Un Struct automations contiene una o más reglas de automatización, y cada regla siempre contiene un conjunto de activadores y acciones. De manera opcional, una regla puede contener condiciones, que son calificadores adicionales que deben estar vigentes para que se ejecute la secuencia de comandos.
| Clave | Tipo | Descripción |
|---|---|---|
|
|
Opcional Nombre de la automatización. Los usuarios no verán esto, solo se usará a modo de referencia para los desarrolladores. |
|
|
|
[Starter] |
Obligatorio Es una lista de instrucciones iniciales. |
|
|
Opcional Condición |
|
|
|
[Action] |
Obligatorio Una lista de acciones |
Ejemplos
A continuación, se presentan dos ejemplos introductorios de estructuras automations.
En el primer ejemplo, la automatización se inicia cuando se enciende un TV llamado "Mi TV".
Una vez que se activa, se realizan las siguientes acciones:
Dos dispositivos LIGHT, llamados "Luz A" y "Luz B", están encendidos y configurados en un nivel de brillo de 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
En el segundo ejemplo, la misma automatización se inicia al atardecer todos los lunes y jueves:
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
Entradas
La estructura Starter es donde especificas los activadores que hacen que se ejecute la secuencia de comandos de automatización. Cada automation puede contener uno o más activadores, y al menos uno de ellos debe evaluarse como true para que se evalúen las condiciones posteriores.
Ejemplo de un iniciador de time.schedule:
type: time.schedule
at: sunrise+30min
weekdays:
- MON
- TUE
A continuación, se muestra un ejemplo de un activador en los cambios de estado del dispositivo:
type: device.state.Volume
device: My TV - Living Room
state: currentVolume
greaterThan: 1
lessThan: 10
A continuación, se incluye un ejemplo de un activador en un evento del dispositivo:
type: device.event.DoorbellPress
device: My doorbell - Frontdoor
Ejemplo de un activador en los cambios del modo Presencia en casa:
type: home.state.HomePresence
state: homePresenceMode
is: HOME
Consulta la lista completa de activadores.
Condición
Las condiciones se pueden combinar con los operadores lógicos and, or y not para expresar una lógica más compleja.
En el siguiente ejemplo, hay un struct condition con una condición time y una condición device.state. Este Struct permite que la secuencia de comandos se ejecute si es lunes o martes entre el atardecer y el amanecer, o si el volumen de la TV está entre 1 y 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 ejemplo básico de condición time que limita la ejecución de una secuencia de comandos de automatización a los fines de semana antes de las 10:00 a.m.:
type: time.between
before: 10am
weekdays:
- SAT
- SUN
Condición de temperatura del sensor de un dispositivo termostato:
type: device.state.TemperatureSetting
device: My Thermostat - Living Room
state: thermostatTemperatureAmbient
greaterThan: 65F
Un ejemplo de una condición home.state.HomePresence:
type: home.state.HomePresence
state: homePresenceMode
is: AWAY
Consulta la lista completa de condiciones.
Acciones
Al igual que los activadores y las condiciones, cada acción tiene un type que indica qué tipo de acción se especifica.
Los más importantes y útiles son los tipos de comandos device.command. Ejemplo de acción para apagar las luces.
type: device.command.OnOff
devices:
- Light A - Living Room
on: false
Es una acción para agregar un retraso entre varias otras acciones.
type: time.delay
for: 5min