Visão geral das APIs do Google Home para Android

As APIs do Google Home para Android oferecem uma superfície de API unificada para permitir 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 cômodos 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 cômodos e dispositivos.
  • Cômodos fazem parte de uma estrutura e contêm dispositivos.
  • Dispositivos implementam características que contêm atributos, estão em conformidade com tipos, emitem eventos e respondem a comandos.
  • Automações fazem parte de uma estrutura e usam metadados e dispositivos domésticos para automatizar tarefas em casa.

A Figura 1 ilustra essa arquitetura:

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

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

No Matter, a funcionalidade do dispositivo é agrupada por clusters, que são representados nas APIs Home como Matter características padrão. As APIs Home oferecem suporte ao conjunto padrão de Matter clusters, conforme definido na especificação atual 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 oferecem suporte ao conjunto de características de casa inteligente, conforme definido no Cloud-to-cloud programa.

Outras características, como clusters específicos do fabricante e características da 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 os componentes funcionam juntos.

Diagrama mostrando 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 de dispositivos em uma casa.

As APIs Home usam OAuth 2.0 para conceder acesso a 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 fases de um projeto de APIs Home , desde a verificação da marca até o desenvolvimento, teste e certificação para o lançamento final. Ele simplifica o processo de desenvolvimento, oferecendo 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 assinatura. 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, se ainda não tiver 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 muda 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 Matter e Cloud-to-cloud conceitos da seguinte maneira:

APIs Home Matter Cloud-to-cloud
Característica Cluster Característica
Atributo Atributo Atributo, estado
Comando Comando Comando
Evento Evento Pergunta complementar, notificação