Automações

O 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.

Um Struct automations contém uma ou mais regras de automação, e cada regra sempre contém um conjunto de ativações e ações. Opcionalmente, uma regra pode conter condições, que são qualificadores adicionais que precisam estar em vigor para que o script seja executado.

Key Tipo Descrição

name

String

Opcional

Nome da automação.

Isso não é exibido aos usuários, serve apenas para referência do desenvolvedor.

starters

[Ativação]

Obrigatório

Uma lista de ativações.

condition

Condição

Opcional

Condição

actions

[Ação]

Obrigatório

Uma lista de ações

Exemplos

Veja a seguir dois exemplos introdutórios de estruturas automations.

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

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

Dois dispositivos LIGHT, chamados "Light A" e "Light 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 na desativação a cada segunda e quinta-feira:

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

O Struct Starter é onde você especifica as ativações que fazem com que o script de automação seja 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.

Um exemplo de ativação time.schedule:

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

Um exemplo de ativação no estado do dispositivo:

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

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

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

Um exemplo de ativação do modo de presença em casa muda:

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

Confira a lista completa de ativações.

Condição

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

No exemplo a seguir, há um Struct condition com uma condição time e uma condição device.state. Esse 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:

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

Condição de temperatura do sensor de um dispositivo do termostato:

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

Um 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 ativações e condições, cada ação tem um type que indica o tipo de ação especificado.

Os mais importantes e úteis são os tipos de comando device.command. Um exemplo prático de apagar 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.