Partilhar via


Atualização de dispositivo para Hub IoT e IoT Plug and Play

A Atualização de Dispositivo para o Hub IoT usa o IoT Plug and Play para descobrir e gerenciar dispositivos com capacidade de atualização over-the-air. O serviço de Atualização de Dispositivo envia e recebe propriedades e mensagens de e para dispositivos usando interfaces IoT Plug and Play.

Para mais informações:

Modelos de atualização de dispositivo

ID do Modelo é como os dispositivos inteligentes anunciam seus recursos para aplicativos IoT do Azure com IoT Plug e Play.To saber mais sobre como criar dispositivos inteligentes para anunciar seus recursos para aplicativos IoT do Azure, visite o Guia do desenvolvedor de dispositivos IoT Plug and Play.

A Atualização de Dispositivo para o Hub IoT requer que o dispositivo inteligente IoT Plug and Play anuncie um ID de modelo como parte da conexão do dispositivo. Saiba como anunciar um ID de modelo.

A Atualização de Dispositivo tem vários modelos PnP definidos que suportam recursos de DU. O modelo de Atualização de Dispositivo, 'dtmi:azure:iot:deviceUpdateContractModel; 3', suporta a funcionalidade principal e usa a interface principal de atualização de dispositivo para enviar ações de atualização e metadados para dispositivos e receber status de atualização de dispositivos.

