Modèle de données sur Android

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 (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 smart home et d'applications mobiles.

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 types d'appareils Matter 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 desMatter clusters et des Cloud-to-cloud traits, et sont présentés dans un format commun qui est semblable à celui desMatter 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-first. Un type d'appareil Matter ou un trait est prioritaire par rapport à un équivalent Cloud-to-cloud.

Pour obtenir la liste des types d'appareils et de leurs traits, 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 aux API Home (non disponibles dans Matter ou 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. 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 trait est contenu dans son propre espace de noms et doit être importé individuellement pour être utilisé.

Par exemple, pour utiliser le Matter trait On/Off et le type d'appareil On/Off Plug-in Unit, 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 (de la maison connectée Google), incluez une combinaison de Matter et 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 lorsque vous ajoutez des lignes import aux fichiers sources de votre projet. Toutefois, les noms de package ne sont pas cohérents pour tous les types d'appareils et les traits. Consultez la référence pour vérifier le nom de package correct pour chaque DeviceType ou Trait.

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 Binding et Groups, 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 d'OpenClose. 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 où 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 type d'appareil Fan est composé de et comporte trois traits :

  • Le trait Identify Matter fournit toutes les fonctionnalités de Matter Identify.
  • Le trait FanControl Matter fournit toutes les fonctionnalités du trait Matter FanControl.
  • Le trait Google ExtendedFanControl fournit toutes les fonctionnalités du trait Google smart home FanSpeed qui ne sont pas couvertes par le trait FanControl Matter Matter.

Ce type de composition de traits fournit un modèle flexible pour une fonctionnalité complète de type d'appareil, en faisant abstraction des modèles de données smart home sous-jacents.