Les API Home pour Android 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 un trait d'appareil Matter est prioritaire sur un type ou un trait d'appareil Cloud-to-cloud.
Pour obtenir la liste des types d'appareils et de leurs caractéristiques, consultez Types d'appareils compatibles sur Android.
Traits
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 à ces API (absentes de Matter ou Cloud-to-cloud). Par exemple, chaque trait possède des méthodes permettant de vérifier s'il prend en charge 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.
Chaque caractéristique est contenue dans son propre espace de noms et doit être importée individuellement pour être utilisée.
Par exemple, pour utiliser le trait Matter Marche/Arrêt et le type de périphérique Unité enfichable 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 Garage (depuis la maison connectée Google), incluez un mélange de traits Matter et 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. Toutefois, les noms de packages ne sont pas cohérents pour tous les types et traits d'appareils. Consultez la référence pour vérifier le nom de package correct pour chaque DeviceType ou Trait.
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 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 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 OpenClose. D'autres sont représentés sous forme d'extensions de caractéristiques Matter, créées à l'aide d'extensions spécifiques au fabricant Matter. Ces traits comblent le fossé pour un trait smart home où la fonctionnalité est divisée 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 type d'appareil Ventilateur est composé des deux et comporte trois caractéristiques :
- Le trait
IdentifyMatter fournit toutes les fonctionnalités de MatterIdentify. - Le trait
FanControlMatter fournit toutes les fonctionnalités du trait MatterFanControl. - Le trait Google
ExtendedFanControlfournit toutes les fonctionnalités du trait Google smart homeFanSpeedqui ne sont pas couvertes par le traitFanControlMatter.
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.