Modelo de dados no iOS

As APIs Home para iOS apresentam todos os dispositivos no ecossistema do Google Home em um modelo de dados unificado. Esse modelo abrange todos os tipos de dispositivos (de fabricantes do Google Nest ou de terceiros), independentemente da tecnologia de casa inteligente subjacente (como Matter ou Cloud-to-cloud), e oferece uma superfície de API comum para criar experiências do usuário para desenvolvedores de smart home e de apps móveis.

Tipos de dispositivo

Os tipos de dispositivo 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 dispositivo Matter e outros são derivados de Cloud-to-cloud.

Os tipos de dispositivo contêm características usadas para controlar e gerenciar dispositivos. Assim como os tipos de dispositivo, as características são derivadas de Matter clusters e Cloud-to-cloud características e apresentadas em um formato comum que é semelhante ao dos clusters Matter. Nas APIs Home, as características Matter-derivadas são chamadas de características, não clusters.

Assim, os tipos de dispositivo e as características nas APIs Home são destinados a ser Matter-first. Um tipo de dispositivo Matter ou característica tem precedência sobre um análogo Cloud-to-cloud.

Consulte Tipos de dispositivo com suporte no iOS para conferir uma lista de tipos de dispositivo e características.

Características

As versões Swift das 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 ao 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 em um tipo de dispositivo têm os mesmos recursos.

Para importar características e tipos de dispositivo, importe o módulo GoogleHomeTypes para seu aplicativo:

import GoogleHomeTypes

Além disso, você pode usar typealias para nomes de características e tipos de dispositivo para encurtar o código e evitar a repetição do namespace:

import GoogleHomeTypes

typealias OpenCloseTrait = Google.OpenCloseTrait
typealias OnOffTrait = Matter.OnOffTrait
typealias FanDevice = Matter.FanDeviceType

A maioria das características tem suporte para uso com automações, e algumas características estão disponíveis apenas para automações. Para mais detalhes, consulte Suporte a características da API Automation no Android.

Composição do tipo de dispositivo

As APIs Home oferecem suporte à maioria dos clusters de aplicativos Matter application clusters como características no modelo de dados. As características que não correspondem ao controle ou aos 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 características de casa inteligente Cloud-to-cloud geralmente têm o mesmo nome entre Cloud-to-cloud e as APIs Home, como em o exemplo de OpenCloseTrait. Outras são representadas como extensões de Matter características, criadas usando Matter extensões específicas do fabricante. Essas características preenchem a lacuna de uma smart home característica em que a funcionalidade é dividida entre o Matter SDK e o ecossistema do Google Home. Um exemplo específico disso são os tipos de dispositivo Google*, que vêm do 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 e apresenta três características:

  • A característica IdentifyTrait Matter oferece toda a funcionalidade do Matter IdentifyTrait.
  • A característica FanControlTrait Matter oferece toda a funcionalidade do Matter FanControlTrait.
  • A característica ExtendedFanControlTrait do Google oferece toda a funcionalidade da casa inteligente smart home FanSpeedTrait do Google que não é coberta pela característica FanControlTrait Matter do Matter.

Esse tipo de composição de características oferece um modelo flexível para a funcionalidade completa do tipo de dispositivo, abstraindo os modelos de dados subjacentes smart home.