首页 > 解决方案 > 如何按设备 ID 筛选从 IoT 中心使用的 Azure Timeseries Insights 事件

问题描述

我们配置了以下架构:

  1. IoT Hub 使用来自设备的遥测数据;
  2. 设备不会在遥测数据中发送其 ID。他们只发送传感器数据;
  3. Timeseries Insights 设置为自动使用来自 IoT 中心的事件;
  4. 后端 Web 应用程序使用 TSI JSON 查询显示来自设备的原始数据。

我们的问题:

在后端应用程序中,我们尝试按设备 ID 过滤事件。这是棘手的事情。如果遥测中存在设备 ID,则过滤很容易。但是,当遥测中不存在设备 ID 时,我们应该使用什么谓词来过滤设备 ID。Azure 文档只定义了两个内置属性($esn$ts),但我们可以清楚地看到,在响应值中,其中一个值是设备 ID。但是属性的名称是什么,以便我们可以将其包含在查询谓词中?

谢谢!

标签: azureazure-iot-hubazure-timeseries-insights

解决方案


我可以通过使用属性上的谓词来查询 IoT Hub 设备 ID iothub-connection-device-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
    }
}

推荐阅读