我有几个 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,然后通过流分析进一步分析和分发?
谢谢!