Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Обновление устройства для Центра Интернета вещей использует IoT Plug and Play для обнаружения и управления устройствами, которые можно обновлять по беспроводной сети. В этой статье описывается, как служба обновления устройств отправляет и получает свойства и сообщения на и от устройств с помощью интерфейсов Plug and Play для Интернета вещей.
Дополнительные сведения см. в руководстве разработчика устройств IoT Plug and Play и создании агента обновления устройств.
Модели обновления устройств
Интеллектуальные устройства используют идентификаторы моделей IoT Plug and Play для декларирования своих возможностей в приложениях Интернета вещей Azure. Для обновления устройства требуется смарт-устройство IoT с функцией Plug and Play для объявления идентификатора модели при подключении устройства. Смотрите в объявлении об идентификаторе модели для дополнительной информации.
Обновление устройств имеет несколько определённых моделей IoT 'Plug and Play', поддерживающих функции обновления устройств. Модель **dtmi:azure:iot:deviceUpdateContractModel;3** обновления устройств поддерживает ключевые функции обновления устройств и использует интерфейс ядра обновления устройств для отправки действий обновления и метаданных устройствам и получения состояния обновления от устройств.
Другая поддерживаемая модель — это **dtmi:azure:iot:deviceUpdateModel;3**, который расширяет **deviceUpdateContractModel;3** и также использует интерфейсы IoT Plug and Play, которые отправляют сведения о свойствах устройства и активируют диагностические функции. Сведения об этих и других версиях см. в статье Azure IoT Plug and Play модели обновления устройств.
Агент обновления устройств использует **dtmi:azure:iot:deviceUpdateModel;3**, который поддерживает все последние функции в выпуске версии 1.1.0 обновления устройств. Эта модель поддерживает импорт манифеста версии 5.0. Старые манифесты работают с последними агентами, но для новых функций требуется последняя версия манифеста.
Метаданные агента
Агент обновления устройств использует следующие поля метаданных агента для отправки сведений в службы обновления устройств.
| Имя. | Схема | Направление | Описание |
|---|---|---|---|
| свойства устройства | Карта | устройства в облако | Набор свойств, которые содержат сведения об изготовителе, модели и других устройствах. Дополнительные сведения см. в свойствах устройства. |
| compatPropertyNames | Строка (с разделением запятыми) | устройства в облако | До пяти свойств используются для проверки совместимости устройства при целевом развертывании обновления. Пример: compatPropertyNames: "производитель,модель" |
| результатПоследнейУстановки | Карта | устройства в облако | Результат, сообщаемый агентом, содержащий код результатов, расширенный код результата и сведения о результатах для основного обновления и других обновлений шага. |
| resultCode | целое число | устройства в облако | Код, содержащий сведения о результате последнего действия обновления. Может быть заполнено для указания успешного или неудачного результата. Пример: 700 |
| extendedResultCode | целое число | устройства в облако | Код, содержащий дополнительные сведения о результатах. Может быть заполнен как в случае успеха, так и в случае неудачи. Пример: 0x80004005 |
| деталиРезультата | строка | устройства в облако | Строка бесплатной формы, предоставляемая пользователем, для получения дополнительных сведений о результатах. Возвращается в двойник без синтаксического анализа. |
| stepResults | карта | устройства в облако | Результат, сообщаемый агентом, содержащий код результата, расширенный код результата и сведения о результатах для обновлений шагов. Пример: "step_1": { "resultCode": 0,"extendedResultCode": 0, "resultDetails": ""} |
| состояние | целое число | устройства в облако | Целое число, указывающее на текущее состояние агента обновления устройств. Дополнительные сведения см. в разделе "Состояние ". |
| рабочий процесс | сложный | устройства в облако | Набор значений, указывающий развертывание, над которым агент в настоящее время работает, идентификатор текущего установленного развертывания и подтверждение получения любого запроса на повторную попытку, отправленного службой агенту. Идентификатор workflow сообщает "nodeployment" значение после отмены развертывания. Пример: "workflow": {"action": 3,"ID": "11b6a7c3-6956-4b33-b5a9-87fdd79d2f01","retryTimestamp": "2022-01-26T11:33:29.9680598Z"} |
| installedUpdateId | строка | устройства в облако | Идентификатор текущего развертывания обновления устройства. Это значение записывает код JSON обновления или null устройство, которое никогда не обновлялось с помощью обновления устройства. Пример: "installedUpdateID": "{\"provider\":\"contoso\",\"name\":\"image-update\",\"version\":\"1.0.0\"}" |
Пример двойника устройства Центра Интернета вещей:
"deviceUpdate": {
"__t": "c",
"agent": {
"deviceProperties": {
"manufacturer": "contoso",
"model": "virtual-vacuum-v1",
"contractModelId": "dtmi:azure:iot:deviceUpdateContractModel;3",
"aduVer": "DU;agent/1.1.0",
},
"compatPropertyNames": "manufacturer,model",
"lastInstallResult": {
"resultCode": 700,
"extendedResultCode": 0,
"resultDetails": "",
"stepResults": {
"step_0": {
"resultCode": 700,
"extendedResultCode": 0,
"resultDetails": ""
}
}
},
"state": 0,
"workflow": {
"action": 3,
"id": "11b6a7c3-6956-4b33-b5a9-87fdd79d2f01",
"retryTimestamp": "2022-01-26T11:33:29.9680598Z"
},
"installedUpdateId": "{\"provider\":\"Contoso\",\"name\":\"Virtual-Vacuum\",\"version\":\"5.0\"}"
},
Примечание.
Устройство или модуль должны добавить маркер {"__t": "c"}, чтобы указать, что элемент ссылается на компонент. Дополнительные сведения см. в статье Соглашения IoT Plug and Play.
Свойства устройства
Поле deviceProperties содержит сведения о производителе и модели устройства.
| Имя. | Схема | Направление | Описание |
|---|---|---|---|
| производитель | строка | устройства в облако | Производитель этого устройства сообщает через deviceProperties.Интерфейс DeviceUpdateCore сначала пытается считывать aduc_manufacturer значение из файла конфигурации. Если значение не заполнено в файле конфигурации, интерфейс по умолчанию передает определение ADUC_DEVICEPROPERTIES_MANUFACTURERвремени компиляции. Информация об этом свойстве передается только во время загрузки. Значение по умолчанию: Contoso |
| модель | строка | устройства в облако | Модель устройства, сообщаемая через deviceProperties. Интерфейс DeviceUpdateCore сначала пытается считывать aduc_model значение из файла конфигурации. Если значение не заполнено в файле конфигурации, интерфейс по умолчанию передает определение ADUC_DEVICEPROPERTIES_MODELвремени компиляции. Информация об этом свойстве передается только во время загрузки. Значение по умолчанию — Video. |
| идентификаторМоделиКонтракта | строка | устройства в облако | Свойство, используемое службой для идентификации базовой версии агента обновления устройств, который используется для управления и обмена данными с агентом. Значение: dtmi:azure:iot:deviceUpdateContractModel;3 для устройств, использующих агента обновления устройств версии 1.1.0. Примечание. Агенты, использующие dtmi:azure:iot:deviceUpdateModel;2, должны сообщать contractModelId как dtmi:azure:iot:deviceUpdateContractModel;3, поскольку deviceUpdateModel;3 является расширением deviceUpdateContractModel;3. |
| aduVer | строка | устройства в облако | Версия агента обновления устройства, выполняющегося на устройстве. Это значение считывается из сборки только в том случае, если во время компиляции для ENABLE_ADU_TELEMETRY_REPORTING установлено значение 1 (true). Вы можете отказаться от отчетов о версиях, задав значение 0 false. Дополнительные сведения см. в разделе "Создание агента обновления устройства". |
| doVer | строка | устройства в облако | Версия агента оптимизации доставки, выполняющегося на устройстве. Значение считывается из сборки, только если ENABLE_ADU_TELEMETRY_REPORTING задано значение 1 true во время компиляции. Вы можете отказаться от отчетов о версиях, задав значение 0 false. Дополнительные сведения см. в разделе "Настройка свойств агента оптимизации доставки". |
| Настраиваемые свойства совместимости | Пользовательский (настраиваемый) | устройства в облако | Другие пользовательские свойства устройства, используемые для проверки совместимости при целевом развертывании обновления. |
Штат
Поле состояния — это состояние агента обновления устройства в ответ на действие , отправленное агенту обновления устройств из службы обновления устройств. Дополнительные сведения о запросах, которые передаются между службой обновления устройств и агентом обновления устройств, см. в рабочем процессе агента.
| Имя. | Значение | Описание |
|---|---|---|
| Бездействие | 0 | Устройство готово к получению действия от службы обновления устройства. После успешного обновления состояние возвращается в Idle состояние. |
| Развертывание в процессе | 6 | Выполняется развертывание. |
| Неудачно | 255 | Во время обновления произошел сбой. |
| Загрузка завершена успешно | 2 | Произошло успешное скачивание. Это состояние отображается только на устройствах с агентом версии 0.7.0 или более старым. |
| УстановкаУспешна | 4 | Произошла успешная установка. Это состояние отображается только на устройствах с агентом версии 0.7.0 или более старым. |
Действие
Поле действия представляет действие, которое агент обновления устройств должен предпринять, как указано службой обновления устройств. Агент обновления устройств сообщает о состоянии обработки получаемого действия. Дополнительные сведения о запросах, которые передаются между службой обновления устройств и агентом обновления устройств, см. в рабочем процессе агента.
| Имя. | Значение | Описание |
|---|---|---|
| применить развертывание | 3 | Примените развернутое обновление. |
| Отмена | 255 | Прерывание обработки текущего действия и возврат к состоянию Idle. Это же действие используется, чтобы указать агенту в состоянии Failed вернуться к состоянию Idle. |
| загрузить | 0 | Скачайте опубликованное содержимое или обновление и все другое необходимое содержимое. Это действие отправляется только на устройства с агентом версии 0.7.0 или более поздней. |
| Установить | 1 | Обычно содержимое или обновление устанавливают, чтобы вызвать установщик для содержимого или обновления. Обновление устройства отправляет это действие только на устройства с агентом версии 0.7.0 или более ранней. |
| применить | 2 | Завершите обновление, перезагрузив при необходимости. Обновление устройства отправляет это действие только на устройства с агентом версии 0.7.0 или более ранней. |
Метаданные службы
Метаданные службы содержат поля, которые служба обновления устройств использует для обмена данными с агентом обновления устройств.
| Имя. | Схема | Направление | Описание |
|---|---|---|---|
| действие | целое число | из облака на устройство | Целое число, соответствующее действию, которое должен выполнить агент. См. действие для подробной информации. |
| обновитьМанифест | строка | из облака на устройство | Описывает содержимое обновления. Создается из манифеста импорта. |
| обновитьПодписьМанифеста | JSON-объект | из облака на устройство | Веб-подпись JSON (JWS) с веб-ключами JSON для проверки источника. |
| fileUrls | Карта | из облака на устройство | Сопоставьте FileID с DownloadUrl. Сообщает агенту, какие файлы нужно скачать и хэш, чтобы убедиться, что файлы загружены правильно. |
Интерфейс сведений об устройстве
Интерфейс сведений об устройстве является концепцией, которая используется в архитектуре IoT Plug and Play. Интерфейс содержит свойства устройства в облако, которые предоставляют сведения об оборудовании устройства и операционной системе. Обновление устройства использует свойства DeviceInformation.manufacturer и DeviceInformation.model для телеметрии и диагностики. Пример интерфейса сведений об устройстве см. в разделе https://devicemodels.azure.com/dtmi/azure/devicemanagement/deviceinformation-1.json.
При реализации этого интерфейса ожидаемое имя компонента в модели — deviceInformation. Для получения дополнительной информации см. руководство по моделированию Интернета вещей Plug and Play.
| Имя. | Тип | Схема | Направление | Описание | Пример |
|---|---|---|---|---|---|
| производитель | Свойство | строка | устройства в облако | Название компании-производителя устройства. Производитель может совпадать с именем изготовителя исходного оборудования (OEM). | Contoso |
| модель | Свойство | строка | устройство к облаку | Имя или идентификатор модели устройства. | Устройство IoT Edge |
| swVersion | Свойство | строка | передача данных с устройства на облако | Версия программного обеспечения на вашем устройстве. swVersion может быть версией вашей микропрограммы. | 4.15.0-122 |
| osName | Свойство | строка | подключение устройства к облаку | Название операционной системы, установленной на устройстве. | Ubuntu Server 18.04 |
| архитектура процессора | Свойство | строка | подключение устройства к облаку | Архитектура процессора на устройстве. | ARM64 |
| производитель процессора | Свойство | строка | устройства в облако | Наименование производителя процессора на устройстве. | Microsoft |
| общаяПамять | Свойство | строка | устройства в облако | Общий объем доступного хранилища на устройстве в килобайтах. | 2048 |
| totalMemory | Свойство | строка | устройства в облако | Общий объем доступной памяти на устройстве в килобайтах. | 256 |