Weben Schema

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Weben Schema

Das Schema beschreibt das zugrunde liegende Datenmodell, das die Darstellung und Interpretation der Daten auslöst, die von logischen oder physischen Geräten in einem Weave-System ausgegeben werden.

Das Schema sieht so aus:

  • Standardisiert: Es enthält formal genehmigte Definitionen von Funktionen, die unabhängig von der Implementierung eine einheitliche Benutzeroberfläche bieten. Eine im Schema dargestellte Glühbirne hat beispielsweise immer Kernfunktionen wie den Ein/Aus-Status und Aktionen oder die Abdunkelung.
  • Zusammensetzbar – Ein Nutzer kann komplexe Ressourcen erstellen, die aus kleineren Bits an klar definierten Funktionen bestehen. Nest Detect enthält beispielsweise zwei Arten von Sensoren: Bewegung und Öffnen/Schließen. Die Funktionen dieser Sensortypen sind im Schema standardisiert und können auf verschiedenen Geräten verwendet werden.
  • Erweiterbar – Ein Nutzer kann benutzerdefinierte Erweiterungen mit Standardfunktionen erstellen. Beispiel: Sie möchten die Funktionen des Standard-Bewegungssensors des Schemas um zusätzliche Funktionen für eine bestimmte Sicherheitsanwendung erweitern.
  • Versioniert – Alle Änderungen des Schemas sind versioniert für Vor- und Rückwärtskompatibilität.

Mit dem Schema werden drei Elemente definiert: Eigenschaften, Schnittstellen und Ressourcen. Fast alle Funktionen der Nest-Umgebung für den täglichen Betrieb werden im Schema definiert. Sehen wir uns die einzelnen Elemente genauer an.

Wesenszüge

Ein Merkmal ist eine Einheit der grundlegenden Funktionen. Dies können allgemeine Gerätestatus oder Funktionen sein oder die Konfiguration beschreiben, die ihr Verhalten beeinflusst. Eine gemeinsame Eigenschaft kann für viele Geräte oder für einzelne Gerätetypen gelten.

Im Schema definierst du beispielsweise die folgenden Merkmale für Nest-Geräte:

Straße

Interfaces

Wir können die Komponierbarkeit von Merkmalen erweitern, indem wir sie zusammen gruppieren, insbesondere wenn mehrere Merkmale eine neue, spezifische Funktion darstellen. Eine solche Gruppe von Merkmalen wird als Schnittstelle bezeichnet.

Eine Intercom-Schnittstelle kann z. B. Eigenschaften von Lautsprechern und Mikrofonen aufweisen:

Merkmale und Schnittstellen

Ressourcen

Eine Ressource stellt ein logisches oder physisches Element im Schema dar. Ein Nest Protect-Gerät ist beispielsweise eine Ressource. Nest Guard also. Oder ein Nutzer oder eine Struktur, z. B. das Zuhause des Nutzers.

Ressourcen bestehen aus einer Reihe von Merkmalen, die ihre Konfiguration, ihren Zustand und ihre Fähigkeit umschließen.

Die Beziehung zwischen Ressourcen, Schnittstellen und Merkmalen sieht so aus:

Ressourcen, Schnittstellen und Merkmale

Wie du siehst, gibt es einige Merkmale, die z. B. die Bewegungsmerkmale betreffen. Einige Schnittstellen, wie z. B. die Intercom-Schnittstelle, werden auch von anderen Ressourcen genutzt. Merkmale, Schnittstellen und Ressourcen werden einmal im Schema definiert und für verschiedene Ressourcen und Geräte im Weave-System wiederverwendet.

Merkmale

Attribute sind in drei Hauptelemente unterteilt: Properties, Befehle und Ereignisse. Sehen wir uns Beispiele für die einzelnen Merkmalsmerkmale an.

Attribute

Attribute stellen den Status einer Eigenschaft dar. Attribute sind entweder schreibgeschützt oder schreibgeschützt.

Beispiel:

  • Die Softwareversion ist eine Eigenschaft des Attributs „Geräteidentität“. Es ist eine allgemeine Eigenschaft, die die meisten Geräte haben. Alle Thermostate, Kameras und Nest Protect-Geräte haben eine eigene Softwareversion.
  • Bolt State ist eine Eigenschaft des Bolt Lock-Merkmals. Es ist jedoch spezifisch für ein Gerät wie das Yale-×-Nest-Schloss. Bei einem Nest Thermostat kannst du beispielsweise kein Bolzenschloss verwenden.

Befehle

Befehle sind anfragespezifische benutzerdefinierte Aktionsanfragen eines Merkmals mit einer erwarteten Antwort. Sie werden allgemein als benutzerdefinierte Befehle bezeichnet und können auf spezifische Statusänderungen für Eigenschaften erweitert werden. Beispiel:

  • Bolt Lock Change ist ein benutzerdefinierter Befehl, mit dem die Eigenschaft des Bolt-Zustands in der Eigenschaft „Bolt Lock“ geändert wird.
  • PIN-Code des Nutzers festlegen ist ein benutzerdefinierter Befehl, mit dem eine neue Eigenschaft des Nutzers für die PIN-Einstellungen für Nutzer erstellt oder eine vorhandene aktualisiert wird.

Ereignisse

Ereignisse sind Einträge von Ereignissen für ein Merkmal. Sie informieren Abonnenten über Änderungen an Eigenschaften oder anderen Ereignissen, z. B. beim Zurücksetzen des Systems.

Mit dem Ereignis Bolt Actuator State Change der Bolt Lock-Merkmale wird beispielsweise ein Abonnent des aktuellen Status mehrerer Bolt-Schlösser-Properties informiert. Das gilt auch für den Akteur, der die letzte Änderung des Attributs „Bolt Actuator State“ verursacht hat. Alle diese Informationen werden als ein Ereignis bereitgestellt.

Beschreibung der Weave-Schemabeschreibung

Die Schemamerkmale, Schnittstellen und Ressourcen in Weave werden mithilfe einer domainspezifischen Sprache (DSL) definiert und beschrieben, die die Syntax von Google-Protokollzwischenspeichern (Version 3) nutzt. Diese Sprache wird als Weave Schema Description Language (WDL) bezeichnet.

WDL wird über einen Compiler ausgeführt, der verschiedene plattformspezifische Realisierungen und Codierungen generiert. Die Art des generierten Codes hängt von der Ressource ab:

  • Ziel C, Swift, Java, Scala – mobile Apps und Cloud-Dienste
  • C++ mit Weave-TLV-Codierungen – eingebettete Geräte und mobile Apps

Weiter unten gehen wir näher auf WDL-Beispiele ein.

Zusammenfassung

Das haben Sie gelernt:

  • Das Schema beschreibt das zugrunde liegende Datenmodell für ein Weave-System.
  • Im Schema werden drei Elemente definiert:
    • Trait Eine Einheit der Grundfunktionen
    • Schnittstelle Eine Gruppe von Merkmalen, die eine neue, spezifische Funktion darstellen
    • Ressource Eine logische oder physische Sache
  • Eigenschaften enthalten Attribute, Befehle und Ereignisse:
    • Attribut Der Status einer Ressourceneigenschaft
    • Befehle Benutzerdefinierte Anfrage für ein Merkmal
    • Ereignis der Ereignisse für eine Eigenschaft
  • Das Schema wird mithilfe der Weave Schema Description Language (WDL) definiert, die auf Google Protocol Buffers v3 basiert.

Ausführlichere Informationen finden Sie unter: