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 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 plataforma de API comum para criar experiências do usuário para smart home e desenvolvedores de apps para dispositivos 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 de tipos de dispositivos 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, os traços são derivados de clusters Matter e Cloud-to-cloud e apresentados em um formato comum semelhante ao dos clusters Matter. Nas APIs Home, os atributos derivados de Matter são chamados de atributos, não de clusters.

Portanto, os tipos e as características de dispositivos nas APIs Home são destinados a Matter. Um tipo de dispositivo ou um recurso Matter tem precedência sobre um analógico Cloud-to-cloud.

Consulte Tipos de dispositivos compatíveis no iOS para conferir uma lista de tipos de dispositivos e os respectivos traços.

Traits

As versões Swift de traits são geradas para uso nas APIs Home e contêm outros recursos específicos das APIs Home (não encontrados em Matter ou Cloud-to-cloud). Por exemplo, cada trait tem métodos para verificar se ele 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 tipos de traços e dispositivos, importe o módulo GoogleHomeTypes para o app:

import GoogleHomeTypes

Além disso, é possível usar typealias para nomes de tipo de elemento e 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

As características também têm suporte para uso com automações, mas podem ser limitadas, e algumas estão disponíveis apenas para automações. Para conferir uma lista, consulte Suporte ao recurso de API de automação no iOS.

Composição do tipo de dispositivo

As APIs Home oferecem suporte à maioria dos clusters de aplicativos Matter 1.3 como características no modelo de dados. As características que não correspondem ao controle ou estados do dispositivo e não oferecem nenhum utilitário para usuários finais, como vinculação e grupos, não são expostas pelas APIs Home.

Os atributos derivados de atributos de casa inteligente 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 características Matter, criadas usando extensões específicas do fabricante Matter. Essas características preenchem a lacuna de uma característica smart home em que a funcionalidade é dividida entre o SDK Matter e o ecossistema do Google Home. Um exemplo específico são os tipos de dispositivo 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 de ambas as origens, Matter ou Cloud-to-cloud.

Por exemplo, o FanDeviceType é composto por ambos e tem três características:

  • O atributo Matter IdentifyTrait oferece toda a funcionalidade do IdentifyTrait Matter.
  • O atributo Matter FanControlTrait oferece toda a funcionalidade do FanControlTrait Matter.
  • O atributo Google ExtendedFanControlTrait oferece todas as funcionalidades do Google smart home FanSpeedTrait que não são cobertas pelo atributo FanControlTrait Matter.

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