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

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

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

  • IoT Central больше не может интерпретировать это значение. IoT Central показывает данные устройства, которые не может интерпретировать, как несмоделированные данные на странице Необработанные данные устройства.
  • 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, выберите Просмотреть удостоверение в редакторе шаблонов устройств.

Screenshot that shows how to view the identity of an interface to see the version number.

Создание версии шаблона устройства

Чтобы создать версию шаблона устройства

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

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

Создание версии интерфейса

Чтобы создать версию интерфейса

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

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

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

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

  1. Откройте страницу Устройства .

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

  3. Выберите Перенести.

    Screenshot that shows how to choose the option to start migrating a device.

  4. Выберите шаблон устройства с версией, в который вы хотите перенести устройство, и щелкните Перенести.

Совет

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