使用 API 摄取数据 AWS IoT SiteWise - AWS IoT SiteWise

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 API 摄取数据 AWS IoT SiteWise

使用 AWS IoT SiteWise API 将带有时间戳的工业数据发送到您的资产属性和测量属性。API 接受包含 timestamp-quality-value (TQV) 结构的有效负载。

使用BatchPutAssetPropertyValue操作上传您的数据。通过此操作,您可以一次上传多个数据条目,从多个设备收集数据,并在单个请求中将其全部发送。

重要

BatchPutAssetPropertyValue操作受以下配额的约束:

  • 每个请求最多 10 个条目

  • 每个条目最多 10 个属性值(TQV 数据点)。

  • AWS IoT SiteWise 拒绝任何时间戳超过过去 7 天或将来 10 分钟以上的数据。

有关这些配额的更多信息,请参阅 AWS IoT SiteWise API 参考BatchPutAssetPropertyValue中的。

要标识资产属性,请指定以下选项之一:

  • 数据发送到propertyId的资产属性的assetId和。

  • propertyAlias,这是一个数据流别名(例如,/company/windfarm/3/turbine/7/temperature)。要使用此选项,您必须首先设置资产属性的别名。要设置属性别名,请参见将工业数据流映射到资产属性

以下示例演示了如何从存储在 JSON 文件中的负载发送风力涡轮机的温度和每分钟转数 (RPM) 读数。

aws iotsitewise batch-put-asset-property-value --cli-input-json file://batch-put-payload.json

batch-put-payload.json 中的示例负载包含以下内容。

{ "entries": [ { "entryId": "unique entry ID", "propertyAlias": "/company/windfarm/3/turbine/7/temperature", "propertyValues": [ { "value": { "integerValue": 38 }, "timestamp": { "timeInSeconds": 1575691200 } } ] }, { "entryId": "unique entry ID", "propertyAlias": "/company/windfarm/3/turbine/7/rpm", "propertyValues": [ { "value": { "doubleValue": 15.09 }, "timestamp": { "timeInSeconds": 1575691200 }, "quality": "GOOD" } ] } ] }

负载中的每个条目都包含一个 entryId,您可以将其定义为任何唯一的字符串。如果任何请求条目失败,则每个错误都将包含相应请求的 entryId,以便您知道要重试的请求。

列表中的每个结构都propertyValues是一个 timestamp-quality-value (TQV) 结构,其中包含 a value timestamp、a 和(可选)。quality

  • value – 包含下列字段之一的结构,具体取决于要设置的属性的类型:

    • booleanValue

    • doubleValue

    • integerValue

    • stringValue

  • timestamp – 包含当前 Unix 纪元时间(以秒为单位)的结构,timeInSeconds如果您有时间精确的数据,也可以在timestamp结构中设置offsetInNanos密钥。 AWS IoT SiteWise 拒绝任何时间戳在过去超过 7 天或将来超过 10 分钟的数据点。

  • quality –(可选)以下质量字符串之一:

    • GOOD –(默认)数据不受任何问题的影响。

    • BAD – 数据受传感器故障等问题的影响。

    • UNCERTAIN – 数据受传感器不准确等问题的影响。

    有关如何在计算中 AWS IoT SiteWise 处理数据质量的更多信息,请参阅公式表达式中的数据质量