获取IoT设备

时间:2018-01-25 13:52:31

标签: azure azure-iot-hub

我正在寻找一种方法来查看哪个设备已在Azure中发送了哪条消息。 通过" IoT-hub"我们可以获得设备列表,但我似乎无法找到将消息与设备关联的方法。

人们有什么想法吗? 提前谢谢。

此致

3 个答案:

答案 0 :(得分:1)

当邮件到达IoT Hub时,集线器会在邮件中添加许多系统属性,包括发送邮件的设备的 deviceid - 有关邮件属性的详细信息,请参阅{ {3}}

如果您使用C#阅读邮件,请参阅此类的 ConnectionDeviceId 属性:https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-messages-construct

答案 1 :(得分:1)

查看this文档,了解有关邮件格式的更多详细信息。 设备ID是IoT Hub消息系统属性的一部分,例如 ConnectionDeviceId

以下示例显示了ASA作业的查询。您可以看到如何通过流管道从遥测消息中获取设备ID:

WITH subquery as (
  SELECT 
    System.Timestamp as time,
    counter,
    temperature, 
    humidity,
    EventProcessedUtcTime,
    IoTHub.ConnectionDeviceId as deviceId,
    IoTHub.MessageId as messageId
  FROM iot Timestamp by time
)

SELECT
    *
INTO
    outBlob
FROM
    subquery

另一个例子是Azure EventHubTrigger功能(AF)。来自流管道(事件端点)的遥测消息被序列化到EventData对象中并被推送到AF:

  public static async Task Run(EventData ed, TraceWriter log)
  {  
     log.Info($"Label = {ed.SystemProperties["iothub-message-source"]} -{ed.SystemProperties["iothub-connection-device-id"]}/{ed.SequenceNumber}");

     // ...
  }

答案 2 :(得分:0)

您可以尝试Azure IoT Toolkit扩展VS代码来监控发送到Azure IoT Hub的所有邮件。您可以看到哪个设备已向Azure IoT Hub发送了哪些消息。

Monitor D2C messages

您还可以参考此blog post,了解有关如何使用此扩展程序监控邮件的更多详细信息。