如何在 C# 中获取 IOT 集线器设备的最后 activity 时间

How to get the Last activity time of IOT hub device in c#

我在 ASP.NET MVC 中有一个应用程序用于列出 IOT 设备及其管理。现在我在列表中拥有所有孪生属性和设备属性。我需要设备的最后 activity 时间来获取活动的、最近活动的设备的详细信息。为此,我想我需要最后 activity 次。有什么方法可以收集最后 activity 时间。在物联网设备部分的 Azure 门户中显示 "last activity time"。

使用 REST API 查看 Service - Query IoT Hub

你可以在负载请求中使用查询字符串,headers 用于分页等:

POST https://*****.azure-devices.net/devices/query?api-version=2018-06-30
Authorization: ---sasToken---
x-ms-max-item-count: 50
x-ms-continuation: ********

{
  "query": "SELECT * FROM devices "
}

您可以使用 RegistryManager 访问 IotHub 设备孪生。从那里你可以创建你想要的查询并将结果转换为内置的双胞胎类型。这将允许您保持代码类型化并处理对象。

这是我编写的示例代码,其中列出了双胞胎(控制台应用程序)的 LastActivityTime:

 private static RegistryManager registryManager;
    private static string iotHubConnectionString = "<YOUR IOT HUB CONNECTION STRING";
    static void Main(string[] args)
    {
        MainAsync();
        Console.ReadLine();
    }
    static async void MainAsync()
    {
        registryManager = RegistryManager.CreateFromConnectionString(iotHubConnectionString);
        var queryResult = registryManager.CreateQuery("SELECT * FROM devices");
        while (queryResult.HasMoreResults)
        {
            var page = await queryResult.GetNextAsTwinAsync();
            foreach (var twin in page)
            {
                Console.WriteLine("The last activity time of the device {0} is {1}", twin.DeviceId, twin.LastActivityTime);
            }
        }

    }

您应该了解双胞胎(IoT 中心)以及与它们关联的标准内置属性。 Here 是一篇关于它的好文章。