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.
Benachrichtigungen über Vermögenseigenschaften abfragen
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 komplexe Abfragen verschachtelter Objekte in den Anweisungen Ihrer Regeln verwenden. SQL Weitere Informationen finden Sie unter Abfragen verschachtelter Objekte im AWS IoT Entwicklerhandbuch oder im Aktualisierungen von Immobilienwerten in Amazon DynamoDB veröffentlichen Tutorial finden Sie ein konkretes Beispiel für das Analysieren von Benachrichtigungen über Asset-Eigenschaften.
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.