Automatizaciones

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

name

String

Opcional

Nombre de la automatización.

Los usuarios no verán esto, solo se usará a modo de referencia para los desarrolladores.

starters

[Starter]

Obligatorio

Es una lista de instrucciones iniciales.

condition

Condición

Opcional

Condición

actions

[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

Consulta la lista completa de las acciones.