Automações

A struct automations é o núcleo de um script de automação. É aqui que o comportamento da automação é especificado, incluindo ativações, condições e ações. Coletivamente, elas também são chamadas de regra de automação.

Uma estrutura automations contém uma ou mais regras de automação, e cada regra sempre contém um conjunto de ativações e ações. Uma regra pode conter condições opcionais, que são qualificadores adicionais necessários para que o script seja executado.

Key Tipo Descrição

name

String

Opcional

Nome da automação.

Ela não é mostrada aos usuários, apenas para referência do desenvolvedor.

starters

[Starter]

Obrigatório

Uma lista de iniciadores.

condition

Condição

Opcional

Condição

actions

[Ação]

Obrigatório

Uma lista de ações

Exemplos

Confira a seguir dois exemplos introdutórios de structs automations.

No primeiro exemplo, a automação é iniciada quando uma TV chamada "Minha TV" é ligada.

Depois de acionadas, as seguintes ações são realizadas:

Dois dispositivos LIGHT, chamados de "Luz A" e "Luz B", estão ligados e definidos para o nível de brilho 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

No segundo exemplo, a mesma automação é iniciada ao pôr do sol todas as segundas e quintas-feiras:

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

A struct Starter é onde você especifica as ativações que fazem o script de automação ser executado. Cada automation pode conter uma ou mais ativações, e pelo menos uma delas precisa ser avaliada como true para que as condições subsequentes sejam avaliadas.

Exemplo de um time.schedule inicial:

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

Exemplo de uma ativação em mudanças de estado do dispositivo:

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

Exemplo de uma ativação em um evento do dispositivo:

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

Exemplo de um iniciador em mudanças no modo de presença em casa:

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

Confira a lista completa de ativações.

Condição

As condições podem ser combinadas com operadores lógicos and, or e not para expressar uma lógica mais complexa.

No exemplo a seguir, há uma struct condition com uma condição time e uma condição device.state. Essa struct permite que o script seja executado se estiver entre o pôr e o nascer do sol na segunda ou terça-feira, ou se o volume da TV estiver entre 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

Um exemplo básico de condição time que limita a execução de um script de automação aos fins de semana antes das 10h da manhã:

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

Uma condição de temperatura do sensor de dispositivo de termostato:

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

Exemplo de condição home.state.HomePresence:

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

Confira a lista completa de condições.

Ações

Assim como as ativações e condições, cada ação tem um type que indica o tipo de ação especificada.

Os mais importantes e úteis são os tipos de comando device.command. Um exemplo de ação para desligar as luzes.

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

Uma ação para adicionar um atraso entre várias outras ações.

type: time.delay
for: 5min

Confira a lista completa de ações.