Modèle de données sur iOS

Les API Home pour iOS présentent tous les appareils de l'écosystème Google Home dans un modèle de données unifié. Ce modèle de données couvre tous les types d'appareils (de Google Nest ou de fabricants tiers), quelle que soit la technologie de maison connectée sous-jacente (comme Matter ou Cloud-to-cloud), et fournit une surface d'API commune pour créer des expériences utilisateur pour les développeurs smart home et d'applications mobiles.

Types d'appareil

Les types d'appareils présentés dans les API Home sont une unification des modèles de données Matter et Cloud-to-cloud. Certains sont directement dérivés de Matter, d'autres sont une extension des types d'appareils Matter et d'autres encore sont dérivés de Cloud-to-cloud.

Les types d'appareils contiennent des caractéristiques utilisées pour contrôler et gérer les appareils. Comme les types d'appareils, les caractéristiques sont dérivées des clusters Matter et des caractéristiques Cloud-to-cloud, et présentées dans un format commun semblable à celui des clusters Matter. Dans les API Home, les caractéristiques dérivées de Matter sont appelées traits, et non clusters.

Par conséquent, les types d'appareils et les caractéristiques des API Home sont destinés à être Matter-first. Un type d'appareil ou un trait Matter est prioritaire sur un analogue Cloud-to-cloud.

Consultez Types d'appareils compatibles sur iOS pour obtenir la liste des types d'appareils et de leurs caractéristiques.

Caractéristiques

Les versions Swift des caractéristiques sont générées pour être utilisées dans les API Home et contiennent des fonctionnalités supplémentaires spécifiques aux API Home (qui ne se trouvent pas dans Matter ou Cloud-to-cloud). Par exemple, chaque caractéristique dispose de méthodes permettant de vérifier si elle est compatible avec un attribut ou une commande spécifique. Cela est utile pour déterminer si la lecture de l'état ou certaines actions peuvent être effectuées sur l'appareil d'un utilisateur, car tous les appareils d'un même type ne sont pas censés disposer des mêmes fonctionnalités.

Pour importer des caractéristiques et des types d'appareils, importez le module GoogleHomeTypes dans votre application :

import GoogleHomeTypes

Vous pouvez également utiliser typealias pour les noms de caractéristiques et de types d'appareils afin de raccourcir le code et d'éviter la répétition de l'espace de noms :

import GoogleHomeTypes

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

La plupart des caractéristiques sont compatibles avec les automatisations, et certaines ne sont disponibles que pour les automatisations. Pour en savoir plus, consultez Compatibilité des caractéristiques de l'API Automation sur Android.

Composition par type d'appareil

Les API Home sont compatibles avec la plupart des clusters d'applications Matter en tant que caractéristiques dans le modèle de données. Les clusters de configuration de bas niveau qui n'offrent pas d'utilité directe aux utilisateurs finaux, tels que Binding, ne sont pas exposés directement via les API Home. Pour en savoir plus sur les groupes d'appareils, consultez API Structure.

Les caractéristiques dérivées des caractéristiques de maison connectée Cloud-to-cloud portent généralement le même nom dans Cloud-to-cloud et dans les API Home, comme dans l'exemple de OpenCloseTrait. D'autres sont représentés comme des extensions de caractéristiques Matter, créées à l'aide d'extensions Matter spécifiques au fabricant. Ces caractéristiques comblent l'écart pour une caractéristique smart home dont les fonctionnalités sont réparties entre le SDK Matter et l'écosystème Google Home. Les types d'appareils Google*, qui proviennent de Cloud-to-cloud, mais n'ont pas encore d'équivalents Matter, en sont un exemple spécifique.

Les types d'appareils sont composés de caractéristiques provenant d'une ou des deux sources, Matter ou Cloud-to-cloud.

Par exemple, le FanDeviceType est composé des deux et présente trois caractéristiques :

  • Le trait Matter IdentifyTrait fournit toutes les fonctionnalités de Matter IdentifyTrait.
  • Le trait Matter FanControlTrait fournit toutes les fonctionnalités de Matter FanControlTrait.
  • Le trait Google ExtendedFanControlTrait fournit toutes les fonctionnalités de l'FanSpeedTrait smart home de Google qui ne sont pas couvertes par le trait Matter FanControlTrait.

Ce type de composition de caractéristiques fournit un modèle flexible pour l'ensemble des fonctionnalités d'un type d'appareil, en faisant abstraction des modèles de données smart home sous-jacents.

Groupes d'appareils

Un groupe d'appareils représente un ensemble d'appareils défini par l'utilisateur au sein d'une même structure. L'appartenance au groupe est conservée dans les services Google et est visible par les autres membres de la structure et les autres applications ayant accès à la structure.

Les groupes d'appareils sont représentés par l'entité DeviceGroup, qui est distincte de HomeDevice. Chaque HomeDevice liste les groupes auxquels il appartient via son GroupMembershipTrait. Votre application peut ainsi inspecter les appartenances à un groupe et effectuer une itération directement sur les appareils membres d'un groupe. De plus, DeviceGroup est conforme au protocole HasParts pour exposer les types d'appareils compatibles avec ses appareils membres lors du ciblage du groupe dans son ensemble.

Pour en savoir plus sur les groupes d'appareils, consultez API Structure et Contrôler un groupe d'appareils.