GetTwinAsync返回具有null属性的设备

时间:2018-01-31 17:24:25

标签: azure azure-iot-hub

我正在尝试从注册表管理器中读取我的设备的双胞胎。这是我的代码:

DeviceClient client = 
DeviceClient.CreateFromConnectionString(DeviceConnectionString, 
TransportType.Mqtt);

Twin deviceTwin = await deviceClient.GetTwinAsync();
Console.WriteLine(deviceTwin.ToJson());

然而,我得到的Json如下。

{"deviceId":null,"etag":null,"version":null,"properties":{"desired":{"$version":1},"reported":{"$version":1}}}

2 个答案:

答案 0 :(得分:1)

我转载了你的问题。

对于此问题,您可以在azure-iot-sdk-csharp存储库上打开问题。

对于变通方法,您可以像这样使用REST API:

enter image description here

或者像这样使用Azure IoT Service SDK:

using Microsoft.Azure.Devices;

...

 var client = RegistryManager.CreateFromConnectionString(IoTHubConnectionString);
 var twinData = await client.GetTwinAsync(deviceId);
 Console.WriteLine(twinData.ToJson());

答案 1 :(得分:1)

这不是问题和/或解决方法。 Documentation 表示:

<块引用>

检索当前设备的设备孪生属性。对于完整的设备孪生对象,请使用 Microsoft.Azure.Devices.RegistryManager.GetTwinAsync(string deviceId)。