我在 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 不会更新。 我究竟做错了什么? 谢谢。
最佳答案
设备孪生报告的属性在面向服务的一侧是只读。查看更多详情here
关于c# - DeviceTwin 更新属性时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59058327/