Поделиться через


Изменение шаблона устройства

Шаблон устройства содержит модель, описывающую взаимодействие устройства с IoT Central. Эта модель определяет возможности устройства и способы взаимодействия IoT Central с ними. Устройства могут отправлять значения телеметрии и свойств в IoT Central, IoT Central может отправлять обновления свойств и команды на устройство. IoT Central также использует модель для определения взаимодействия с функциями IoT Central, такими как задания, правила и экспорт.

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

  • IoT Central больше не может интерпретировать это значение. IoT Central отображает данные устройства, которые не могут интерпретироваться как немодированные данные на странице необработанныхданных устройства.
  • IoT Central больше не включает значение в экспорт данных.

Чтобы избежать непредвиденных последствий редактирования шаблона устройства, эта статья содержит рекомендации на основе текущего этапа жизненного цикла разработки. В целом, чем раньше вы находитесь в жизненном цикле разработки, тем более терпимо вы можете относиться к изменениям шаблона устройства.

Дополнительные сведения о шаблонах устройств и их создании см. в статье "Что такое шаблоны устройств" и "Создание шаблона устройства" в приложении Azure IoT Central.

Сведения об управлении шаблонами устройств с помощью REST API IoT Central см. в статье "Как использовать REST API IoT Central для управления шаблонами устройств".

Изменение шаблона устройства

Аддитивные изменения, такие как добавление возможности или интерфейса в модель, являются неразрывными изменениями. Вы можете вносить аддитивные изменения в модель на любом этапе жизненного цикла разработки.

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

На ранних этапах разработки устройств, пока вы по-прежнему разрабатываете и тестируете модель, существует большая терпимость к внесению изменений непосредственно в модель устройства. Перед подключением рабочих устройств к шаблону устройства можно напрямую изменить шаблон устройства. IoT Central применяет эти изменения автоматически к устройствам при публикации шаблона устройства.

После подключения рабочих устройств к шаблону устройства оцените влияние любых изменений перед изменением шаблона устройства. Не следует вносить критические изменения в шаблон устройства в рабочей среде. Чтобы внести такие изменения, создайте новую версию шаблона устройства. Проверьте новый шаблон устройства, а затем перенесите рабочие устройства в новый шаблон в запланированное время простоя.

Обновление шаблона устройства IoT Edge

Для устройства IoT Edge можно группировать возможности моделей по модулям, соответствующим модулям IoT Edge, работающим на устройстве. Манифест развертывания — это отдельный документ JSON, который сообщает устройству IoT Edge, какие модули необходимо установить, как их настроить и какие свойства имеет модуль. При изменении манифеста развертывания можно обновить шаблон устройства, чтобы включить модули и свойства, определенные в манифесте:

  1. Перейдите к узлу modules в шаблоне устройства.
  2. На странице сводки модулей выберите "Импорт модулей" из манифеста.
  3. Выберите соответствующий манифест развертывания и нажмите кнопку "Импорт".

Дополнительные сведения см. в статье об устройствах IoT Edge и IoT Central.

Изменение и публикация действий

При редактировании шаблона устройства полезны следующие действия:

  • Сохраните. При изменении части шаблона устройства сохранение изменений создает черновик, в который можно вернуться. Эти изменения еще не влияют на подключенные устройства. Все устройства, созданные из этого шаблона, не имеют сохраненных изменений, пока вы не опубликуете его.
  • Публикация. При публикации шаблона устройства все сохраненные изменения применяются к существующим экземплярам устройства. Только что созданные экземпляры устройств всегда используют последний опубликованный шаблон.
  • Создайте версию шаблона. При версии шаблона устройства он создает новый шаблон со всеми последними сохраненными изменениями. Изменения, внесенные в новую версию, не влияют на существующие экземпляры устройств. Дополнительные сведения см. в разделе "Версия шаблона устройства".
  • Версия интерфейса. При версии интерфейса он создает новый интерфейс со всеми последними сохраненными возможностями. Вы можете повторно использовать интерфейс в нескольких расположениях в шаблоне. Изменение, внесенное в одну ссылку на интерфейс, приводит к изменению всех мест в шаблоне, использующих интерфейс. При версии интерфейса это поведение изменяется, так как новая версия теперь является отдельным интерфейсом. Дополнительные сведения см. в разделе "Версия интерфейса".
  • Перенос устройства. При переносе устройства экземпляр устройства переключается с одного шаблона устройства на другой. Миграция устройств может вызвать кратковременную паузу, пока IoT Central обрабатывает изменения. Дополнительные сведения см. в статье "Миграция устройства в разных версиях".

Номера версий

Как модели устройств, так и интерфейсы имеют номера версий. Различные номера версий позволяют моделям или интерфейсам совместно использовать @id значение, обеспечивая историю обновлений. Номера версий увеличиваются только при выборе версии шаблона или интерфейса или при намеренном изменении номера версии. При внесении основного изменения в шаблон или интерфейс необходимо изменить номер версии.

В следующем фрагменте кода показана модель устройства термостата. Модель устройства имеет один интерфейс. Номер версии 1отображается в конце@id поля.

{
  "@context": "dtmi:dtdl:context;2",
  "@id": "dtmi:com:example:Thermostat;1",
  "@type": "Interface",
  "displayName": "Thermostat",
  "description": "Reports current temperature and provides desired temperature control.",
  "contents": [
    // ...
  ]
}

Чтобы просмотреть эти сведения в пользовательском интерфейсе IoT Central, выберите "Изменить удостоверение " в редакторе шаблонов устройства:

Снимок экрана, показывающий как просмотреть идентификатор интерфейса для определения номера версии.

Версия шаблона устройства

Чтобы изменить шаблон устройства, выполните приведенные действия.

  1. Перейдите на страницу шаблонов устройств .
  2. Выберите шаблон устройства, который требуется использовать для версии.
  3. Выберите версию в верхней части страницы и присвойте шаблону новое имя. IoT Central предлагает новое имя, которое можно изменить.
  4. Нажмите кнопку "Создать".

Теперь вы создали новый шаблон с уникальным идентификатором, который не связан с какими-либо существующими устройствами.

Версия интерфейса

Чтобы изменить интерфейс, выполните приведенные действия.

  1. Перейдите на страницу шаблонов устройств .
  2. Выберите шаблон устройства, который у вас есть в черновике.
  3. Выберите опубликованный интерфейс, который вы хотите версионировать и отредактировать.
  4. Выберите версию в верхней части страницы интерфейса.
  5. Нажмите кнопку "Создать".

Теперь вы создали новый интерфейс с уникальной идентификацией, которая не синхронизируется с предыдущей версией интерфейса.

Перенос устройства между версиями

Можно создать несколько версий шаблона устройства. Со временем у вас будет несколько подключенных устройств с помощью этих шаблонов устройств. Вы можете перенести устройства из одной версии шаблона устройства в другую. Ниже описано, как перенести устройство.

  1. Перейдите на страницу "Устройства".

  2. Выберите устройство, которое необходимо перенести в другую версию.

  3. Выберите "Миграция":

    Снимок экрана, на котором показано, как выбрать параметр для начала миграции устройства.

  4. Выберите шаблон устройства с версией, в которую нужно перенести устройство, и выберите "Миграция".

Подсказка

Задание можно использовать для переноса всех устройств в группе устройств в новый шаблон устройства одновременно.