Messages de notification relatifs aux propriétés des actifs - AWS IoT SiteWise

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Messages de notification relatifs aux propriétés des actifs

Pour interroger les notifications relatives aux propriétés des actifs, créez des AWS IoT Core règles composées d'SQLinstructions.

AWS IoT SiteWise publie les mises à jour des données relatives aux propriétés des actifs dans AWS IoT Core au format suivant.

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

Chaque structure de la values liste est une structure timestamp-quality-value (TQV).

  • timestamp contient l'heure d'époque Unix actuelle en secondes avec un décalage en nanosecondes.

  • La métrique quality contient l'une des chaînes suivantes, qui indiquent la qualité du point de données :

    • GOOD— Les données ne sont affectées par aucun problème.

    • BAD— Les données sont affectées par un problème tel qu'une défaillance du capteur.

    • UNCERTAIN— Les données sont affectées par un problème tel que l'imprécision du capteur.

  • value contient l'un des champs suivants, selon le type de la propriété :

    • booleanValue

    • doubleValue

    • integerValue

    • stringValue

Pour analyser les valeurs du values tableau, vous devez utiliser des requêtes d'objets imbriqués complexes dans les instructions de vos règlesSQL. Pour plus d'informations, consultez la section Requêtes d'objets imbriqués dans le guide du AWS IoT développeur ou consultez le Publier les mises à jour de la valeur des propriétés sur Amazon DynamoDB didacticiel pour un exemple spécifique d'analyse des messages de notification relatifs aux propriétés des actifs.

Exemple d’interrogation pour extraire le tableau de valeurs

L'instruction suivante montre comment interroger le tableau de valeurs de propriété mises à jour pour une propriété de type double spécifique sur toutes les ressources avec cette propriété.

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'

L'instruction d’interrogation de la règle précédente génère les données dans le format suivant.

{ "windspeed": [ 26.32020195042838, 26.282584572975477, 26.352566977372508, 26.283084346171442, 26.571883739599322, 26.60684140743005, 26.628738636715045, 26.273486932802125, 26.436379105473964, 26.600590095377303 ] }
Exemple d’interrogation pour extraire une valeur unique

L'instruction suivante montre comment interroger la première valeur du tableau de valeurs de propriété pour une propriété de type double spécifique sur tous les actifs avec cette propriété.

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'

L'instruction d’interrogation de la règle précédente génère les données dans le format suivant.

{ "windspeed": 26.32020195042838 }
Important

Cette instruction de requête de règle ignore les mises à jour de valeurs autres que la première dans chaque lot. Chaque lot peut contenir jusqu'à 10 valeurs. Si vous devez inclure les valeurs restantes, vous devez configurer une solution plus complexe pour générer des valeurs de propriété de ressources vers d'autres services. Par exemple, vous pouvez définir une règle avec une AWS Lambda action permettant de republier chaque valeur du tableau dans un autre sujet, et définir une autre règle pour interroger ce sujet et publier chaque valeur selon l'action de règle souhaitée.