Обновление доступного для записи свойства в IOT Central через mqtt с устройства

Мне удалось подключиться к IOT Cental через Mqtt и обновить свойство только для чтения с устройства на сервер и свойство с возможностью записи с сервера на устройство.

Мне интересно, можно ли обновить доступное для записи свойство с устройства на сервер и как будет выглядеть полезная нагрузка?

введите здесь описание изображения


person Steven Chang-Ou    schedule 27.11.2020    source источник
comment
Он должен быть очень похож, если не совсем таким. Вы пытаетесь обновить значение с устройства ПОСЛЕ того, как облако отправило обновление? Если это так, вам нужно будет указать версию и код состояния при ответе. docs есть образец, но не без SDK.   -  person Matthijs van der Veer    schedule 27.11.2020


Ответы (1)


Интернет вещей В руководстве разработчика устройств Plug and Play подробно описано, как обрабатывать телеметрию, свойства и команды в модели устройства. Самый простой случай - это когда ваша модель имеет только компонент по умолчанию.

В следующем примере показаны основные шаги по обновлению записываемого свойства по устройству.

  1. Создание шаблона устройства abba с компонентом по умолчанию:  введите описание изображения здесь

  2. Устройство abba с этим шаблоном и его представлением Pattern:

    введите описание изображения здесь

  3. Смоделированное устройство abba с использованием моего тестера Azure IoT Hub:

    введите описание изображения здесь

    Обратите внимание, что версии после нескольких тестовых свойств сбрасываются на null.

  4. Обновление обоих свойств, таких как Reported (свойство только для чтения) и Desired (свойство с возможностью записи), по устройству:

    введите описание изображения здесь

  5. Отображение двойника устройства на стороне устройства:

    введите описание изображения здесь

  6. Панель просмотра приложения IoT Central:

    введите описание изображения здесь

    Как вы можете видеть на приведенном выше фрагменте экрана, свойство только для чтения сразу показывает значение, но свойство записываемое показывает ожидающий текст приглашения. На этом этапе свойство Desired ожидает принятия этого значения. В основном есть два способа сделать это, например:

    а. ввод значения, полученного из необработанных данных, или

    б. используя вызов запроса REST PUT, см. следующий фрагмент экрана:

    введите описание изображения здесь

  7. Панель просмотра приложения IoT Central (обновлена):

    введите описание изображения здесь

    Обратите внимание, что страницу необходимо обновить вручную, когда значение будет принято.

Я рекомендую подписаться на тему devicePropertyDesiredChange, используя функции экспорта данных для получения уведомления об изменениях, см. Пример сообщения, полученного в очереди служебной шины:

введите описание изображения здесь

ОБНОВЛЕНИЕ:

В случае использования нескольких компонентов в вашей модели устройства (по крайней мере, один за компонентом по умолчанию) в следующем примере показано, как обновить записываемое свойство в компоненте по устройству:

  1. Создание новой версии с компонентом abc:

    введите описание изображения здесь

  2. Новая версия представления Pattern:

    введите описание изображения здесь

  3. Смоделированное устройство abba2 отправило обновление для записываемого свойства Desired в компоненте abc:

    введите описание изображения здесь

  4. Приложение IoT Central показывает статус ожидания:

    введите описание изображения здесь

  5. Облачный бэкэнд-сервис получил уведомление в очереди:

    введите описание изображения здесь

  6. Облачный бэкэнд-сервис отправит принятый запрос для этого записываемого свойства, обратите внимание, что URL-адрес показывает путь к определенному компоненту:

    введите описание изображения здесь

  7. Приложение IoT Central показывает новое принятое значение Desired в представлении Pattern в ComponentA, например abc:

    введите описание изображения здесь

Это все. Используя вышеуказанные шаги, любые свойства только для чтения и / или записи, объявленные в нескольких компонентах, могут быть обновлены со стороны устройства. Обратите внимание, что данные телеметрии за пределами компонента по умолчанию обрабатываются по-другому.

person Roman Kiss    schedule 29.11.2020