Watson IoT Platform 数据映射 - 预先格式化或在平台内执行



我刚刚开始使用IBM Watson IoT Platform。我试图弄清楚我应该在哪里解决我的问题。请记住,我无法更改远程设备本身。

背景:

我们使用的第三方传感器在单独的 HTTP 帖子中将数据作为多个 JSON 字符串发送给我们。我正在通过 HTTP API 转发数据

curl -v -X POST -H "Content-Type: application/json" -u "use-token-auth:passw0rd" -d @message.txt https://myOrgID.messaging.internetofthings.ibmcloud.com:8883/api/v0002/device/types/TestDevices/devices/TestPublishEvent/events/TestMessage

例如 该设备具有多个传感器,并为每个读数发送一条HTTP消息。

消息.txt可以是:

{
"device": "device001",
"timestamp": "2018-05-18T11:16:00.000+0000",
"sensor": "Temp",
"value": "32.2",
"unit": "C"
}

消息.txt也可以是:

{
"device": "device001",
"timestamp": "2018-05-18T11:16:00.000+0000",
"sensor": "Particles",
"value": "200",
"unit": "P_4.00_UM"
}

有x数量的传感器可以有y种类型的单位。 例如,温度读数的摄氏度和华氏度。粒子有十几种尺寸。目前有一个设备。

目前,我将数据推送到平台中,但我无法弄清楚如何处理通过单个端点传入的多个传感器读数,每个消息一个读数。我不知道我应该把逻辑放在哪里。

  1. 我可以编写一个 IBM Cloud 函数,根据基于过滤器的数据将数据发送到特定的"主题"。
  2. 或者,也许可以通过在那里有一个HTTPS侦听器来将其映射为节点红色。
  3. 我认为可以配置 WIOTP 来处理我的情况,但我缺少一些重要的东西。

我正在寻找有关如何继续的指针,谢谢。

如果可能,您可以从 POST 阶段开始。发布调用类似于:

/device/types/{typeId}/devices/{deviceId}/events/{eventName}

您可以将 {eventName} 替换为 Temp 或 Particles(或任何其他值(。

另外,你暴露的3个想法非常好。我会选择第一个选项(如果是生产(,如果还有其他选项,我会选择第二个选项(这也是最简单的一个(。

对于第三个,您可以检查WIOTP的数据管理:

https://console.bluemix.net/docs/services/IoT/GA_information_management/ga_im_definitions.html#definitions_resources

丹尼尔

最新更新