Le schéma décrit le modèle de données sous-jacent qui génère la représentation et l'interprétation des données émises par les appareils logiques ou physiques d'un système Weave.
Le schéma est le suivant:
- Standardisé : il contient des définitions de fonctionnalités officiellement approuvées qui fournissent une interface cohérente, quelle que soit la mise en œuvre. Par exemple, une ampoule représentée dans le schéma sera toujours dotée de fonctionnalités de base telles que les états Marche/Arrêt et les actions ou niveaux de luminosité.
- Composable : un utilisateur peut créer des ressources complexes composées de petites portions de fonctionnalités bien définies. Par exemple, un Nest Detect contient deux types de capteurs: les capteurs de mouvement et les capteurs d'ouverture et de fermeture. Ces fonctionnalités sont normalisées dans le schéma et réutilisables sur tous les appareils.
- Extensible : un utilisateur peut créer des extensions personnalisées de fonctionnalités standards. Par exemple, vous pouvez étendre la fonctionnalité de capteur de mouvement standard du schéma avec des fonctionnalités supplémentaires pour une application de sécurité spécifique.
- Avec versions gérées - Toutes les modifications du schéma sont gérées par version avec des versions antérieures et rétrocompatibles.
Le schéma définit trois éléments: les caractéristiques, les interfaces et les ressources. Presque toutes les fonctionnalités de l'écosystème Nest pour un fonctionnement quotidien sont définies dans le schéma. Examinons chaque élément plus en détail.
Traits de caractère
Une caractéristique
est une unité de fonctionnalité de base. Il peut s'agir d'états ou de fonctionnalités générales des appareils, ou décrire la configuration qui en informe le comportement. Une seule caractéristique peut être commune à de nombreux appareils ou spécifique à un type d'appareil.Par exemple, dans le schéma, vous pouvez définir les caractéristiques suivantes pour les appareils Nest:
Interfaces
Nous pouvons étendre la composition des caractéristiques en les regroupant, en particulier si plusieurs caractéristiques représentent une nouvelle fonction spécifique. Un tel groupe de caractéristiques est appelé une interface
.Par exemple, une interface Intercom peut comprendre les caractéristiques du haut-parleur et du micro:
Ressources
Une
de ressource représente un élément logique ou physique dans le schéma. Par exemple, un Nest Protect est une ressource. Il en va de même pour Nest Guard. Il peut s'agir d'un utilisateur ou d'une structure telle que l'adresse de son domicile.Les ressources comprennent un ensemble de caractéristiques qui encapsulent leur configuration, leur état et leurs capacités.
La relation entre les ressources, les interfaces et les caractéristiques ressemble à ceci:
Comme vous pouvez le voir, certaines caractéristiques, comme la caractéristique Motion, sont communes à différentes ressources. Certaines interfaces, comme l'interface Intercom, sont également communes à différentes ressources. Les caractéristiques, les interfaces et les ressources sont définies une fois dans le schéma et réutilisées sur différents appareils et ressources du système Weave.
Éléments caractéristiques
Les caractéristiques sont également divisées en trois éléments principaux: les propriétés, les commandes et les événements. Examinons des exemples de chaque caractéristique.
Propriétés
Les propriétés
représentent l'état d'une caractéristique. Les propriétés sont en lecture-écriture ou en lecture seule.Exemple :
- La version logicielle est une propriété de la caractéristique Device Identity. C'est une caractéristique générale que la plupart des appareils. Les thermostats, caméras et détecteurs Nest sont dotés de leur propre version logicielle.
- L'état du boulon est une caractéristique de la caractéristique Bolt Lock, mais il est spécifique à un appareil comme la serrure Yale x Nest. Par exemple, le verrouillage Nest ne s'affiche pas sur un thermostat Nest.
Commandes
Les commandes
sont des requêtes d'action personnalisées spécifiques à une caractéristique, avec une réponse attendue. Elles sont communément appelées commandes personnalisées et peuvent être étendues à des changements d'état spécifiques pour les propriétés. Exemple :- Bolt Lock Change est une commande personnalisée qui modifie la propriété d'état Bolt pour la caractéristique Bolt Lock.
- Set User Pincode est une commande personnalisée qui crée ou met à jour une propriété "Code d'utilisateur" existante de la caractéristique "Settings".
Événements
Les événements
sont des enregistrements de tout ce qui se passe pour une caractéristique. Elles informent l'abonné des modifications apportées aux propriétés des caractéristiques ou d'un autre type d'événement, tel qu'une réinitialisation du système.Par exemple, l'événement Bolt Actuator State Change de la caractéristique Bolt Lock informe l'abonné de l'état actuel de plusieurs propriétés Bolt Lock, ainsi que l'acteur qui a provoqué la dernière modification de la propriété Bolt Actuator State. Toutes ces informations sont transmises sous la forme d'un événement unique.
Langage de description de schéma Weave
Les caractéristiques de schéma, les interfaces et les ressources de Weave sont définies et décrites à l'aide d'un langage spécifique au domaine (DSL, Domain-Specific Language) qui exploite la syntaxe de Google Protocol Buffers v3. Ce langage est appelé langage de description de schéma Weave (WDL)
.WDL s'exécute via un compilateur qui génère différentes réalisations et encodages spécifiques à la plate-forme. Le type de code généré dépend de la ressource:
- Objective-C, Swift, Java, Scala, applications cloud et services cloud
- C++ avec encodage TLV Weave : appareils intégrés et applications mobiles
Nous étudierons les exemples WDL plus en détail ultérieurement.
Résumé
Dans cet atelier, vous avez appris à effectuer les opérations suivantes :
- Le schéma décrit le modèle de données sous-jacent à un système Weave.
- Le schéma définit trois éléments :
- Trait Une unité de fonctionnalité de base
- Interface : groupe de caractéristiques qui représentent une nouvelle fonction spécifique
- Ressource Une chose logique ou physique
- Les caractéristiques comprennent les propriétés, les commandes et les événements :
- Propriété : état d'une caractéristique de ressource
- Commandes Requête d'action personnalisée pour une caractéristique
- Événement : enregistrer un événement pour une caractéristique
- Le schéma est défini à l'aide du langage de description de schéma Weave (WDL), , qui est basé sur Google Protocol Buffers v3.
Pour en savoir plus: