Projetar uma automação no Android

Antes de começar a usar a API Automation, você precisa projetar suas automações.

Determine os seguintes parâmetros para cada automação:

  • As circunstâncias em que a automação precisa ser sugerida ao usuário. Por exemplo, se o usuário acabou de adicionar três novas luzes à casa, ele pode ter interesse em uma automação específica para controlar as luzes.
  • Quais tipos de dispositivo são necessários para a automação. Por exemplo, se o usuário acaba de adicionar três novas luzes à casa, ele pode ter interesse em uma automatização específica para controlar as luzes. Exemplos de tipos de dispositivos de luz incluem OnOffLightDevice, ColorTemperatureLightDevice, DimmableLightDevice ou ExtendedColorLightDevice.
  • Quais atributos e comandos de traço são necessários para a automação e se eles têm suporte da API Automation no Android.
  • As características que precisam ativar a automação como ativações. As inicializações são discutidas em Componentes de automação no Android.
  • Outras condições que determinam se a automação precisa ser executada e quais ações precisam ser realizadas.
  • O fluxo de execução da automação. Ele precisa ser executado sequencialmente ou em paralelo? Você precisa de vários caminhos lógicos?

Ao projetar, pode ser útil diagramar o fluxo da automação, nó por nó, com a lógica necessária em cada etapa.

Depois de projetar uma automação, use a DSL de automação para criá-la. A automação que você cria é basicamente um "modelo": todas as estruturas e dispositivos são marcadores de posição e preenchidos com a estrutura e os dispositivos específicos de cada usuário quando ele "adota" a automação para uso próprio.

Confira a seguir diferentes tipos de automações que um app pode criar usando as APIs Home. Consulte a página Criar uma automação para conferir trechos de código relacionados a esses exemplos.

Automação simples

Digamos que você precise escrever um app que crie uma automação para levantar as persianas às 8h. Para isso, o app precisa de uma lista de persianas (dispositivos com o tipo de dispositivo WindowCoveringDevice) presentes na estrutura que ofereça suporte a automações, o que pode ser fornecido pela API Discovery.

Para automações que precisam ser executadas em um determinado horário, também é necessário garantir que o usuário tenha atribuído um endereço para a estrutura escolhida no Google Home app (GHA). Caso contrário, a automação não vai saber o fuso horário em que será executada. A API Discovery pode ajudar a determinar se um endereço foi atribuído ou não à estrutura.

O fluxo de execução ficaria assim:

  1. Usando a API Discovery, colete a lista de dispositivos WindowCoveringDevice.
  2. Se o endereço não for preenchido, notifique o usuário de que ele precisa fornecer um endereço e interrompa a execução.
  3. Caso contrário, defina a automação:
    1. Inicie a automação às 8h.
    2. Para cada uma das persianas, chame o comando upOrOpen do atributo WindowCovering.

Automação complexa

Imagine um app que cria uma automação que aciona luzes piscando quando o movimento é detectado.

Uma das primeiras tarefas na implementação deste app é descobrir quais luzes estão disponíveis na casa do usuário usando a API Discovery. Com essas informações, o app agora pode mostrar as luzes disponíveis e talvez permitir que o usuário selecione as luzes que ele quer piscar.

O fluxo de execução:

  1. Usando a API Discovery, colete a lista de dispositivos de luz presentes na estrutura, que seriam todos os dispositivos com um tipo de dispositivo de OnOffLightDevice, ColorTemperatureLightDevice, DimmableLightDevice ou ExtendedColorLightDevice.
  2. Ofereça uma maneira de selecionar as luzes que piscam, talvez usando um painel de configurações personalizado.
  3. Defina a automação:
    1. Inicie a automação sempre que alguém sair ou chegar ao local, monitorando AreaPresenceState.
    2. Se o presenceState indicar que a estrutura está ocupada, faça as luzes escolhidas piscarem.

Automação genérica

Para um exemplo de automação mais sofisticada, considere uma que oriente o usuário a criar uma automação aberta com base em qualquer um ou todos os dispositivos que ele tem em casa.

A automação pode primeiro solicitar que o usuário selecione uma estrutura.

Em seguida, a automação poderia mostrar todos os ambientes na estrutura em uma visualização de contorno expandível, em que a expansão de um ambiente mostra os dispositivos nele. A expansão de um dispositivo mostra os iniciadores e os comandos compatíveis com esse dispositivo.

O usuário poderia escolher os dispositivos, ativações e comandos que queria usar, e a automação ajudaria a montar uma automação.

Quando todas as escolhas e decisões do usuário forem finais, a automação vai gerar a automação e salvá-la na estrutura escolhida.

De modo geral, essa automação precisa reunir vários conjuntos de dados sobre a casa do usuário usando a API Structure para Android, a API Device para Android e a API Discovery.

Tabela 1: APIs do Google Home e as informações que elas podem fornecer
APIInformações
API Structure
  • Quais estruturas estão disponíveis
  • Quais cômodos estão na estrutura
API Device
  • Quais dispositivos estão na estrutura escolhida
  • Onde os dispositivos estão localizados (em qual cômodo)
API Discovery
  • Quais características são compatíveis com os dispositivos
  • Quais ativações e comandos estão disponíveis nessas características
  • Quais restrições existem nos parâmetros desses comandos