O outro modelo suportado é dtmi:azure:iot:deviceUpdateModel; 3 que estende deviceUpdateContractModel; 3 e também usa outras interfaces PnP que enviam propriedades e informações do dispositivo e habilitam recursos de diagnóstico. Saiba mais sobre o [Device Update Models and Interfaces Versions] (https://github.com/Azure/iot-plugandplay-models/tree/main/dtmi/azure/iot).

O agente de Atualização de Dispositivo usa o dtmi:azure:iot:deviceUpdateModel; 3 que suporta todas as funcionalidades mais recentes da versão 1.1.0. Este modelo suporta a versão de manifesto V5. Os manifestos mais antigos funcionarão com os agentes mais recentes, mas os novos recursos exigem o uso da versão mais recente do manifesto.

Metadados do agente

O agente de Atualização de Dispositivo usa campos de metadados do agente para enviar informações aos serviços de Atualização de Dispositivo.

Nome Esquema Direção Description Exemplo
deviceProperties Mapa Do dispositivo para a nuvem O conjunto de propriedades que contêm o fabricante, o modelo e outras informações do dispositivo. Consulte a seção Propriedades do dispositivo para obter detalhes.
compatPropertyNames String (separada por vírgula) Do dispositivo para a nuvem O dispositivo relatou propriedades que são usadas para verificar a compatibilidade do dispositivo para direcionar a implantação da atualização. Limitado a cinco propriedades do dispositivo. "compatPropertyNames": "fabricante, modelo"
lastInstallResult Mapa Do dispositivo para a nuvem O resultado relatado pelo agente. Ele contém código de resultado, código de resultado estendido e detalhes de resultado para atualização principal e outras atualizações de etapa.
Código de resultados integer Do dispositivo para a nuvem Um código que contém informações sobre o resultado da última ação de atualização. Pode ser preenchido para sucesso ou fracasso. 700
extendedResultCode integer Do dispositivo para a nuvem Um código que contém informações adicionais sobre o resultado. Pode ser preenchido para sucesso ou fracasso. 0x80004005
resultDetalhes string Do dispositivo para a nuvem Cadeia de caracteres de formulário livre definida pelo cliente para fornecer detalhes adicionais do resultado. Voltou para o gêmeo sem analisar
stepResultados map Do dispositivo para a nuvem O resultado relatado pelo agente contendo código de resultado, código de resultado estendido e detalhes do resultado para atualizações de etapa. "step_1": { "resultCode": 0,"extendedResultCode": 0, "resultDetails": ""}
state integer Do dispositivo para a nuvem Um inteiro que indica o estado atual do agente de Atualização de Dispositivo. Consulte a seção Estado para obter detalhes.
fluxo de trabalho complexo Do dispositivo para a nuvem Um conjunto de valores que indicam em qual implantação o agente está trabalhando no momento, ID da implantação atual e confirmação de qualquer solicitação de repetição enviada de serviço para agente. Observe que o ID do fluxo de trabalho relata um valor "nodeployment" quando a implantação é cancelada. "fluxo de trabalho": {"action": 3,"ID": "11b6a7c3-6956-4b33-b5a9-87fdd79d2f01","retryTimestamp": "2022-01-26T11:33:29.9680598Z"}
instaladoUpdateId string Do dispositivo para a nuvem Um ID da atualização que está atualmente instalada (através da Atualização de Dispositivo). Esse valor é uma cadeia de caracteres que captura a ID de Atualização JSON ou null para um dispositivo que nunca fez uma atualização por meio da Atualização de Dispositivo. installedUpdateID{"provider":"contoso","name":"image-update","version":"1.0.0"}"

Propriedades do dispositivo

O campo deviceProperties contém as informações do fabricante e do modelo de um dispositivo.

Nome Esquema Direção Description
fabricante string Do dispositivo para a nuvem O fabricante do dispositivo, informado através devicePropertiesde . Esta propriedade é lida de um dos dois locais - primeiro, a interface DeviceUpdateCore tenta ler o valor 'aduc_manufacturer' do arquivo de configuração. Se o valor não estiver preenchido no arquivo de configuração, o padrão será relatar a definição de tempo de compilação para ADUC_DEVICEPROPERTIES_MANUFACTURER. Esta propriedade é relatada somente no momento da inicialização.

Valor padrão: 'Contoso'.
modelo string Do dispositivo para a nuvem O modelo do dispositivo, relatado através devicePropertiesdo . Esta propriedade é lida de um dos dois locais - primeiro, a interface DeviceUpdateCore tenta ler o valor 'aduc_model' do arquivo de configuração. Se o valor não estiver preenchido no arquivo de configuração, o padrão será relatar a definição de tempo de compilação para ADUC_DEVICEPROPERTIES_MODEL. Esta propriedade é relatada somente no momento da inicialização.

Valor padrão: 'Vídeo'
contractModelId string Do dispositivo para a nuvem Essa propriedade é usada pelo serviço para identificar a versão do modelo base que está sendo usada pelo agente de Atualização de Dispositivo para gerenciar e se comunicar com o agente.
Valor: 'dtmi:azure:iot:deviceUpdateContractModel; 3' para dispositivos que usam o agente DU versão 1.1.0.
Nota: Agentes usando o 'dtmi:azure:iot:deviceUpdateModel; 2' deve relatar o contractModelId como 'dtmi:azure:iot:deviceUpdateContractModel; 3' como deviceUpdateModel; 3 é estendido de deviceUpdateContractModel; 3
aduVer string Do dispositivo para a nuvem Versão do agente de Atualização de Dispositivo em execução no dispositivo. Esse valor é lido da compilação somente se ENABLE_ADU_TELEMETRY_REPORTING estiver definido como 1 (true) durante o tempo de compilação. Os clientes podem optar por desativar o relatório de versão definindo o valor como 0 (false). Como personalizar as propriedades do agente de Atualização de Dispositivo.
doVer string Do dispositivo para a nuvem Versão do agente de Otimização de Entrega em execução no dispositivo. O valor é lido da compilação somente se ENABLE_ADU_TELEMETRY_REPORTING estiver definido como 1 (true) durante o tempo de compilação. Os clientes podem optar por desativar o relatório de versão definindo o valor como 0 (false). Como personalizar as propriedades do agente de Otimização de Entrega.
Propriedades de compatibilidade personalizadas Definido pelo Utilizador Do dispositivo para a nuvem O implementador pode definir outras propriedades de dispositivo a serem usadas para a verificação de compatibilidade enquanto direciona a implantação da atualização.

Exemplo de dispositivo gêmeo do Hub IoT:

"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\"}"
                },

Nota

O dispositivo ou módulo deve adicionar o {"__t": "c"} marcador para indicar que o elemento se refere a um componente. Para obter mais informações, consulte Convenções IoT Plug and Play.

Estado

O campo Estado é o status relatado pelo agente de Atualização de Dispositivo (DU) após receber uma ação do serviço de Atualização de Dispositivo. O estado é relatado em resposta a uma Ação (consulte a seção Ação para obter detalhes) enviada ao agente de Atualização de Dispositivo a partir do serviço de Atualização de Dispositivo. Para obter mais informações sobre solicitações que fluem entre o serviço de Atualização de Dispositivo e o agente de Atualização de Dispositivo, consulte o fluxo de trabalho de visão geral.

