Visão geral das APIs do Google Home para Android

As APIs Google Home para Android oferecem uma superfície de API unificada para que os desenvolvedores interajam com o estado das entidades na casa de um usuário. Essas entidades podem descrever dispositivos e informações não relacionadas a dispositivos associadas à estrutura e aos ambientes de um usuário.

As APIs Home definem as seguintes entidades com que um usuário pode interagir:

  • Estruturas representam uma casa que contém ambientes e dispositivos.
  • Os ambientes fazem parte de uma estrutura e contêm dispositivos.
  • Os dispositivos implementam atributos que contêm atributos, estão em conformidade com os tipos, emitem eventos e respondem a comandos.
  • Os grupos de dispositivos são coleções de dispositivos definidas pelo usuário em uma estrutura.
  • As automações fazem parte de uma estrutura e usam metadados e dispositivos da casa para automatizar tarefas.

A Figura 1 ilustra essa arquitetura:

Diagrama que mostra a arquitetura das APIs Home para um app Android
Figura 1: arquitetura das APIs Home para um app Android

Os tipos de dispositivo da API Home podem ser compatíveis com o Matter, um padrão aberto para casa inteligente, ou ser um dispositivo Cloud-to-cloud no ecossistema do Google Home. Alguns tipos de dispositivo podem incorporar funcionalidades de ambos. Consulte Tipos de dispositivos compatíveis com o Android para mais informações.

No Matter, a funcionalidade do dispositivo é agrupada por clusters, que são representados nas APIs Home como características padrão do Matter. As APIs Home são compatíveis com o conjunto padrão de clusters do Matter, conforme definido na especificação atual do Matter.

No ecossistema do Google Home, a funcionalidade do dispositivo é agrupada por características de casa inteligente, que são representadas nas APIs Home como características de casa inteligente do Google. As APIs Home são compatíveis com o conjunto de características de casa inteligente definido no programa Cloud-to-cloud.

Outros atributos, como clusters específicos do fabricante e atributos de plataforma, também estão disponíveis. Para saber mais, consulte Modelo de dados no Android.

Ecossistema

O ecossistema do Google Home oferece uma base simplificada para criar, gerenciar, proteger e integrar experiências de casa inteligente. A Figura 2 mostra como todos os componentes funcionam juntos.

Diagrama que mostra o ecossistema das APIs Home para um app Android
Figura 2: o ecossistema das APIs Home para um app Android

O ecossistema inclui o Google Automation Engine, que armazena e executa automações que oferecem uma maneira de automatizar tarefas e configurações do dispositivo em uma casa.

As APIs Home usam o OAuth 2.0 para conceder acesso aos dispositivos na estrutura. O OAuth permite que um usuário conceda permissão a um app ou serviço sem precisar expor as credenciais de login.

O Google Home Developer Console é usado para gerenciar todas as etapas de um projeto das APIs Home, desde a verificação da marca até o desenvolvimento, teste, certificação e, por fim, o lançamento. Ele simplifica o processo de desenvolvimento e oferece ferramentas robustas e distribuição pelo ecossistema do Google Home.

Idioma

As APIs Home para Android são escritas em Kotlin e oferecem uma interface idiomática do Kotlin que usa o Flow para gerenciar o estado e a inscrição. Isso oferece várias vantagens em relação a uma API de assinatura padrão.

Recomendamos que você se familiarize com a documentação do Kotlin sobre corrotinas, fluxo e Jetpack Compose, caso ainda não tenha feito isso:

Identificadores de entidade

Cada entidade nas APIs Home tem um ID que representa o identificador principal. Esse ID é um identificador exclusivo e estável que nunca vai mudar durante o ciclo de vida da entidade. Esse ID pode ser usado para armazenar objetos em cache ou verificar a igualdade, já que os metadados de uma entidade podem mudar.

Consulte a interface HasId para saber quais entidades têm um ID.

Mapeamento de terminologia

As entidades nas APIs Home são mapeadas para os conceitos de Matter e Cloud-to-cloud da seguinte maneira:

APIs do Google Home Matter Cloud-to-cloud
Atributo Cluster Atributo
Atributo Atributo Atributo, estado
Comando Comando Comando
Evento Evento Resposta de acompanhamento, Notificação