As APIs Home para iOS apresentam todos os dispositivos no ecossistema do Google Home em um modelo de dados unificado. Esse modelo de dados abrange todos os tipos de dispositivos (do Google Nest ou de fabricantes terceirizados), independente da tecnologia de casa inteligente (como Matter ou Cloud-to-cloud), e oferece uma superfície de API comum para criar experiências de usuário para desenvolvedores de smart home e apps móveis.
Tipos de dispositivo
Os tipos de dispositivos apresentados nas APIs Home são uma unificação dos modelos de dados Matter e Cloud-to-cloud. Alguns são derivados diretamente de Matter, outros são uma extensão dos tipos de dispositivos Matter, e outros 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, os traços são derivados de clusters Matter e traços Cloud-to-cloud e apresentados 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 iOS para ver uma lista de tipos de dispositivos e seus recursos.
Características
As versões Swift de características 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 característica 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.
Para importar características e tipos de dispositivos, importe o módulo GoogleHomeTypes
para seu
aplicativo:
import GoogleHomeTypes
Além disso, você pode usar typealias
para nomes de traços e tipos de dispositivos para encurtar o código
e evitar a repetição de namespace:
import GoogleHomeTypes
typealias OpenCloseTrait = Google.OpenCloseTrait
typealias OnOffTrait = Matter.OnOffTrait
typealias FanDevice = Matter.FanDeviceType
Os traços também são compatíveis com o uso de automações, mas podem ser limitados, e alguns traços estão disponíveis apenas para automações. Para conferir uma lista, consulte Suporte a traços da API Automation no iOS.
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.
As características derivadas de Cloud-to-cloud geralmente têm o mesmo nome entre Cloud-to-cloud e as APIs Home, como no exemplo de OpenCloseTrait
. Outros são representados como extensões de
traços Matter, criados usando extensões
específicas do fabricante Matter. Esses traços preenchem a lacuna de um
traço smart home em que a funcionalidade é dividida entre o
SDK Matter e o ecossistema do Google Home. Um exemplo específico disso são os tipos de dispositivos Google*
, que vêm de Cloud-to-cloud, mas ainda não têm análogos do Matter.
Os tipos de dispositivo são compostos por características de uma ou ambas as fontes, Matter ou Cloud-to-cloud.
Por exemplo, o
FanDeviceType
é composto por ambos e tem três características:
- O traço
IdentifyTrait
Matter oferece toda a funcionalidade do MatterIdentifyTrait
. - O traço
FanControlTrait
Matter oferece toda a funcionalidade do MatterFanControlTrait
. - A característica
ExtendedFanControlTrait
do Google oferece toda a funcionalidade do smart homeFanSpeedTrait
do Google que não é coberta pela característicaFanControlTrait
Matter.
Esse tipo de composição de traços fornece um modelo flexível para a funcionalidade completa do tipo de dispositivo, abstraindo os modelos de dados smart home subjacentes.