As APIs Google Home para Android oferecem uma plataforma 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 associados à estrutura e aos quartos de um usuário.
As APIs Home definem as seguintes entidades com que um usuário pode interagir:
- As estruturas representam uma casa que contém cômodos e dispositivos.
- Os ambientes fazem parte de uma estrutura e contêm dispositivos.
- Os dispositivos implementam características que contêm atributos, estão em conformidade com 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:
Os tipos de dispositivo da API Home podem ser compatíveis com Matter, um padrão aberto para casas inteligentes, ou ser um dispositivo Cloud-to-cloud no ecossistema do Google Home. Alguns tipos de dispositivos podem incorporar recursos de ambos. Consulte Tipos de dispositivos compatíveis 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 de Matter. As APIs Home oferecem suporte ao conjunto padrão de clusters Matter, conforme definido na especificação atual de Matter.
No ecossistema do Google Home, a funcionalidade do dispositivo é agrupada por características de casa inteligente, que são representadas nas APIs do Google 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 programa Cloud-to-cloud.
Outros atributos, como clusters específicos do fabricante e atributos da plataforma, também estão disponíveis. Para saber mais, consulte Modelo de dados.
Idioma
As APIs do Google Home são escritas em Kotlin e fornecem 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 fez isso:
- Desenvolver apps Android com o Kotlin
- Conheça o Kotlin para Android
- Corrotinas do Kotlin no Android. Estes codelabs específicos podem ser úteis:
- Fluxos Kotlin no Android e, mais especificamente, StateFlow.
- Estado e Jetpack Compose, especificamente a
função
collectAsStateWithLifecycle()
. Essa função gerencia automaticamente a inscrição e a desinscrição dos fluxos com base em se a IU que mostra esse estado está realmente em primeiro plano ou não. - Se você estiver trabalhando com a API Automation, leia sobre builders com segurança de tipo do Kotlin para entender como a DSL Automation funciona.
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 a vida útil da entidade. Esse ID pode ser usado para armazenar objetos em cache ou verificar 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 do Google Home são associadas aos conceitos Matter e Cloud-to-cloud da seguinte maneira:
APIs do Google Home | Matter | Cloud-to-cloud |
---|---|---|
Traço | Cluster | Traço |
Atributo | Atributo | Atributo, estado |
Comando | Comando | Comando |
Evento | Evento | Resposta de acompanhamento, notificação |