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 e que possa 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 ele pode ser ativado e desativado pelo app Home.

3. Planeje 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 ativação (ou evento) deve acionar a execução da automação com script.
  • Quais condições adicionais, se houver, controlam se a automação com script é executada ou não quando acionada?
  • Quais ações devem ser executadas.

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

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

Agora que sabemos exatamente o que queremos que nossa automação com script faça, vamos abrir o editor 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 com script é composta de 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 da automação e o que ela faz. Os metadados são especificados no bloco metadata, que tem a seguinte aparência:

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

Regras Automation

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

1 Ativações

2 Condições

3 ações

São elas que iniciam a automação. Pelo menos uma ativação precisa ser avaliada como true para que as condições subsequentes sejam avaliadas.

Elas são opcionais e consistem em uma ou mais restrições extras que são avaliadas após a ativação de uma ativação. Se as condições forem resolvidas como true, as ações serão executadas. Se eles forem definidos como false, as ações não serão executadas.

Ao incluir várias restrições, separe-as com 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 continuem.

Uma condição não é igual a uma notificação de alteração de estado:

  • Uma condição representa um fato que precisa ser verdadeiro quando a ativação é "disparada" 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 o inicializador e as condições de restrição são atendidos.

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 a apaga.
  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 uma única ativação time.schedule que informa a hora de início da automação.
  5. Não há condições nesta automação.

5. A automação completa com script

Juntando todas essas peças, a automação com script completa vai ficar assim:

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 de 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 com script que contêm erros. Resolva todos 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 esse for o caso, você pode usar o recurso de preenchimento automático para escolher um nome de dispositivo válido.
  9. Clique em Salvar.
  10. Confira se a chave Ativar, abaixo do texto do script, está na posição ativada: Editor de script com automação totalmente validada e com scripts ativados

6. Testar a automação

  1. Confira 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 em "Executar". ao lado da automação.
    Botão de execução do script
  4. O dispositivo vai ligar.

Agora, vamos testar a automação.

  1. Desligue o dispositivo.
  2. Editar a automação e mudar a opção "Dispositivo ligado" tempo na linha 7 para um horário de cinco minutos no futuro.
  3. Mude o botão "Desligado" na linha 14 para um horário logo após o "no horário".
  4. Clique em Validar. Resolva todos os erros que possam surgir.
  5. Clique em Salvar.
  6. Confira se a chave Ativar está na posição ligado.
  7. Aguarde os dois tempos de ativação passarem. O dispositivo será ligado e desligado nos horários especificados.

7. Parabéns!

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

Neste codelab, você aprendeu a:

  • Como projetar e programar 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 só programar a ativação de um interruptor. Agora que você conhece os fundamentos da criação de uma automação, conheça os vários tipos de ativações, condições e ações disponíveis no ecossistema do Google Home.

Faça os exercícios a seguir:

  • Adicione mais ativações 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 apenas quando outro dispositivo estiver ligado. Consulte os scripts de exemplo que usam a cláusula condition.
  • Modifique a automação para ligar 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 da seção "Automações":