Arbeiten mit Geräteeigenschaften und Eigenschaftsdefinitionen

Abgeschlossen

Mit Eigenschaftendefinitionen können bestimmte Eigenschaften, die IoT-Geräten zugeordnet werden, einfach vordefiniert werden. Eigenschaftsdefinitionen können in zwei Hauptbereichen genutzt werden.

  • Unterstützung bei der Synchronisierung von und Kommunikation mit Gerätezwillingen

  • Optimiertes Auffüllen der Eigenschaften in den Befehlsdefinitionen.

Eine Eigenschaftsdefinition enthält die folgenden Informationen:

  • Name: Der Name der spezifische Eigenschaft. In unserem vorstehenden Beispiel würde „Meldung“ als Name festgelegt werden, da dies die „Eigenschaft“ ist, die wir definieren möchten.

  • Typ: Definiert den Typ der Eigenschaft. Sie können aus sechs verschiedenen Typen wählen.

Typ Beschreibung
Zeichenfolge Wird verwendet, wenn der Wert, den Sie an eine Eigenschaft übergeben möchten, ein textbasierter Wert ist. Zusätzliche Eigenschaften umfassen: maximale Länge und Standardwert. Beispiel: Eine Nachrichteneigenschaft würde den Zeichenfolgentyp verwenden, da der Inhalt der Nachricht Text ist.
Datum und Uhrzeit Wird verwendet, wenn der Wert, den Sie an eine Eigenschaft weiterleiten möchten, auf einem Datum und/oder einer Uhrzeit basiert. Zusätzliche Eigenschaften enthalten: Mindest- und Höchstwerte.
Boolesch Wird verwendet, wenn Sie einen von zwei möglichen Werten an eine Eigenschaft weiterleiten möchten. Zusätzliche Eigenschaften enthalten: Anzeigename für „true“, Anzeigename für „false“ und Standardwert.
Ganze Zahl Wird verwendet, wenn Sie eine Gesamtzahl an die Eigenschaft weiterleiten möchten. Zusätzliche Eigenschaften enthalten: Mindest-, Höchst- und Standardwert.
Dezimalzahl Wird verwendet, wenn Sie eine Dezimalzahl an die Eigenschaft weiterleiten möchten. Zusätzliche Eigenschaften enthalten: Mindest-, Höchst- und Standardwert sowie Dezimalstellen.
Objekt Wird verwendet, wenn es sich bei dem Artikel, den Sie weiterleiten möchten, um ein Objekt handelt. Beispiel: Eine Messungseigenschaft enthält möglicherweise eine Temperatur- sowie Feuchtigkeitseigenschaft. Wenn Sie die Leseeigenschaft auf einen Objekttyp festlegen, können Sie spezifische Untereigenschaften für dieses Objekt definieren. (Mehr dazu später)
  • Übergeordnete Eigenschaft: Gibt an, dass die Eigenschaft eine untergeordnete Eigenschaft einer anderen Eigenschaft ist.

  • Bearbeitbar: Gibt an, ob die Eigenschaft bearbeitbar ist, wenn sie in einer Befehlsdefinition verwendet wird.

  • Sichtbar: Gibt an, ob es sich um eine ausgeblendete Eigenschaft handelt, die nicht in der Befehlsdefinition angezeigt werden soll.

  • Zusätzliche Eigenschaften: Zusätzliche Elemente, die für diesen Eigenschaftstyp spezifisch sind und definiert werden können. Zum Beispiel: Eine Standardtextzeichenfolge, die mit einer Nachrichteneigenschaft verwendet wird. (Zusätzliche Eigenschaften hängen vom gewählten Typ ab.)

Eigenschaftsdefinitionen mit Gerätezwillingen verwenden

Nehmen wir an, Sie wollen mit Hilfe von Gerätetags den genauen Standort eines IoT-Gerätes definieren. Normalerweise befinden sich Ihre Geräte in einem Gebäude und auf einer bestimmten Etage. Eine Eigenschaftsdefinition kann verwendet werden, um die Markierung zu definieren. Der Tag wird automatisch auf jedem Gerät, das zu dieser Kategorie gehört, eingefügt, wenn er zu einer Gerätekategorie hinzugefügt wird.

Screenshot der Geräteeinstellungen mithilfe von Eigenschaftsdefinitionen mit Gerätezwillingen

Wenn Sie die Eigenschaftsdefinition zu einer Gerätekategorie hinzufügen, können Sie sie entweder als Tag markieren oder nicht als Tag markieren. Wenn Sie sie als Tag markieren, wird sie als Geräte-Tag auf dem Gerät angezeigt. Wenn Sie sie nicht als Tag markieren, wird sie als Geräteeinstellung angezeigt.

Screenshot der Funktion „Als Tag markieren“ mit der Markierung „Ja“

Eigenschaftsdefinitionen in Befehlsdefinitionen verwenden

Wenn Sie sich die Daten ansehen, die als Teil einer IoT-Warnung gesendet werden oder einen Remote-Befehl an ein Gerät senden, sehen Sie verschiedene Eigenschaften, die mit den Warnungsdaten oder der zu sendenden Nachricht zusammenhängen. Die Eigenschaften stellen ein Name-/Wert-Paar dar, das relevante Parameter in Bezug auf das Ereignis anzeigt oder zur Verfügung stellt.