Nome valor Description
Períodos 0 O dispositivo está pronto para receber uma ação do serviço de Atualização de Dispositivo. Após uma atualização bem-sucedida, o Idle estado é retornado ao estado.
ImplantaçãoInprogress 6 Uma implantação está em andamento.
Com falhas 255 Ocorreu uma falha durante a atualização.
BaixarBem sucedido 2 Um download bem-sucedido. Esse status só é relatado por dispositivos com a versão 0.7.0 ou anterior do agente.
InstallSuccessful 4 Uma instalação bem-sucedida. Esse status só é relatado por dispositivos com a versão 0.7.0 ou anterior do agente.

Metadados do serviço

Os metadados do serviço contêm campos que os serviços de Atualização de Dispositivo usam para comunicar ações e dados ao agente de Atualização de Dispositivo.

Nome Esquema Direção Description
action integer nuvem para dispositivo Um inteiro que corresponde a uma ação que o agente deve executar. Consulte a seção Ação para obter detalhes.
updateManifest string nuvem para dispositivo Usado para descrever o conteúdo de uma atualização. Gerado a partir do manifesto de importação.
updateManifestSignature Objeto JSON nuvem para dispositivo Uma assinatura da Web JSON (JWS) com chaves da Web JSON usadas para verificação de origem.
fileUrls Mapa nuvem para dispositivo Mapa de FileID até DownloadUrl. Informa ao agente quais arquivos baixar e o hash a ser usado para verificar se os arquivos foram baixados corretamente.

Ação

O campo de ação representa as ações executadas pelo agente de Atualização de Dispositivo, conforme instruído pelo serviço de Atualização de Dispositivo. O agente de Atualização de Dispositivo relatará um estado para processar a ação recebida. Para obter mais informações sobre solicitações que fluem entre o serviço de Atualização de Dispositivo e o agente de Atualização de Dispositivo, consulte o fluxo de trabalho de visão geral.

Nome valor Description
applyDeployment 3 Aplique a atualização. Ele sinaliza para o dispositivo para aplicar a atualização implantada
Cancelar 255 Pare de processar a ação atual e volte para Idle, ou diga a um agente no Failed estado para voltar para Idle.
download 0 Faça o download do conteúdo publicado ou atualize e qualquer outro conteúdo necessário. Esta ação só é enviada para dispositivos com a versão 0.7.0 ou anterior do agente.
instalar 1 Instale o conteúdo ou atualize. Normalmente, essa ação significa chamar o instalador para o conteúdo ou atualização. Esta ação só é enviada para dispositivos com a versão 0.7.0 ou anterior do agente.
apply 2 Finalize a atualização. Ele sinaliza o sistema para reiniciar, se necessário. Esta ação só é enviada para dispositivos com a versão 0.7.0 ou anterior do agente.

Interface de informações do dispositivo

A interface de informações do dispositivo é um conceito usado dentro da arquitetura IoT Plug and Play. Ele contém propriedades de dispositivo para nuvem que fornecem informações sobre o hardware e o sistema operacional do dispositivo. A Atualização de Dispositivo para o Hub IoT usa as propriedades e DeviceInformation.model para telemetria DeviceInformation.manufacturer e diagnóstico. Para saber mais, consulte este exemplo da interface de informações do dispositivo.

O nome do componente esperado em seu modelo é deviceInformation quando essa interface é implementada. Saiba mais sobre os componentes Plug and Play do Azure IoT

Nome Tipo Esquema Direção Description Exemplo
fabricante Property string Do dispositivo para a nuvem Nome da empresa do fabricante do dispositivo. Esta propriedade pode ser o mesmo que o nome do fabricante do equipamento original (OEM). Contoso
modelo Property string Do dispositivo para a nuvem Nome ou ID do modelo do dispositivo. Dispositivo IoT Edge
swVersion Property string Do dispositivo para a nuvem Versão do software no seu dispositivo. swVersion pode ser a versão do seu firmware. 4.15.0-122
osName Property string Do dispositivo para a nuvem Nome do sistema operativo no dispositivo. Ubuntu Server 18.04
processorArchitecture Property string Do dispositivo para a nuvem Arquitetura do processador no dispositivo. ARM64
processadorFabricante Property string Do dispositivo para a nuvem Nome do fabricante do processador no dispositivo. Microsoft
totalArmazenamento Property string Do dispositivo para a nuvem Armazenamento total disponível no dispositivo em kilobytes. 2048
totalMemória Property string Do dispositivo para a nuvem Total de memória disponível no dispositivo em kilobytes. 256

Passos Seguintes