Arbeiten mit Befehlsdefinitionen

Abgeschlossen

Häufig führen eine Reihe von IoT-Geräte die gleichen Aktionen aus oder haben die gleichen Eigenschaften, die zurückgemeldet werden und mit denen Sie möglicherweise interagieren müssen. Während eine generierte IoT-Warnung spezifisch für ein Gerät ist, gibt es viele gemeinsame Eigenschaften zwischen Geräten, mit denen interagiert werden muss. Jeder Befehl, den Sie zur Übermittlung an ein Gerät erstellen, gibt an, welche der verschiedenen Eigenschaften gerade für das bestimmte Gerät verwendet werden.

Senden von Meldungen

Beispielsweise soll eine Meldung an ein Gerät zurück übermittelt werden, die es dem Gerät (oder der Anzeige auf dem Gerät) ermöglicht, zu erahnen, dass ein Techniker entsendet wurde, um das Problem zu lösen. Jedes Mal, wenn dies an ein Gerät kommuniziert werden soll, könnte ein Befehl in Connected Field Service erstellt werden, der die folgende JSON-Meldung enthält:

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

Im obigen Beispiel gibt es drei spezifische Komponenten, die als Teil der Nachricht an das Gerät gesendet werden.

  • CommandName: Dieser stellt dem Namen des Befehls dar, der auf dem Gerät festgelegt wird.

    (Im vorstehenden Befehl lautet der Befehlsname z. B. „Benachrichtigung“)

  • Parameter: Dienen zum Melden spezifischer Eigenschaften, mit denen als Teil des Befehls interagiert wird. Dazu zählen alle Eigenschaften, mit denen der Befehl interagiert.

    Dies umfasst im vorstehenden Befehl z. B. alles, was Parametern folgt (in diesem Fall steht „Nachricht“ für Eigenschaften, mit denen als Teil dieses Befehls interagiert wird)

  • Eigenschaft: Die spezifische Eigenschaft, mit der interagiert werden soll, und der Wert, der an die Eigenschaft gesendet werden soll. Eigenschaften werden in der Regel als Name-Wert-Paare definiert.

    („Nachricht“ steht z. B. für die Nachrichteneigenschaft, die verwendet werden kann, um eine Nachricht an das Gerät zu senden. „Techniker wurde entsendet“ ist der tatsächliche Wert, der an die Nachrichteneigenschaft weitergegeben wird.)

Solange Sie die Möglichkeit haben, definieren Sie mithilfe des oben angegebenen Formats den JSON-Code manuell für jeden zu sendenden Befehl. In der Realität kann es dazu führen, dass möglicherweise viele verschiedene Befehle definiert werden müssen, die alle dasselbe bewirken. Eine Befehlsdefinition kann diesen Prozess vereinfachen. Eine Befehlsdefinition ist im Wesentlichen ein Wrapper, der den „Befehlsnamen“ und die „Parameter“, die Sie in einem Befehl verwenden möchten, vorab definiert. Durch das Vordefinieren spezifischer Parameter, die in einem spezifischen Befehl verwendet werden, können Benutzer und/oder Automatisierungsprozesse nur die Eigenschaftswerte ändern, die auf Basis dessen, was mit dem gesendeten Befehl ausgeführt werden soll, geändert werden müssen. Beim Erstellen eines Befehls wählt der Benutzer/der Prozess einfach die Befehlsdefinition aus, die verwendet werden soll.

Benachrichtigung

Das Bild unten stellt eine Befehlsdefinition mit der Bezeichnung „Benachrichtigung“ dar, die automatisch dasselbe JSON-Objekt aus unserem ursprünglichen Beispiel generiert.

Screenshot einer Befehlsdefinition mit der Bezeichnung „Benachrichtigung“

Jede definierte Befehlsdefinition kann einer oder mehreren „Eigenschaftsdefinitionen“ zugeordnet werden. Eine Eigenschaftsdefinition stellt einen bestimmten Parameter dar, der als Teil eines Befehls verwendet wird. Alle Parameter, die für eine Befehlsdefinition definiert werden, werden automatisch mit Standardwerten ausgefüllt, die für die verwendete, spezifische Eigenschaftsdefinition definiert wurden. Diese vordefinierten Werte lassen sich entweder verwenden wie sie sind, oder können überschrieben werden, wenn der tatsächliche Befehl erstellt wird. Zur Unterstützung bei der Klassifizierung und der Bereitstellung kann eine Befehlsdefinition auch mehreren Gerätekategorien zugeordnet werden.

Hinweis

Eigenschaftendefinitionen gehören nicht zum Umfang dieser Übungseinheit und werden ausführlicher in der nächsten Einheit besprochen.

Das Bild unten zeigt, wie eine Nachricht in einem Befehl aussehen würde, wenn wir die oben angezeigte Befehlsdefinition „Benachrichtigung“ zur Definition der Nachricht verwenden würden. Die Nachricht wird in einem Designfenster angezeigt, das uns informiert, dass der CommandNameBenachrichtigung“ lautet und dass es sich bei den gesendeten Parametern um die Eigenschaft „Nachricht“ handelt (diese wird durch eine Eigenschaftsdefinition definiert). Die Nachricht lautet „Techniker wurde entsendet“. Dies ist der Standardtext, der in der Eigenschaftsdefinition „Nachricht“ definiert ist). Der Nachrichtentextwert kann im Designfenster geändert werden, damit sich ein beliebiger Text in der Nachricht übermitteln lässt.

Screenshot der zu sendenden Nachricht bei Verwendung der Definition des Benachrichtigungsbefehls

Das Nachrichtendesignfenster enthält auch eine Schaltfläche zum Umschalten zwischen der Nachrichtendesigneransicht und dem tatsächlichen JSON-Befehl, der als Teil der Meldung übermittelt wird. Wenn wir die folgende Nachricht betrachten, sehen wir, dass die JSON mit dem Beispiel „Benachrichtigung“ übereinstimmt, das am Anfang dieser Einheit angezeigt wurde.

Screenshot der Umschaltfläche „Zur Designeransicht wechseln“

Zwar lässt sich der Prozess zur Erstellung von an Geräte zu sendende Befehlen dank der Befehlsdefinitionen leichter optimieren. Doch aufgrund der Eigenschaftendefinitionen können bestimmte Werte, die in einem Befehl übergeben werden sollen, mithilfe von Automatisierungsvorgängen wie Workflows und Power Automate einfacher identifiziert und manipuliert werden.

In der nächsten Lektion befassen wir uns eingehender mit Eigenschaftsdefinitionen und behandeln die bei deren Erstellung verfügbaren, verschiedenen Optionen, die mehr Flexibilität bei der Nutzung von Befehlen und Befehlsdefinitionen versprechen.