Zum Beispiel:

  • Eine temperaturbezogene IoT-Gerätewarnung könnte die Geräte-ID, den Messwerttyp, den aktuellen Messwert, den Messwert oder den überschrittenen Schwellenwert enthalten.

  • Ein Befehl, den Sie an ein IoT-Gerät zurücksenden, enthält möglicherweise die zu sendende Nachricht oder einen spezifischen Wert, den Sie für eine Eigenschaft festlegen möchten.

Das folgende Bild zeigt, wie die Eigenschaften für beide Befehle, die an ein Gerät (linkes Bild) und IoT-Warnungen (rechtes Bild) gesendet werden, angezeigt werden.

Screenshots der Eigenschaften für beide an ein Gerät gesendeten Befehle und IoT-Warnungen

Wie in der vorherigen Lerneinheit erwähnt, können Befehlsdefinitionen verwendet werden, um vordefinierte Befehle zu erstellen, die die spezifischen Parameter, mit denen Sie arbeiten wollen, vordefiniert haben. Dies erfolgt durch Erstellen von Eigenschaftsdefinitionen und Zuordnen dieser Eigenschaftsdefinitionen zu bestimmten Befehlsdefinitionen. Eine Eigenschaftsdefinition definiert spezifische Details über die Eigenschaft, die an den Befehl übergeben wird.

Sehen wir uns den folgenden Beispielbefehl an:

{"CommandName":"Notification","Parameters":{"Message":"Technician has been dispatched"}}

Die Parameter sind die spezifischen Eigenschaften, die wir in den Befehl aufnehmen wollen. Die „Nachricht“-Eigenschaft gibt an, dass wir eine Nachricht an das Gerät senden möchten. Der Text ist die Nachricht, die wir in die Nachricht aufnehmen möchten. Die Eigenschaft „Nachricht“ oben ist ein gutes Beispiel für die Verwendung von Eigenschaftsdefinitionen.

Mit übergeordneten Eigenschaften arbeiten

Oftmals hat eine Eigenschaft mehrere Untereigenschaften, die die gesamte Eigenschaftsdefinition bilden. In diesem Fall können Sie die Eigenschaft „Übergeordnete Eigenschaften“ verwenden, um sie mit mehreren Untereigenschaften zu verknüpfen.

Sehen wir uns das folgende Beispiel an:

{"CommandName":"Set Values","Parameters":{"Reading":{"Temperature":"30","Humidity":"30"}}}

In diesem Beispiel würde der Messwert als die übergeordnete Eigenschaft für Temperatur und Luftfeuchtigkeit betrachtet. Wir setzen den Messwerttyp auf „Objektׅ“. Damit wird definiert, dass die Leseeigenschaft als ein Objekt betrachtet werden soll. Sie kann weitere Eigenschaften enthalten, die den Gesamtwert ausmachen.

Screenshot des Lesevorgangs als übergeordnete Eigenschaft und des auf „Objekt“ festgelegten Typs

Sowohl die Temperatur- als auch die Feuchtigkeitseigenschaft haben die „Lesen“-Eigenschaftsdefinition als übergeordnete Eigenschaft. Wenn wir eine Befehlsdefinition erstellen, die die Leseeigenschaft nutzen soll, müssen wir nur einen Verweis auf die Leseeigenschaftsdefinition einfügen. Da Lesen einen Objekttyp hat und sowohl Temperatur als auch Luftfeuchtigkeit Messwerte als übergeordnete Eigenschaft haben, stellt dies sicher, dass bei Verwendung der Leseeigenschaft sowohl die Temperatur- als auch die Luftfeuchtigkeitseigenschaften einbezogen werden.

Die folgende Abbildung zeigt, wie eine Befehlsnachricht aussehen würde, wenn eine Befehlsdefinition verwendet wird, die die Leseeigenschaftsdefinition enthält.

Screenshot der Befehlsnachricht mit der Befehlsdefinition, die die Definition der Leseeigenschaft enthält

Sie können sehen, dass sie unter dem Parameter die Leseeigenschaft beinhaltet. Die Leseeigenschaft umfasst die Temperatur- und Feuchtigkeitseigenschaft mit den Anfangswerten auf Basis der definierten Standardwerte. Diese einzelnen Werte können je nach Bedarf bearbeitet werden, wenn der Befehl erstellt wird.

Dasselbe würde gelten, wenn Sie die Eigenschaftsdefinition zum Auffüllen eines Geräte-Tags oder einer Geräteeinstellung verwenden würden.

Sehen wir uns unten ein mögliches Beispiel für einen Geräte-Tag an:

{"deploymentlocation":{"building":"34","floor":"3"}}

Hier würde deploymentlocation als die übergeordnete Eigenschaft für Gebäude und Etage betrachtet werden. Wir würden deploymentlocation-Typ auf Objekt festlegen und sowohl „Gebäude“ als auch „Etage“ würden deploymentlocation als übergeordnetes Objekt festlegen.

Screenshot von „deploymentlocation“ als die übergeordnete Eigenschaft für Gebäude und Etagen.