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 (Google Nest ou fabricants tiers), quelle que soit la technologie de maison connectée sous-jacente (Matter ou Cloud-to-cloud, par exemple). Il 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 dérivés directement 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 de périphériques contiennent des caractéristiques utilisées pour contrôler et gérer les périphériques. Comme les types d'appareils, les caractéristiques sont dérivées des clusters Matter et des caractéristiques Cloud-to-cloud, et sont présentées dans un format commun semblable à celui des clusters Matter. Dans les API Home, les traits dérivés de Matter sont appelés traits et non clusters.
Par conséquent, les types et caractéristiques d'appareils dans les API Home sont conçus pour être Matter en premier lieu. Un type ou une caractéristique de périphérique Matter a priorité sur un analogue Cloud-to-cloud.
Pour obtenir la liste des types d'appareils et de leurs caractéristiques, consultez Types d'appareils compatibles sur iOS.
Traits
Les versions Swift des traits sont générées pour être utilisées dans les API Home. Elles contiennent des fonctionnalités supplémentaires spécifiques aux API Home (qui ne se trouvent pas dans Matter ni Cloud-to-cloud). Par exemple, chaque trait comporte des méthodes permettant de vérifier si un trait est compatible avec un attribut ou une commande spécifiques. Cela s'avère 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 posséder les 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 types de caractéristiques et de périphériques afin de raccourcir le code et d'éviter la répétition des espaces 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 plus de détails, voir Prise en charge des traits de l'API Automation sur Android.
Composition du type d'appareil
Les API Home sont compatibles avec la plupart des clusters d'application Matter en tant que traits dans le modèle de données. Les caractéristiques qui ne correspondent pas au contrôle ou aux états d'un appareil et qui n'offrent aucune utilité aux utilisateurs finaux, telles que Binding et Groups, ne sont pas exposées via les API Home.
Les caractéristiques dérivées des caractéristiques de maison intelligente Cloud-to-cloud ont généralement le même nom entre Cloud-to-cloud et les API Home, comme dans l'exemple de OpenCloseTrait. D'autres sont représentés comme des extensions de traits Matter, créées à l'aide d'extensions spécifiques au fabricant Matter. Ces caractéristiques comblent le fossé pour une caractéristique smart home où la fonctionnalité est répartie entre le SDK Matter et l'écosystème Google Home. Un exemple précis de ceci est celui des types de périphériques Google* qui proviennent de Cloud-to-cloud mais qui n'ont pas encore d'équivalents Matter.
Les types d'appareils sont composés de caractéristiques provenant d'une ou des deux sources, Matter ou Cloud-to-cloud.
Par exemple, FanDeviceType est composé des deux et comporte trois caractéristiques :
- Le trait
IdentifyTraitMatter fournit toutes les fonctionnalités du MatterIdentifyTrait. - Le trait
FanControlTraitMatter fournit toutes les fonctionnalités de MatterFanControlTrait. - Le trait Google
ExtendedFanControlTraitfournit toutes les fonctionnalités du trait Google smart homeFanSpeedTraitqui ne sont pas couvertes par le traitFanControlTraitMatter.
Ce type de composition de traits fournit un modèle flexible pour la fonctionnalité complète du type d'appareil, en faisant abstraction des modèles de données smart home sous-jacents.