Criar uma automação com script

1. Introdução

O que você vai aprender

  • Como planejar e escrever uma automação com script.
  • Como testar uma automação com script.

O que é necessário

  • Um smartphone Android ou iOS com o app Google Home.
  • Uma iluminação inteligente ou outro dispositivo certificado para Compatível com o Google Home que pode ser ligado ou desligado.

2. Configurar o dispositivo

Se o dispositivo ainda não estiver configurado, faça isso na sua casa.

Confirme se o dispositivo aparece no app Google Home e se é possível ligá-lo e desligá-lo usando o app Home.

3. Planejar sua automação com script

Vamos começar pensando no que queremos que nossa automação com script faça. Isso inclui considerações como:

  • Quais dispositivos você quer automatizar.
  • Qual iniciador (ou evento) deve acionar a execução da automação com script.
  • Quais condições adicionais, se houver, controlam se a automação programada é executada ou não depois de ser acionada.
  • Quais ações precisam ser realizadas.

Para este codelab, nosso plano é que a automação com script faça duas coisas:

  1. Ligue a luz (ou outro dispositivo inteligente) em um horário específico.
  2. Desligar o dispositivo em um horário específico.

Agora que sabemos exatamente o que queremos que nossa automação programada faça, vamos abrir o editor de script e escrever a automação.

4. Escrever a automação com script

As automações com script são escritas de maneira declarativa usando a linguagem de serialização de dados YAML.

Uma automação programada é composta por duas seções principais:

  1. Metadados: o nome da automação com script e uma descrição do que ela faz.
  2. Regras de automação: definem a lógica de início e o comportamento da automação.

Metadados

Os metadados da nossa automação informam ao usuário o nome e a função dela. Os metadados são especificados no bloco metadata, que tem esta aparência:

metadata:
  name: Scheduled light
  description: Turn the light on and off at specific times

Regras de automação

Uma regra de automação é onde o trabalho real acontece. Ela é composta por três partes: ativações, condições e ações, que são avaliadas em ordem:

1 Starter

2 Condições

3 ações

As ativações iniciam a automação. Pelo menos um iniciador precisa ser avaliado como true para que as condições subsequentes sejam avaliadas.

Elas são opcionais e consistem em uma ou mais restrições adicionais que são avaliadas depois que um iniciador é ativado. Se as condições forem resolvidas como true, as ações serão executadas. Se elas forem resolvidas como false, as ações não serão executadas.

Ao incluir várias restrições, separe-as com as palavras-chave and e or para formar uma única expressão lógica. Essa expressão precisa ser resolvida como true para que as ações de uma automação sejam executadas.

Uma condição não é o mesmo que uma notificação de mudança de estado:

  • Uma condição representa um fato que precisa ser verdadeiro no momento em que o ativação "aciona" para que as ações sejam executadas.
  • Uma notificação de mudança de estado é um evento, como a ativação de outro dispositivo.

As ações são operações realizadas quando a ativação e as condições de restrição são atendidas.

O bloco automations da nossa automação contém duas regras:

automations:
  - starters:
      - type: time.schedule
        at: 1:00 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: true
  - starters:
      - type: time.schedule
        at: 1:05 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: false

Observe o seguinte:

  1. Há duas regras automations. O primeiro acende a luz, e o segundo apaga a luz.
  2. Cada regra tem uma única ação.
  3. on: true significa acender a luz. Da mesma forma, on: false significa apagar a luz.
  4. Cada regra tem um único gatilho time.schedule que informa à automação quando ela deve ser iniciada.
  5. Não há condições nesta automação.

5. A automação com script completa

Juntando todas essas partes, veja como fica a automação com script completa:

metadata:
  name: Scheduled light
  description: Turn the light on and off at specific times
automations:
  - starters:
      - type: time.schedule
        at: 1:00 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: true
  - starters:
      - type: time.schedule
        at: 1:05 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: false
  1. Copie a automação (acima).
  2. Acesse o Google Home para Web.
  3. Selecione a guia "Automações", representada por um ícone com três estrelas:
    Guia "Automações"
  4. Clique em + Adicionar novo.
  5. No editor de script, exclua o modelo de automação.
  6. Cole a automação.
  7. Substitua Desk light - Office pelo nome e local do dispositivo.
  8. Clique em Validar. O editor de script sublinha as seções da automação programada que contêm erros. Resolva os erros que surgirem e continue validando e corrigindo até que não haja mais erros. Por exemplo, o nome do dispositivo pode ser diferente. Se for esse o caso, use o recurso de preenchimento automático para escolher um nome de dispositivo válido.
  9. Clique em Salvar.
  10. Verifique se o botão Ativar, abaixo do texto do script, está na posição ativado: Editor de script com automação programada totalmente validada e ativada

6. Testar a automação

  1. Verifique se o dispositivo está conectado e visível no app Google Home.
  2. Se o dispositivo estiver ligado, desligue-o.
  3. Na página Automações do Google Home para Web, clique no botão "Executar" ao lado da sua automação.
    Botão de execução de script
  4. O dispositivo vai ligar.

Agora vamos testar a automação.

  1. Desligue o dispositivo.
  2. Edite a automação e mude o horário "dispositivo ligado" na linha 7 para um horário cinco minutos no futuro.
  3. Mude o tempo de "desligamento do dispositivo" na linha 14 para um horário logo após o "tempo de ativação".
  4. Clique em Validar. Resolva os erros que aparecerem.
  5. Clique em Salvar.
  6. Verifique se o botão Ativar está na posição ativado.
  7. Aguarde os dois horários de início passarem. O dispositivo vai ligar e desligar nos horários especificados.

7. Parabéns!

Você criou uma automação com script. Incrível!

Neste codelab, você aprendeu a:

  • Como criar e escrever uma automação.
  • Como testar uma automação.

Próximas etapas

Neste codelab, criamos uma automação muito simples. As automações podem fazer muito mais do que programar a ativação de um interruptor. Agora que você entende o básico da criação de uma automação, pode explorar os vários tipos de ativações, condições e ações disponíveis no ecossistema do Google Home.

Tente os seguintes exercícios:

  • Adicione mais ativações de time.schedule à automação.
  • Modifique a automação para ligar e desligar outro dispositivo na mesma programação.
  • Sem remover as ativações time.schedule, modifique a automação para ligar os dispositivos somente quando outro dispositivo for ligado. Consulte os scripts de exemplo que usam a cláusula condition.
  • Modifique a automação para ativar os dispositivos apenas quando alguém estiver em casa.

Leitura adicional

Para saber mais sobre as automações do Google Home, consulte a documentação de referência de automações: