AWS IoT SiteWise - AWS IoT Core

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.

AWS IoT SiteWise

Die Aktion AWS IoT SiteWise (iotSiteWise) sendet Daten aus einer MQTT-Nachricht an die Asset-Eigenschaften in. AWS IoT SiteWise

Sie können einem Tutorial folgen, das Ihnen zeigt, wie Sie Daten von AWS IoT Dingen aufnehmen können. Weitere Informationen finden Sie im Tutorial Daten AWS IoT SiteWise aus AWS IoT Dingen aufnehmen oder im Abschnitt Daten mithilfe von AWS IoT Kernregeln aufnehmen im AWS IoT SiteWise Benutzerhandbuch.

Voraussetzungen

Diese Regelaktion hat die folgenden Anforderungen:

  • Eine IAM-Rolle, die die Ausführung des Vorgangs übernehmen AWS IoT kann. iotsitewise:BatchPutAssetPropertyValue Weitere Informationen finden Sie unter Gewähren Sie einer AWS IoT Regel den Zugriff, den sie benötigt.

    Sie können die folgende Beispiel-Vertrauensrichtlinie mit der Rolle verknüpfen.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iotsitewise:BatchPutAssetPropertyValue", "Resource": "*" } ] }

    Um die Sicherheit zu erhöhen, können Sie in der Condition Eigenschaft einen Pfad zur AWS IoT SiteWise Asset-Hierarchie angeben. Das folgende Beispiel ist eine Vertrauensrichtlinie, die einen Komponentenhierarchiepfad angibt.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iotsitewise:BatchPutAssetPropertyValue", "Resource": "*", "Condition": { "StringLike": { "iotsitewise:assetHierarchyPath": [ "/root node asset ID", "/root node asset ID/*" ] } } } ] }
  • Wenn Sie AWS IoT SiteWise mit dieser Aktion Daten an senden, müssen Ihre Daten die Anforderungen des BatchPutAssetPropertyValue Vorgangs erfüllen. Weitere Informationen finden Sie BatchPutAssetPropertyValuein der AWS IoT SiteWise API-Referenz.

Parameter

Wenn Sie eine AWS IoT Regel mit dieser Aktion erstellen, müssen Sie die folgenden Informationen angeben:

putAssetPropertyValueEntries

Eine Liste mit Werteinträgen für die Komponenteneigenschaft, die jeweils die folgenden Informationen enthalten:

propertyAlias

(Optional) Der Eigenschaftenalias, der Ihrer Komponenteneigenschaft zugeordnet ist. Geben Sie entweder einen propertyAlias oder sowohl eine assetId als auch eine propertyId an. Weitere Informationen zu Eigenschaftsaliasnamen finden Sie unter Zuordnen von industriellen Datenströmen zu Komponenteneigenschaften im AWS IoT SiteWise -Benutzerhandbuch.

Unterstützt Ersatzvorlagen: Ja

assetId

(Optional) Die ID des AWS IoT SiteWise Assets. Geben Sie entweder einen propertyAlias oder sowohl eine assetId als auch eine propertyId an.

Unterstützt Ersatzvorlagen: Ja

propertyId

(Optional) Die ID der Komponenteneigenschaft. Geben Sie entweder einen propertyAlias oder sowohl eine assetId als auch eine propertyId an.

Unterstützt Ersatzvorlagen: Ja

entryId

(Optional) Ein eindeutiger Bezeichner für diesen Eintrag. Definieren Sie die entryId, um besser zu nachzuverfolgen, welche Nachricht ggf. einen Fehler verursacht hat. Standardmäßig wird eine neue UUID verwendet.

Unterstützt Ersatzvorlagen: Ja

propertyValues

Eine Liste der einzufügenden Eigenschaftswerte, die jeweils Zeitstempel, Qualität und Wert (Timestamp, Quality and Value, TQV) im folgenden Format enthalten:

timestamp

Eine Zeitstempelstruktur, die die folgenden Informationen enthält:

timeInSeconds

Eine Zeichenfolge, die die Zeit in Sekunden in der Unix-Epochenzeit enthält. Wenn Ihre Nachrichtennutzlast keinen Zeitstempel hat, können Sie timestamp() verwenden, der die aktuelle Zeit in Millisekunden zurückgibt. Um diese Zeit in Sekunden zu konvertieren, können Sie die folgende Ersetzungsvorlage verwenden: ${floor(timestamp() / 1E3)}.

Unterstützt Ersatzvorlagen: Ja

offsetInNanos

(Optional) Eine Zeichenfolge, die den Zeitversatz in Nanosekunden von der Zeit in Sekunden enthält. Wenn Ihre Nachrichtennutzlast keinen Zeitstempel hat, können Sie timestamp() verwenden, der die aktuelle Zeit in Millisekunden zurückgibt. Um den Nanosekunden-Zeitversatz von diesem Zeitpunkt zu berechnen, können Sie die folgende Ersetzungsvorlage verwenden: ${(timestamp() % 1E3) * 1E6}.

Unterstützt Ersatzvorlagen: Ja

In Bezug auf die Unix-Epochenzeit werden nur Einträge AWS IoT SiteWise akzeptiert, die einen Zeitstempel von bis zu 7 Tagen in der Vergangenheit und bis zu 5 Minuten in der future haben.

quality

(Optional) Eine Zeichenfolge, die die Qualität des Werts beschreibt. Zulässige Werte: GOOD, BAD, UNCERTAIN.

Unterstützt Ersatzvorlagen: Ja

value

Eine Wertestruktur, die eines der folgenden Wertfelder enthält, je nach Datentyp der Komponenteneigenschaft:

booleanValue

(Optional) Eine Zeichenfolge, die den booleschen Wert des Werteintrags enthält.

Unterstützt Ersatzvorlagen: Ja

doubleValue

(Optional) Eine Zeichenfolge, die den doppelten Wert des Werteintrags enthält.

Unterstützt Ersatzvorlagen: Ja

integerValue

(Optional) Eine Zeichenfolge, die den Ganzzahlwert des Werteintrags enthält.

Unterstützt Ersatzvorlagen: Ja

stringValue

(Optional) Der Zeichenfolgenwert des Werteintrags.

Unterstützt Ersatzvorlagen: Ja

roleArn

Der ARN der IAM-Rolle, die die AWS IoT Berechtigung zum Senden eines Vermögenseigenschaftswerts an AWS IoT SiteWise erteilt. Weitere Informationen finden Sie unter Voraussetzungen.

Unterstützt Ersatzvorlagen: Nein

Beispiele

Das folgende JSON-Beispiel definiert eine grundlegende SiteWise IoT-Aktion in einer AWS IoT Regel.

{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "iotSiteWise": { "putAssetPropertyValueEntries": [ { "propertyAlias": "/some/property/alias", "propertyValues": [ { "timestamp": { "timeInSeconds": "${my.payload.timeInSeconds}" }, "value": { "integerValue": "${my.payload.value}" } } ] } ], "roleArn": "arn:aws:iam::123456789012:role/aws_iot_sitewise" } } ] } }

Das folgende JSON-Beispiel definiert eine SiteWise IoT-Aktion in einer AWS IoT Regel. In diesem Beispiel wird das Thema als Eigenschaftsalias und die timestamp() Funktion verwendet. Wenn Sie beispielsweise Daten in /company/windfarm/3/turbine/7/rpm veröffentlichen, sendet diese Aktion die Daten an die Komponenteneigenschaft mit einem Eigenschaftsalias, der dem von Ihnen angegebenen Thema entspricht.

{ "topicRulePayload": { "sql": "SELECT * FROM '/company/windfarm/+/turbine/+/+'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "iotSiteWise": { "putAssetPropertyValueEntries": [ { "propertyAlias": "${topic()}", "propertyValues": [ { "timestamp": { "timeInSeconds": "${floor(timestamp() / 1E3)}", "offsetInNanos": "${(timestamp() % 1E3) * 1E6}" }, "value": { "doubleValue": "${my.payload.value}" } } ] } ], "roleArn": "arn:aws:iam::123456789012:role/aws_iot_sitewise" } } ] } }

Weitere Informationen finden Sie auch unter