1

我有几个 IoT 设备(代码是 Java),它们依次连接到本地的多个单元。这些单元中的每一个都向物联网设备报告数据,物联网设备将所有数据发布在嵌套对象的可变数组中,这些对象也有数组:

{
  "data":{
  "version":"1.2.3",
  "sensorData":{
     "a":18.50733137829912,
     "b":8.165982404692084,
     "c":20.75894428152493,
  },
  "units":[
     {
        "address":"192.168.254.16",
        "name":"Unit 1",
        "connectors":[
           {
              "id":1,
              "measurement":{
                 "a":13.44,
                 "b":0.0,
                 "c":0.0
              },
              "status":"running"               
           }
        ]
     },
     {
        "address":"192.168.254.17",
        "name":"Unit 2",
        "connectors":[
           {
              "id":1,
              "measurement":{
                 "a":0.0,
                 "b":0.0,
                 "c":0.0
              },
              "status":"initialized",
           }
        ]
     }
  ]
 },
   "notificationType":"Status",
   "type":"Notification"
 }

理想情况下,我希望能够继续像 Contoso 示例这样的仪表板应用程序并单击此 IoT 设备,并查看在 sensorData 上显示 a、b、c 的图形,该图形是平坦且固定的,但也显示“单元 1”和“Unit 2”分别作为曲线,例如“Unit 1 - a”、“Unit 1 - b”、“Unit 1 - c”,或将它们聚合为“Unit 1 - total”。这可能与提供的数据吗?

例子

我也是

  • “按原样”发布这些数据并以某种方式使用符号来获取嵌套数据并聚合?
  • 在 IoT 设备上对其进行处理以将其展平,例如 unit1_name、unit1_address、unit1_connector_1_a、unit1_connector_1_b、unit1_connector_1_c 等。
  • “按原样”发布这些数据,并在数据到达应用程序之前以与本地相同的方式处理/展平数据(通过流分析?)

我见过的所有样本都具有“扁平”结构,例如根 json 对象上的温度和压力,所以我不确定在这里前进的最佳方式是什么。

这如何适应 Application Insights?我也有“开始”、“停止”等事件,我是否应该为此使用遥测客户端(在 Application Insights for Java 中)?记录呢?使用 log4j2。一切都通过 DeviceClient,然后通过流分析进一步分析和分发?

谢谢!

4

1 回答 1

1

IoT Central 当前仅支持用于设备测量的平面 JSON。因此,在形成要发布到 IoT 中心的有效负载时,将设备上的 JSON 展平。对于诸如“开始”、“停止”之类的事件,您可以使用状态测量

Azure IoT Central 是与 Application Insights 不同的产品。Application Insights 的主要关注点是应用程序/用户监控,而 IoT Central 仅关注 IoT 场景并且具有完全不同的堆栈。

于 2018-10-29T19:54:40.460 回答