如何按设备 ID 筛选从 IoT 中心使用的 Azure 时序见解事件
How to filter Azure Timeseries Insights events consumed from IoT Hub by Device ID
我们配置了以下架构:
- IoT 中心使用来自设备的遥测数据;
- 设备不会在遥测数据中发送它们的 ID。他们只发送传感器数据;
- Timeseries Insights 设置为自动使用来自 IoT 中心的事件;
- 后端 Web 应用程序正在显示来自使用 TSI JSON 查询的设备的原始数据。
我们的问题:
在后端应用程序中,我们正尝试按设备 ID 过滤事件。这是棘手的事情。如果遥测中存在设备 ID,则过滤很容易。但是,当遥测中不存在设备 ID 时,我们应该使用什么谓词来过滤设备 ID。 Azure 文档只定义了两个内置属性($esn
和 $ts
),但我们可以清楚地看到在响应值中,其中一个值是 Device ID。但是 属性 的名称是什么,以便我们可以将其包含在查询谓词中?
谢谢!
我可以通过在 属性 iothub-connection-device-id
上使用谓词来查询 Iot Hub 设备 ID。参考我的JSON
{
"searchSpan": {
"from": "2018-08-02T08:00:00.000Z",
"to": "2018-08-02T15:00:00.000Z"
},
"predicate" : {
"eq": {
"left": {
"property": "iothub-connection-device-id",
"type": "String"
},
"right": "my-sample-device"
}
},
"top" : {
"sort": [{
"input" : {
"builtInProperty" : "$ts"
},
"order" : "Asc"
}],
"count" : 10
}
}
我们配置了以下架构:
- IoT 中心使用来自设备的遥测数据;
- 设备不会在遥测数据中发送它们的 ID。他们只发送传感器数据;
- Timeseries Insights 设置为自动使用来自 IoT 中心的事件;
- 后端 Web 应用程序正在显示来自使用 TSI JSON 查询的设备的原始数据。
我们的问题:
在后端应用程序中,我们正尝试按设备 ID 过滤事件。这是棘手的事情。如果遥测中存在设备 ID,则过滤很容易。但是,当遥测中不存在设备 ID 时,我们应该使用什么谓词来过滤设备 ID。 Azure 文档只定义了两个内置属性($esn
和 $ts
),但我们可以清楚地看到在响应值中,其中一个值是 Device ID。但是 属性 的名称是什么,以便我们可以将其包含在查询谓词中?
谢谢!
我可以通过在 属性 iothub-connection-device-id
上使用谓词来查询 Iot Hub 设备 ID。参考我的JSON
{
"searchSpan": {
"from": "2018-08-02T08:00:00.000Z",
"to": "2018-08-02T15:00:00.000Z"
},
"predicate" : {
"eq": {
"left": {
"property": "iothub-connection-device-id",
"type": "String"
},
"right": "my-sample-device"
}
},
"top" : {
"sort": [{
"input" : {
"builtInProperty" : "$ts"
},
"order" : "Asc"
}],
"count" : 10
}
}