Abfragen von Benachrichtigungsmeldungen für Komponenteneigenschaften - AWS IoT SiteWise

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Abfragen von Benachrichtigungsmeldungen für Komponenteneigenschaften

Um Benachrichtigungen über Vermögenseigenschaften abzufragen, erstellen Sie AWS IoT Core Regeln, die aus SQL-Anweisungen bestehen.

AWS IoT SiteWise veröffentlicht Aktualisierungen von Objektdaten in AWS IoT Core im folgenden Format.

{ "type": "PropertyValueUpdate", "payload": { "assetId": "String", "propertyId": "String", "values": [ { "timestamp": { "timeInSeconds": Number, "offsetInNanos": Number }, "quality": "String", "value": { "booleanValue": Boolean, "doubleValue": Number, "integerValue": Number, "stringValue": "String" } } ] } }

Jede Struktur in der values Liste ist eine timestamp-quality-value (TQV-) Struktur.

  • timestamp enthält die aktuelle Unix-Epoche in Sekunden mit Nanosekunden-Offset.

  • quality enthält eine der folgenden Zeichenfolgen zur Angabe der Qualität des Datenpunkts:

    • GOOD— Die Daten sind von keinen Problemen betroffen.

    • BAD— Die Daten sind von einem Problem wie einem Sensorausfall betroffen.

    • UNCERTAIN— Die Daten sind von einem Problem wie einer Sensorungenauigkeit betroffen.

  • value enthält abhängig vom Typ der Eigenschaft eines der folgenden Felder:

    • booleanValue

    • doubleValue

    • integerValue

    • stringValue

Um Werte aus dem values-Array zu analysieren, müssen Sie in den SQL-Anweisungen Ihrer Regeln komplexe verschachtelte Objektabfragen verwenden. Weitere Informationen finden Sie im AWS IoT Entwicklerhandbuch unter Abfragen verschachtelter Objekte. Ein konkretes Beispiel für das Analysieren von Benachrichtigungen über Asset-Eigenschaften finden Sie im Veröffentlichung von Eigenschaftswertaktualisierungen in Amazon DynamoDB Tutorial.

Beispielabfrage zum Extrahieren des Werte-Arrays

Die folgende Anweisung veranschaulicht, wie das Array aktueller Eigenschaftswerte für eine bestimmte Eigenschaft vom doppelten Typ für alle Komponenten mit dieser Eigenschaft abgefragt wird.

SELECT (SELECT VALUE (value.doubleValue) FROM payload.values) AS windspeed FROM '$aws/sitewise/asset-models/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE/assets/+/properties/a1b2c3d4-5678-90ab-cdef-33333EXAMPLE' WHERE type = 'PropertyValueUpdate'

Die vorherige Anweisung zur Regelabfrage gibt Daten im folgenden Format aus.

{ "windspeed": [ 26.32020195042838, 26.282584572975477, 26.352566977372508, 26.283084346171442, 26.571883739599322, 26.60684140743005, 26.628738636715045, 26.273486932802125, 26.436379105473964, 26.600590095377303 ] }
Beispielabfrage zum Extrahieren eines einzelnen Wertes

Die folgende Anweisung veranschaulicht, wie der erste Wert aus dem Array von Eigenschaftswerten für eine bestimmte Eigenschaft vom doppelten Typ für alle Komponenten mit dieser Eigenschaft abgefragt wird.

SELECT get((SELECT VALUE (value.doubleValue) FROM payload.values), 0) AS windspeed FROM '$aws/sitewise/asset-models/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE/assets/+/properties/a1b2c3d4-5678-90ab-cdef-33333EXAMPLE' WHERE type = 'PropertyValueUpdate'

Die vorherige Anweisung zur Regelabfrage gibt Daten im folgenden Format aus.

{ "windspeed": 26.32020195042838 }
Wichtig

Diese Regelabfrageanweisung ignoriert Wertaktualisierungen, abgesehen vom ersten in jedem Stapel. Jeder Stapel kann bis zu 10 Werte enthalten. Wenn Sie die verbleibenden Werte einschließen müssen, ist es erforderlich, eine komplexere Lösung einzurichten, um Eigenschaftswerte der Komponenten an andere Services auszugeben. Sie können beispielsweise eine Regel mit einer AWS Lambda Aktion einrichten, um jeden Wert im Array erneut in einem anderen Thema zu veröffentlichen, und eine weitere Regel einrichten, um dieses Thema abzufragen und jeden Wert in der gewünschten Regelaktion zu veröffentlichen.