如何从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
EXPERTE
gefragt vor 5 Monaten18 Aufrufe
1 Antwort
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
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen