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 (telle que Matter ou Cloud-to-cloud). Il fournit une surface d'API commune pour créer des expériences utilisateur pour les développeurs d'applications mobiles et de maisons connectées. smart home
Types d'appareil
Les types d'appareils présentés dans les API Home sont une unification des Matter et Cloud-to-cloud modèles de données. Certains sont dérivés directement de Matter, d'autres sont une extension des Matter types d'appareils et d'autres sont dérivés de Cloud-to-cloud.
Les types d'appareils contiennent des traits qui permettent de contrôler et de gérer les appareils. Comme les types d'appareils, les traits sont dérivés des Matter clusters et des Cloud-to-cloud traits et sont présentés dans un format commun qui est semblable à celui des Matter clusters. Dans les API Home, Matter-derived traits sont appelés traits et non clusters.
Par conséquent, les types d'appareils et les traits des API Home sont conçus pour être Matter-prioritaires. Un type d'appareil Matter ou un trait est prioritaire sur un équivalent Cloud-to-cloud.
Pour obtenir la liste des types d'appareils et de leurs traits, consultez Types d'appareils compatibles sur iOS.
Traits de caractère
Les versions Swift des traits 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 (non disponibles 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é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 type d'appareil ne sont pas censés avoir les mêmes fonctionnalités.
Pour importer des traits et des types d'appareils, importez le module GoogleHomeTypes dans votre application :
import GoogleHomeTypes
Vous pouvez également utiliser typealias pour les noms de traits et de types d'appareils 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 traits sont compatibles avec les automatisations, et certains traits ne sont disponibles que pour les automatisations. Pour en savoir plus, consultez Compatibilité des traits de l'API Automation sur Android.
Composition des types d'appareils
Les API Home sont compatibles avec la plupart des Matter clusters d'applications en tant que traits dans le modèle de données. Les traits qui ne correspondent pas au contrôle ou aux états des appareils et qui n'offrent aucune utilité aux utilisateurs finaux, tels que les liaisons et les groupes, ne sont pas exposés via les API Home.
Les traits dérivés des traits de maison connectée 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
Matter traits, créées à l'aide de Matter
extensions spécifiques au fabricant. Ces traits comblent le fossé pour un
smart home trait dont la fonctionnalité est divisée entre le
Matter SDK et l'écosystème Google Home. Les types d'appareils Google* en sont un exemple spécifique
. Ils proviennent de
Cloud-to-cloud, mais n'ont pas encore d'équivalents Matter.
Les types d'appareils sont composés de traits provenant d'une ou des deux sources, Matter ou Cloud-to-cloud.
Par exemple, le
FanDeviceType
est composé de et comporte trois traits :
- Le trait
IdentifyTraitMatter fournit toutes les fonctionnalités du MatterIdentifyTrait. - Le trait
FanControlTraitMatter fournit toutes les fonctionnalités du MatterFanControlTrait. - Le trait Google
ExtendedFanControlTraitfournit toutes les fonctionnalités du smart homeFanSpeedTraitde Google qui 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 sous-jacents smart home.