Самонастраивающийся Интернета вещей в обновлении устройств Azure для Центр Интернета вещей
Обновление устройства для Центра Интернета вещей использует IoT Plug and Play для обнаружения и управления устройствами, которые можно обновлять по беспроводной сети. В этой статье описывается, как служба обновления устройств отправляет и получает свойства и сообщения на устройства с помощью интерфейсов Интернета вещей самонастраивающийся.
Дополнительные сведения см. в руководстве разработчика самонастраивающийся устройств Интернета вещей и создании агента обновления устройств.
Модели обновления устройств
Интеллектуальные устройства используют идентификаторы моделей IoT самонастраивающийся для объявления их возможностей в приложениях Интернета вещей Azure. Для обновления устройства требуется самонастраивающийся смарт-устройство Интернета вещей для объявления идентификатора модели в рамках подключения к устройству. Дополнительные сведения см . в объявлении об идентификаторе модели.
Обновление устройств содержит несколько определенных моделей Интернета вещей самонастраивающийся, поддерживающих функции обновления устройств. Модель **dtmi:azure:iot:deviceUpdateContractModel;3**
обновления устройств поддерживает основные функции обновления устройств и использует основной интерфейс обновления устройства для отправки действий обновления и метаданных устройствам и получения состояния обновления от устройств.
Другая поддерживаемая модель — **dtmi:azure:iot:deviceUpdateModel;3**
это расширение, которое **deviceUpdateContractModel;3**
также использует интерфейсы Интернета вещей самонастраивающийся, которые отправляют сведения о свойстве устройства и обеспечивают функции диагностики. Сведения об этих и других версиях см. в статье Azure IoT самонастраивающийся модели обновления устройств.
Агент обновления устройств использует **dtmi:azure:iot:deviceUpdateModel;3**
все последние функции в выпуске обновления 1.1.0 устройства. Эта модель поддерживает импорт манифеста версии 5.0. Старые манифесты работают с последними агентами, но для новых функций требуется последняя версия манифеста.
Метаданные агента
Агент обновления устройств использует следующие поля метаданных агента для отправки сведений в службы обновления устройств.
Имя. | Схема | Направление | Description |
---|---|---|---|
deviceProperties | Карта | устройства в облако | Набор свойств, которые содержат сведения об изготовителе, модели и других устройствах. Дополнительные сведения см. в свойствах устройства. |
compatPropertyNames | Строка (с разделением запятыми) | устройства в облако | До пяти свойств, используемых для проверки совместимости устройств для целевого развертывания обновления. Пример: compatPropertyNames: "производитель,модель" |
lastInstallResult | Карта | устройства в облако | Результат, сообщаемый агентом, содержащий код результатов, расширенный код результата и сведения о результатах для основного обновления и других обновлений шага. |
resultCode | integer | устройства в облако | Код, содержащий сведения о результате последнего действия обновления. Может быть заполнен как успешный или неудачный. Пример: 700 |
extendedResultCode | integer | устройства в облако | Код, содержащий дополнительные сведения о результатах. Может быть заполнен как успешный или неудачный. Пример: 0x80004005 |
resultDetails | строка | устройства в облако | Строка бесплатной формы, предоставляемая пользователем, для получения дополнительных сведений о результатах. Возвращается в двойник без синтаксического анализа. |
stepResults | map | устройства в облако | Результат, сообщаемый агентом, содержащий код результата, расширенный код результата и сведения о результатах для обновлений шагов. Пример: "step_1": { "resultCode": 0,"extendedResultCode": 0, "resultDetails": ""} |
state | integer | устройства в облако | Целое число, указывающее на текущее состояние агента обновления устройств. Дополнительные сведения см. в разделе "Состояние ". |
обновления агентов | complex | устройства в облако | Набор значений, указывающий, что развертывание агента в настоящее время работает, идентификатор текущего установленного развертывания и подтверждение любого запроса повтора, отправленного из службы агенту. Идентификатор 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 содержит сведения о производителе и модели устройства.
Имя. | Схема | Направление | Description |
---|---|---|---|
manufacturer | строка | устройства в облако | Производитель устройства, сообщаемый через deviceProperties .Интерфейс DeviceUpdateCore сначала пытается считывать aduc_manufacturer значение из файла конфигурации. Если значение не заполнено в файле конфигурации, интерфейс по умолчанию передает определение ADUC_DEVICEPROPERTIES_MANUFACTURER времени компиляции. Информация об этом свойстве передается только во время загрузки. Значение по умолчанию: Contoso |
модель | строка | устройства в облако | Модель устройства, сообщаемая через deviceProperties . Интерфейс DeviceUpdateCore сначала пытается считывать aduc_model значение из файла конфигурации. Если значение не заполнено в файле конфигурации, интерфейс по умолчанию передает определение ADUC_DEVICEPROPERTIES_MODEL времени компиляции. Информация об этом свойстве передается только во время загрузки. Значение по умолчанию — Video. |
contractModelId | строка | устройства в облако | Свойство, используемое службой для идентификации базовой версии версии агента обновления устройств, используется для управления агентом и обмена данными с ним. Значение: 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 состояние. |
DeploymentInprogress | 6 | Выполняется развертывание. |
Неудачно | 255 | Во время обновления произошел сбой. |
DownloadSucceeded | 2 | Произошло успешное скачивание. Это состояние отображается только на устройствах с агентом версии 0.7.0 или более старым. |
InstallSucceeded | 4 | Произошла успешная установка. Это состояние отображается только на устройствах с агентом версии 0.7.0 или более старым. |
Действие
Поле действия представляет действие, которое агент обновления устройств должен предпринять, как указано службой обновления устройств. Агент обновления устройств сообщает о состоянии обработки получаемого действия. Дополнительные сведения о запросах, которые передаются между службой обновления устройств и агентом обновления устройств, см. в рабочем процессе агента.
Имя. | Стоимость | Описание |
---|---|---|
applyDeployment | 3 | Применение развернутого обновления. |
Отмена | 255 | Прерывание обработки текущего действия и возврат к состоянию Idle . Это же действие используется, чтобы указать агенту в состоянии Failed вернуться к состоянию Idle . |
загрузить | 0 | Скачайте опубликованное содержимое или обновление и все другое необходимое содержимое. Это действие отправляется только на устройства с агентом версии 0.7.0 или более поздней. |
Установить | 1 | Обычно установите содержимое или обновление, чтобы вызвать установщик для содержимого или обновления. Обновление устройства отправляет это действие только на устройства с агентом версии 0.7.0 или более ранней. |
apply | 2 | Завершите обновление, перезагрузив при необходимости. Обновление устройства отправляет это действие только на устройства с агентом версии 0.7.0 или более ранней. |
Метаданные службы
Метаданные службы содержат поля, которые служба обновления устройств использует для обмена данными с агентом обновления устройств.
Имя. | Схема | Направление | Description |
---|---|---|---|
действие | integer | из облака на устройство | Целое число, соответствующее действию, которое должен выполнить агент. Дополнительные сведения см. в действии. |
updateManifest | строка | из облака на устройство | Описывает содержимое обновления. Создается из манифеста импорта. |
updateManifestSignature | 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. Дополнительные сведения см. в руководстве по моделированию Интернета вещей самонастраивающийся.
Имя. | Тип | Схема | Направление | Description | Пример |
---|---|---|---|---|---|
manufacturer | Свойство | строка | устройства в облако | Название компании-производителя устройства. Производитель может совпадать с именем изготовителя исходного оборудования (OEM). | Contoso |
модель | Свойство | строка | устройства в облако | Имя или идентификатор модели устройства. | Устройство IoT Edge |
swVersion | Свойство | строка | устройства в облако | Версия программного обеспечения на вашем устройстве. swVersion может быть версией встроенного ПО. | 4.15.0-122 |
osName | Свойство | строка | устройства в облако | Название операционной системы, установленной на устройстве. | Ubuntu Server 18.04 |
processorArchitecture | Свойство | строка | устройства в облако | Архитектура процессора на устройстве. | ARM64 |
processorManufacturer | Свойство | строка | устройства в облако | Наименование производителя процессора на устройстве. | Microsoft |
totalStorage | Свойство | строка | устройства в облако | Общий объем доступного хранилища на устройстве в килобайтах. | 2048 |
totalMemory | Свойство | строка | устройства в облако | Общий объем доступной памяти на устройстве в килобайтах. | 256 |