0

我正在尝试更新边缘设备的模块孪生。我现在可以检索模块的设备孪生,但无法将更新后的 Desired 属性保存回 IoT 中心。

var moduleTwin = await registryManager.GetTwinAsync("DeviceId", "ModuleId");

moduleTwin.Properties.Desired["key"] = "value";

var updatedTwin = await registryManager.UpdateTwinAsync("DeviceId", moduleTwin, moduleTwin.ETag)

当它运行时,我得到以下异常

在此处输入图像描述

其中“DeviceId”是以红色隐藏的值。

我曾尝试使用设备的 ETag,但这只是更新了设备的双胞胎,我尝试使用 ModuleId 而不是 DeviceId,这会引发 DeviceNotFoundException。

如何在此处更新 ModuleTwin?

4

1 回答 1

1

似乎registryManager.UpdateTwinAsync只能更新设备孪生。因此,当您使用边缘设备孪生 Etag 而不是 时moduleTwin.ETag,操作将成功。您可以检查您的边缘设备,更新的所需属性在设备孪生而不是模块孪生下。

通过 Azure 门户更新模块孪生似乎也不起作用。

这是 Azure IOT SDK for C# 上的一个类似问题,您可以监控其更新。

于 2018-08-10T03:15:11.890 回答