Les API Home 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 à la fois pour les développeurs smart home et pour les développeurs 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 sont dérivés de Cloud-to-cloud.
Les types d'appareils contiennent des caractéristiques qui permettent de les contrôler et de les gérer. Comme les types d'appareils, les traits sont dérivés des clusters Matter et des traits Cloud-to-cloud, et présentés dans un format commun semblable à celui des clusters Matter. Dans les API Home, les caractéristiques dérivées de Matter sont appelées caractéristiques, et non clusters.
Par conséquent, les types et les caractéristiques des appareils dans les API Home sont destinés à être Matter en premier. Un type ou un trait d'appareil Matter est prioritaire sur un analogique Cloud-to-cloud.
Pour obtenir la liste des types d'appareils et de leurs caractéristiques, consultez la section Types d'appareils compatibles.
Caractéristiques
Les versions Kotlin 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 ou Cloud-to-cloud). Par exemple, chaque trait dispose de 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 de certaines actions peut être effectuée sur l'appareil d'un utilisateur, car tous les appareils d'un type d'appareil ne doivent pas avoir les mêmes fonctionnalités.
Chaque trait est contenu dans son propre espace de noms et doit être importé individuellement pour être utilisé.
Par exemple, pour utiliser le trait Matter Marche/Arrêt et le type d'appareil Unité de plug-in Marche/Arrêt, importez les packages suivants dans votre application:
import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffPluginUnitDevice
Pour un type d'appareil de garage (de la maison connectée Google), incluez un mélange de Matter et de traits Google:
import com.google.home.google.LockUnlock
import com.google.home.matter.standard.DoorLock
import com.google.home.matter.standard.GoogleGarageDevice
Android Studio dispose d'une fonctionnalité de saisie semi-automatique et gère souvent les noms de package complets pour vous lorsque vous ajoutez des lignes import
aux fichiers sources de votre projet. Cependant, les noms de package ne sont pas cohérents pour tous les types et caractéristiques d'appareils. Consultez la documentation de référence pour vérifier le nom de package correct pour chaque DeviceType
ou Trait
.
Les traits peuvent également être utilisés avec les automatisations, mais ils peuvent être limités et certains ne sont disponibles que pour les automatisations. Pour obtenir la liste, consultez la section Compatibilité avec les traits de l'API Automation.
Composition des types d'appareils
Les API Home acceptent la plupart des groupes d'applications Matter 1.3 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 la liaison 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 portent généralement le même nom entre Cloud-to-cloud et les API Home, comme dans l'exemple d'OpenClose. D'autres sont représentés comme des extensions des traits Matter, créés à l'aide d'extensions Matter spécifiques au fabricant. Ces traits comblent l'écart pour un trait smart home où les fonctionnalités sont réparties entre le SDK Matter et l'écosystème Google Home. Un exemple spécifique est les types d'appareils 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 de deux sources, Matter ou Cloud-to-cloud.
Par exemple, le type d'appareil Fan est composé des deux et comporte deux traits FanControl:
- La caractéristique Matter FanControl fournit toutes les fonctionnalités de la caractéristique Matter FanControl
- La caractéristique Google ExtendedFanControl fournit toutes les fonctionnalités de la caractéristique FanSpeed Google smart home qui ne sont pas couvertes par la caractéristique FanControl Matter.
Ce type de composition de traits fournit un modèle flexible pour une fonctionnalité complète de type d'appareil, en abstrayant les modèles de données smart home sous-jacents.