Modelo de dados no iOS

As APIs do Google Home para iOS apresentam todos os dispositivos do ecossistema 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 que são usadas para controlar e gerenciar dispositivos. Assim como os tipos de dispositivo, os atributos são derivados de clusters Matter e atributos 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 traits, e não de clusters.

Assim sendo, os tipos e características dos dispositivos nas APIs do Home devem ser Matter-primeiro. Um tipo ou característica de dispositivo Matter tem precedência sobre um análogo Cloud-to-cloud.

Consulte Tipos de dispositivos compatíveis no iOS para obter uma lista de tipos de dispositivos e suas características.

Características

As versões Swift dos traits são geradas para uso nas APIs Home e contêm recursos adicionais específicos para as APIs Home (não encontrados em Matter ou Cloud-to-cloud). Por exemplo, cada trait possui métodos para verificar se um trait suporta um atributo ou comando específico. Isso é útil para determinar se a leitura de estado ou determinadas ações podem ser realizadas no dispositivo de um usuário, visto que nem todos os dispositivos de um mesmo tipo possuem todas as mesmas funcionalidades.

Para importar características e tipos de dispositivo, importe o módulo GoogleHomeTypes para sua aplicação:

import GoogleHomeTypes

Você também pode usar typealias para nomes de tipo de recurso e dispositivo para encurtar o código e evitar repetição de namespace:

import GoogleHomeTypes

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

A maioria das características são compatíveis com o uso de Automações, e algumas características sãoapenas Disponível para Automações. Para obter mais detalhes, consulte Suporte de características da API de automação no Android.

Composição do tipo de dispositivo

As APIs do Home suportam a maioria dos clusters de aplicativos Matter como características no modelo de dados. Características que não correspondem ao controle ou aos estados do dispositivo e que não oferecem nenhuma utilidade para os usuários finais, como Binding e Grupos, não são expostas pelas APIs do Google 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 OpenCloseTrait. 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, oFanDeviceType é composto por ambos e apresenta três características:

  • O trait IdentifyTrait Matter fornece toda a funcionalidade do Matter IdentifyTrait.
  • O traço FanControlTrait Matter oferece toda a funcionalidade do Matter FanControlTrait.
  • O trait ExtendedFanControlTrait Google fornece toda a funcionalidade do Google smart home FanSpeedTrait que não é coberta pelo trait FanControlTrait Matter.

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.