0

我正在使用“('azure-iothub').Registry”来获取设备孪生数据。

strQuery = `SELECT * FROM devices where deviceId IN [${deviceIds}]`;
query = registry.createQuery(strQuery, 500);

但设备孪生没有“connectionStateUpdatedTime”属性。根据 MS 文档,它在设备标识中。 https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-identity-registry#device-identity-properties

有没有办法获得“connectionStateUpdatedTime”属性?

4

1 回答 1

1

您将无法connectionStateUpdatedTime使用上述方法,因为它返回以下架构:

{
    "deviceId": "myDeviceId",
    "etag": "AAAAAAAAAAc=",
    "status": "enabled",
    "statusUpdateTime": "0001-01-01T00:00:00",
    "connectionState": "Disconnected",
    "lastActivityTime": "0001-01-01T00:00:00",
    "cloudToDeviceMessageCount": 0,
    "authenticationType": "sas",
    "x509Thumbprint": {
        "primaryThumbprint": null,
        "secondaryThumbprint": null
    },
    "version": 2,
    "tags": {
        "location": {
            "region": "US",
            "plant": "Redmond43"
        }
    },
    "properties": {
        "desired": {
            "telemetryConfig": {
                "configId": "db00ebf5-eeeb-42be-86a1-458cccb69e57",
                "sendFrequencyInSecs": 300
            },
            "$metadata": {
            ...
            },
            "$version": 4
        },
        "reported": {
            "connectivity": {
                "type": "cellular"
            },
            "telemetryConfig": {
                "configId": "db00ebf5-eeeb-42be-86a1-458cccb69e57",
                "sendFrequencyInSecs": 300,
                "status": "Success"
            },
            "$metadata": {
            ...
            },
            "$version": 7
        }
    }
}

您指的是身份注册表,它是支持 REST 的设备或模块身份资源集合。在身份注册表中添加条目时,IoT 中心会创建一组每个设备的资源,例如包含正在运行的云到设备消息的队列。有关导入和导出 API 的详细信息,请参阅IoT 中心资源提供程序 REST API

根据您的要求,您可以使用Devices - Get Devices API

GET https://fully-qualified-iothubname.azure-devices.net/devices?api-version=2020-05-31-preview

这会给你作为设备数组的响应,它将具有connectionStateUpdatedTime.

如果您有后续问题,或者我对您的问题的理解有误,请告诉我。

于 2021-08-03T10:33:18.623 回答