【发布时间】:2018-10-26 07:49:44
【问题描述】:
我代表硬件开发人员问这个问题(我在设备方面没有太多知识)。
目前,IoT 中心每 2 分钟从设备接收一次数据,由于某些原因,计划将数据与设备一起本地存储并每 30 分钟发送一次。但问题是,数据没有被保存到存储中。 2 分钟的数据正在保存到存储中。但是30分钟的数据不是 正确保存到存储中。只有数组中的第一个对象被保存。
我正在使用流分析来处理来自 IoT 中心的数据并将数据存储到表存储中。
当前消息 Json 数据(每 2 分钟)为:
{
"deviceid": "testdevice12",
"BatteryVoltage": "31.31",
"PanelVoltage": "0.00",
"PanelCurrent": "0.00",
"OutputVoltage": "31.29",
"OutputCurrent": "4.94",
"RSSI": "13",
"FreeHeapSize": "86.884",
"timestamp": 1540470493
}
30 分钟后将如下所示:
[{
"deviceid": "testdevice12",
"BatteryVoltage": "31.31",
"PanelVoltage": "0.00",
"PanelCurrent": "0.00",
"OutputVoltage": "31.29",
"OutputCurrent": "4.94",
"RSSI": "13",
"FreeHeapSize": "86.884",
"timestamp": 1540470493
}, {
"deviceid": "testdevice12",
"BatteryVoltage": "31.29",
"PanelVoltage": "0.00",
"PanelCurrent": "0.00",
"OutputVoltage": "31.28",
"OutputCurrent": "4.93",
"RSSI": "0",
"FreeHeapSize": "86.884",
"timestamp": 1540470558
}, {
"deviceid": "testdevice12",
"BatteryVoltage": "31.30",
"PanelVoltage": "0.00",
"PanelCurrent": "0.00",
"OutputVoltage": "31.29",
"OutputCurrent": "4.94",
"RSSI": "5",
"FreeHeapSize": "86.884",
"timestamp": 1540470621
}, {
"deviceid": "testdevice12",
"BatteryVoltage": "31.31",
"PanelVoltage": "0.00",
"PanelCurrent": "0.00",
"OutputVoltage": "31.30",
"OutputCurrent": "4.94",
"RSSI": "5",
"FreeHeapSize": "86.884",
"timestamp": 1540470684
}, {
"deviceid": "testdevice12",
"BatteryVoltage": "31.30",
"PanelVoltage": "0.00",
"PanelCurrent": "0.00",
"OutputVoltage": "31.28",
"OutputCurrent": "4.94",
"RSSI": "7",
"FreeHeapSize": "86.884",
"timestamp": 1540470760
}]
这是我正在使用的 ASA 查询:
WITH [StreamData] AS ( SELECT * FROM [IoTHubStream] WHERE [ObjectType] IS NULL -- Filter out device info and command responses )
SELECT IoTHub.ConnectionDeviceId AS DeviceId, PanelVoltage, PanelCurrent, BatteryVoltage, BatteryCurrent, OutputVoltage, OutputCurrent, Temperature, Humidity, EventProcessedUtcTime, PartitionId, EventEnqueuedUtcTime, * INTO [DeviceDataHistory] FROM [StreamData]
【问题讨论】:
-
我认为标题具有误导性,因为问题似乎在于 ASA 查询。你能发那个吗?我认为查询不能很好地处理数组。
-
我不认为这是 ASA 查询问题,因为我用我的 ASA 测试了相同的数据,我得到了结果。
-
已将我的 ASA 查询添加到帖子中,请查看。
-
嗯,这很奇怪。我觉得我们也可以用另一种方式测试它。请使用 IoT Hub 设备模拟器和 Visual Studio 代码:marketplace.visualstudio.com/… 有信息如何将 json 数据发送到 IoT Hub - 尝试发送您的 json 并检查结果。如果没有出现问题,我认为它与真实设备上的数据序列化有关。请告诉我结果。
-
好的,我试试,需要安装VS代码
标签: azure azure-iot-hub