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


Самонастраивающийся Интернета вещей в обновлении устройств 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