La estructura automations
es el núcleo de una secuencia de comandos de automatización. Aquí es donde se especifica el comportamiento de automatización, incluidos los activadores, las condiciones y las acciones.
En conjunto, estas también se denominan regla de automatización.
Una estructura 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 implementarse para que se ejecute la secuencia de comandos.
Clave | Tipo | Descripción |
---|---|---|
|
Opcional Nombre de la automatización. Esto no se muestra a los usuarios, es solo de referencia para desarrolladores. |
|
|
Obligatorias Una lista de activadores |
|
|
Opcional Condición |
|
|
[Acción] |
Obligatorias Una lista de acciones |
Ejemplos
A continuación, se incluyen dos ejemplos introductorios de structs automations
.
En el primer ejemplo, la automatización se inicia cuando se activa una TV
llamada "Mi TV".
Una vez que se activa, se realizan las siguientes acciones:
Dos dispositivos LIGHT
, llamados "Light A" y "Light B", están encendidos y establecidos en el nivel de brillo 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 un activador debe evaluarse como true
para que se evalúen las condiciones posteriores.
Ejemplo de un activador time.schedule
:
type: time.schedule
at: sunrise+30min
weekdays:
- MON
- TUE
Ejemplo de un activador en el estado del dispositivo que cambia:
type: device.state.Volume
device: My TV - Living Room
state: currentVolume
greaterThan: 1
lessThan: 10
Ejemplo de un activador en un evento de dispositivo:
type: device.event.DoorbellPress
device: My doorbell - Frontdoor
Un ejemplo de un activador en el modo de presencia en casa cambia:
type: home.state.HomePresence
state: homePresenceMode
is: HOME
Ver la lista completa de activadores.
Condición
Las condiciones se pueden combinar con operadores lógicos and
, or
y not
para expresar una lógica más compleja.
En el siguiente ejemplo, hay una estructura condition
con una condición time
y una condición device.state
. Este Struct permite que se ejecute la secuencia de comandos si es entre el atardecer y el amanecer un lunes o martes, 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
Este es un ejemplo básico de una 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
Una condición de temperatura del sensor del dispositivo del termostato:
type: device.state.TemperatureSetting
device: My Thermostat - Living Room
state: thermostatTemperatureAmbient
greaterThan: 65F
Ejemplo de una condición home.state.HomePresence
:
type: home.state.HomePresence
state: homePresenceMode
is: AWAY
Consulte la lista completa de condiciones.
Acciones
Al igual que los activadores y las condiciones, cada acción tiene un type
que indica el tipo de acción que se especifica.
Los más importantes y útiles son los tipos de comandos device.command
. Ejemplo de acción de apagar luces
type: device.command.OnOff
devices:
- Light A - Living Room
on: false
Una acción para agregar un retraso entre varias acciones distintas.
type: time.delay
for: 5min