Нужно ли в Azure iot Hub явно копировать указанные свойства в двойник устройства?

properties.reported в моих девайсах-близнецах не обновляются.

У меня есть работающий проект, соответствующий этому руководству по Azure IOT SDK (в комплекте с тем же оборудованием): https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-arduino-huzzah-esp8266-get-started

Сообщения D2C отправляются с устройства и подтверждаются лазером. Я могу отслеживать поступление сообщений через Device Explorer и iothub-explorer, и я могу видеть, как они накапливаются в хранилище таблиц, благодаря другому руководству, которое я сделал, чтобы попытаться дополнительно подтвердить сообщения действительно прибывали. Однако содержимое сообщений (сообщаемые свойства) не отражается в двойнике устройства. properties.reported пуст, за исключением отметки времени метаданных со дня регистрации устройства. Нужно ли мне писать лазурную функцию для явного копирования данных из сообщения в сообщаемые свойства двойника?

К вашему сведению, сообщения C2D (properties.desired в двойнике) передаются нормально.


person zoidicus    schedule 20.07.2017    source источник
comment
Куда и как добавить эти заявленные свойства?   -  person Rita Han    schedule 21.07.2017
comment
@Rita Han, в недрах учебного кода находится вызов IoTHubMessage_CreateFromByteArray (), который принимает в качестве входных данных строку JSON. Результат позже отправляется в IoTHubClient_LL_SendEventAsync () и доставляется во время вызова IoTHubClient_LL_DoWork (). Сообщения поступают в концентратор и регистрируются (с помощью функции, которая просто копирует их в таблицу хранения Azure). Пример прямо из журнала: {"deviceId":"new-device","messageId":2,"temperature":22.29999,"humidity":47.2} ... и да, у меня есть зарегистрированный deviceId нового устройства.   -  person zoidicus    schedule 21.07.2017


Ответы (1)


Помощь пришла на другой форум, поэтому я добавляю здесь соответствующие подробности.
Образец, который я указал выше, и другие образцы, которые я пробовал, отправляли события вместо свойств, хотя они читали и реагировали на (желаемые) свойства, отправленные из облака. Сообщаемые свойства необходимо отправлять с вызовом IoTHubClient_LL_SendReportedState (C) или Client.UpdateReportedPropertiesAsync (C #).

person zoidicus    schedule 21.07.2017