GetTwinAsync() 未完全返回设备孪生
Device Twin not fully returned with GetTwinAsync()
我正在使用适用于 .NET Core 的 Azure IoT 设备客户端 SDK(1.17.0-preview-001,但也尝试过 1.7.0-stable)。调用 deviceClient.GetTwinAsync()
时,所有字段都是 NULL
,除了 Properties
(Desired 和 Reported 都在那里):
至少像 DeviceId 这样的东西我希望在那里。此外,当我在 DeviceTwin 中添加任何标签时,这些标签不会影响到设备。
这是一个错误还是我遗漏了什么?
您可以使用 Microsoft.Azure.Devices 获取设备 twin.It 是 Azure IoT 中心的服务客户端 SDK。
dynamic registryManager = RegistryManager.CreateFromConnectionString("{connectionString}");
var deviceTwin = await registryManager.GetTwinAsync("{device name}");
在这个article中,也许您会对 Azure IoT SDK 有更多的了解。
- Device SDKs enable you to build apps that run on your IoT devices. These apps send telemetry to your IoT hub, and optionally receive messages from your IoT hub.
- Service SDKs enable you to manage your IoT hub, and optionally send messages to your IoT devices.
由标签、属性(期望、报告)和元数据组成的设备孪生.而我们只能从device app中查询properties,如下图作为文档stated:
您也可以参考Azure IoT hub endpoints Azure IoT hub 的具体操作支持如下图:
设备孪生管理。每个 IoT 中心公开一组 service-facing HTTPS REST 端点 以查询和更新设备孪生(更新标签和属性)。
这种行为也很容易通过使用 Fiddler 跟踪原始数据来验证。例如,这是一个通过 MQTTBOX 使用 MQTT 协议从 Azure IoT Hub 获取设备孪生的查询:
据我了解,设备应用很少需要该信息。您可以考虑从 service-endpoint 而不是客户端应用程序管理设备孪生。如果您确实有这种特殊情况,可以提交Azure IoT - UserVoice的反馈。
我正在使用适用于 .NET Core 的 Azure IoT 设备客户端 SDK(1.17.0-preview-001,但也尝试过 1.7.0-stable)。调用 deviceClient.GetTwinAsync()
时,所有字段都是 NULL
,除了 Properties
(Desired 和 Reported 都在那里):
至少像 DeviceId 这样的东西我希望在那里。此外,当我在 DeviceTwin 中添加任何标签时,这些标签不会影响到设备。
这是一个错误还是我遗漏了什么?
您可以使用 Microsoft.Azure.Devices 获取设备 twin.It 是 Azure IoT 中心的服务客户端 SDK。
dynamic registryManager = RegistryManager.CreateFromConnectionString("{connectionString}");
var deviceTwin = await registryManager.GetTwinAsync("{device name}");
在这个article中,也许您会对 Azure IoT SDK 有更多的了解。
- Device SDKs enable you to build apps that run on your IoT devices. These apps send telemetry to your IoT hub, and optionally receive messages from your IoT hub.
- Service SDKs enable you to manage your IoT hub, and optionally send messages to your IoT devices.
由标签、属性(期望、报告)和元数据组成的设备孪生.而我们只能从device app中查询properties,如下图作为文档stated:
您也可以参考Azure IoT hub endpoints Azure IoT hub 的具体操作支持如下图:
设备孪生管理。每个 IoT 中心公开一组 service-facing HTTPS REST 端点 以查询和更新设备孪生(更新标签和属性)。
这种行为也很容易通过使用 Fiddler 跟踪原始数据来验证。例如,这是一个通过 MQTTBOX 使用 MQTT 协议从 Azure IoT Hub 获取设备孪生的查询:
据我了解,设备应用很少需要该信息。您可以考虑从 service-endpoint 而不是客户端应用程序管理设备孪生。如果您确实有这种特殊情况,可以提交Azure IoT - UserVoice的反馈。