我在用c #中的DeviceTwin更新属性时遇到问题。
我执行的代码如下:
var registryManager = RegistryManager.CreateFromConnectionString(AppSettings.KeyIoT);
var twin = await registryManager.GetTwinAsync(dto.DeviceIdorId);
TwinCollection s = twin.Properties.Reported["Power"];
Power toRet = JsonConvert.DeserializeObject<Power>(s.ToJson());
toRet.MaximumAvailable = 50;
var patch =
@"{
properties: {
reported:{
Power:" + JsonConvert.SerializeObject(toRet) +
@"}
}
}";
await registryManager.UpdateTwinAsync(twin.DeviceId, patch, twin.ETag);我还尝试使用以下代码:
var registryManager = RegistryManager.CreateFromConnectionString(AppSettings.KeyIoT);
var twin = await registryManager.GetTwinAsync(dto.DeviceIdorId);
TwinCollection s = twin.Properties.Reported["Power"];
Power toRet = JsonConvert.DeserializeObject<Power>(s.ToJson());
toRet.MaximumAvailable = 50;
twin.Properties.Reported["Power"] = JsonConvert.SerializeObject(toRet);
Twin updatedTwin = await registryManager.UpdateTwinAsync(twin.DeviceId, twin, twin.ETag);问题是,在更新之后,如果我重读一次,属性MaximumAvailable就不会更新。我做错了什么?谢谢。
发布于 2019-11-27 07:03:04
所报告的设备双胞胎属性是面向服务端的只读。请参阅更多详细信息这里
https://stackoverflow.com/questions/59058327
复制相似问题