如何从IoT Core中获取字符串时间戳并将其导入到SitWise中。

0

【以下的问题经过翻译处理】 我正在尝试通过IoT Core将一些数据传递到SiteWise中,但我一直从规则中得到这个结果:

"details": "执行替换模板后,PutAssetPropertyValueEntries为空。消息到达时间:,操作:iotSiteWise"

我认为原因是这样的:

注意
由于替换模板中的表达式与SELECT语句分开评估,因此您不能使用替换模板引用使用AS子句创建的别名。您只能引用原始负载中存在的信息,以及支持的函数和运算符。

我试图这样做作为源:

SELECT fields.rms0, fields.rms1, fields.rms2, time_to_epoch(timestamp, "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")/1000 as ts

但我从文档中发现这不起作用。在规则中,我尝试另一种方式:在时间戳映射中(在UI中),我试图将时间设置为:

${time_to_epoch(timestamp, "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")/1000}

但那也不起作用——它给了我一个错误,说它不理解time_to_epoch。

接下来,我尝试回到这个:

SELECT *

在写入到SiteWise的规则中,我将所有时间戳字段设置为:

${floor(time_to_epoch(timestamp, "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'") / 1E3)}

按照手册。

"resources": {
    "FunctionName": "time_to_epoch"
},
"details": "未定义的结果"
"resources": {
    "FunctionName": "floor"
},
"details": "未定义的结果"

所以我没有取得太大的成功。有没有办法记录BatchPutAssetPropertyValue请求中包含的内容?

profile picture
专家
已提问 5 个月前17 查看次数
1 回答
0

【以下的回答经过翻译处理】 我通过将这条消息发布到物联网进行了模拟:

{
  "rms0": 1.4,
  "rms1": 2.2,
  "timestamp": "2022-03-10T08:26:00.500Z"
}

规则使用了SELECT *,并且对于**时间(秒)**采取以下设置:

${floor(time_to_epoch(timestamp, "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'") / 1E3)}

数据在Sitewise中的时间戳为2022年3月10日 16:26:00(UTC+8:00)

希望这可以帮到您。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则