As APIs Home para Android apresentam todos os dispositivos no ecossistema do Google Home em um modelo de dados unificado. Este modelo de dados abrange todos os tipos de dispositivos (do Google Nest ou de fabricantes terceirizados), independentemente da tecnologia de casa inteligente subjacente (como Matter ou Cloud-to-cloud), e fornece uma superfície de API comum para criar experiências de usuário tanto para smart home quanto para desenvolvedores de aplicativos móveis.
Tipos de dispositivo
Os tipos de dispositivos apresentados nas APIs do Home são uma unificação dos modelos de dados Matter e Cloud-to-cloud. Alguns são derivados diretamente de Matter, alguns são uma extensão dos tipos de dispositivo Matter e alguns são derivados de Cloud-to-cloud.
Os tipos de dispositivos contêm características usadas para controlar e gerenciar dispositivos. Assim como os tipos de dispositivo, as características são derivadas de clusters Matter e características Cloud-to-cloud e apresentadas em um formato comum semelhante ao dos clusters Matter. Nas APIs Home, os traços derivados de Matter são chamados de traços, não clusters.
Portanto, os tipos e características de dispositivos nas APIs Home são projetados para serem Matter-first. Um tipo de dispositivo ou característica Matter tem precedência sobre um análogo Cloud-to-cloud.
Consulte Tipos de dispositivos compatíveis no Android para ver uma lista de tipos de dispositivos e seus recursos.
Características
As versões Kotlin de traits são geradas para uso nas APIs Home e contêm recursos adicionais específicos das APIs Home (não encontrados em Matter ou Cloud-to-cloud). Por exemplo, cada trait tem métodos para verificar se ela oferece suporte a um atributo ou comando específico. Isso é útil para determinar se a leitura do estado ou determinadas ações podem ser realizadas no dispositivo de um usuário, já que nem todos os dispositivos de um tipo têm os mesmos recursos.
Cada característica está contida no próprio namespace e precisa ser importada individualmente para uso.
Por exemplo, para usar o traço Matter On/Off e o tipo de dispositivo Unidade de plug-in On/Off, importe os seguintes pacotes para seu aplicativo:
import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffPluginUnitDevice
Para um tipo de dispositivo de garagem (da casa inteligente do Google), inclua uma combinação de Matter e traços do Google:
import com.google.home.google.LockUnlock
import com.google.home.matter.standard.DoorLock
import com.google.home.matter.standard.GoogleGarageDevice
O Android Studio tem funcionalidade de preenchimento automático e geralmente
processa os nomes completos dos pacotes ao adicionar linhas import aos arquivos de origem
no seu projeto. No entanto, os nomes de pacotes não são consistentes em todos os tipos e características de dispositivos. Consulte a referência para verificar o nome correto do pacote para cada
DeviceType ou
Trait.
A maioria das características é compatível com o uso em automações, e algumas estão disponíveis apenas para automações. Para mais detalhes, consulte Suporte a traços da API Automation no Android.
Composição do tipo de dispositivo
As APIs Home são compatíveis com a maioria dos clusters de aplicativos Matter como características no modelo de dados. Características que não correspondem ao controle ou estados do dispositivo e não oferecem utilidade para os usuários finais, como vinculação e grupos, não são expostas pelas APIs Home.
Os recursos derivados dos recursos de casa inteligente Cloud-to-cloud normalmente têm o mesmo nome entre Cloud-to-cloud e as APIs Home, como no exemplo de OpenClose. Outros são representados como extensões de características Matter, criadas usando extensões específicas do fabricante Matter. Essas características preenchem a lacuna para uma característica smart home onde a funcionalidade é dividida entre o SDK Matter e o ecossistema do Google Home. Um exemplo específico disso são os tipos de dispositivo Google* que vêm de Cloud-to-cloud mas ainda não têm análogos no Matter.
Os tipos de dispositivo são compostos de características de uma ou ambas as fontes, Matter ou Cloud-to-cloud.
Por exemplo, o tipo de dispositivo Fan é composto por ambos e apresenta três características:
- O traço
IdentifyMatter oferece toda a funcionalidade do MatterIdentify. - A característica
FanControlMatter fornece toda a funcionalidade da característica MatterFanControl - O trait
ExtendedFanControlGoogle fornece toda a funcionalidade do trait smart homeFanSpeedGoogle que não é coberta pelo traitFanControlMatter
Este tipo de composição de características fornece um modelo flexível para a funcionalidade completa do tipo de dispositivo, abstraindo os modelos de dados subjacentes smart home.