Изменение шаблона устройства
Шаблон устройства включает в себя модель, которая описывает взаимодействие устройства с 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, какие модули необходимо установить, как их настроить и какие свойства имеет модуль. При изменении манифеста развертывания можно обновить шаблон устройства, чтобы включить модули и свойства, определенные в манифесте:
- Перейдите к узлу modules в шаблоне устройства.
- На странице сводки модулей выберите "Импорт модулей" из манифеста.
- Выберите соответствующий манифест развертывания и нажмите кнопку "Импорт".
Дополнительные сведения см. в статье об устройствах 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, выберите Просмотреть удостоверение в редакторе шаблонов устройств.
Создание версии шаблона устройства
Чтобы создать версию шаблона устройства
- Перейдите на страницу Шаблоны устройств.
- Выберите шаблон устройства, для которого нужно создать версию.
- Щелкните Версия в верхней части страницы и присвойте шаблону новое имя. IoT Central предложит новое имя, которое вы можете изменить.
- Нажмите кнопку создания.
Вы создали шаблон с уникальным идентификатором, который не подключен ни к одному из существующих устройств.
Создание версии интерфейса
Чтобы создать версию интерфейса
- Перейдите на страницу Шаблоны устройств.
- Выберите шаблон устройства в режиме черновика.
- Выберите опубликованный интерфейс, для которого вы хотите создать версию, и измените его.
- Щелкните Версия в верхней части страницы интерфейса.
- Нажмите кнопку создания.
Вы создали интерфейс с уникальным идентификатором, который не синхронизирован с предыдущей версией интерфейса.
Перенос устройства между версиями
Вы можете создать несколько версий шаблона устройства. Со временем у вас будет несколько подключенных устройств, использующих эти шаблоны. Вы можете перенести устройства из одной версии шаблона устройства в другую. Ниже описано, как перенести устройство в другую версию.
Откройте страницу Устройства .
Выберите устройство, которое нужно переместить в другую версию.
Выберите Перенести.
Выберите шаблон устройства с версией, в который вы хотите перенести устройство, и щелкните Перенести.
Совет
Задание можно использовать для переноса всех устройств в группе устройств в новый шаблон устройства одновременно.