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 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:

  • As estruturas representam uma casa com ambientes e dispositivos.
  • Os ambientes fazem parte de uma estrutura e contêm dispositivos.
  • Os dispositivos implementam características que contêm atributos, obedecem a tipos, emitem eventos e respondem a comandos.
  • 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 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 dispositivo Cloud-to-cloud 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.

Em Matter, a funcionalidade do dispositivo é agrupada por clusters, que são representados nas APIs Home como traços padrão Matter. As APIs Home oferecem suporte ao conjunto padrão de clusters Matter, conforme definido na especificação Matter atual.

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.

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 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 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 de APIs para casa, desde a verificação da marca até o desenvolvimento, teste e certificação para lançamento final. Ele agiliza 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 em Kotlin que usa Flow para gerenciar estado e 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, caso ainda não tenha feito isso:

Identificadores de entidade

Cada entidade nas APIs Home tem um ID que representa o identificador principal dela. Esse ID é um identificador exclusivo e estável que nunca muda durante a vida útil 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 Matter e Cloud-to-cloud da seguinte maneira:

APIs do Google Home Matter Cloud-to-cloud
Característica Cluster Característica
Atributo Atributo Atributo, Estado
Comando Comando Comando
Evento Evento Resposta de acompanhamento, notificação