Schéma de tissage

Schéma Weave

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:

Trait de caractère

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:

Traits de caractère et interfaces

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:

Ressources, interfaces et caractéristiques

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: