Share via


Aggiornamento dei dispositivi per hub IoT e Plug and Play IoT

Aggiornamento dei dispositivi per hub IoT usa Plug and Play IoT per individuare e gestire i dispositivi che supportano l'aggiornamento over-the-air. Il servizio Aggiornamento dispositivi invia e riceve proprietà e messaggi da e verso i dispositivi usando interfacce Plug and Play IoT.

Per altre informazioni:

  • Informazioni sul client del dispositivo Plug and Play IoT.
  • Scopri come viene implementato l'agente di Aggiornamento dispositivi.

Modelli di aggiornamento dei dispositivi

L'ID modello è il modo in cui i dispositivi intelligenti annunciano le proprie funzionalità alle applicazioni Azure IoT con Plug and Play IoT. Per altre informazioni su come creare dispositivi intelligenti per annunciare le proprie funzionalità alle applicazioni Azure IoT, vedere Plug and Play IoT guida per sviluppatori di dispositivi.

Aggiornamento del dispositivo per hub IoT richiede che il dispositivo intelligente Plug and Play IoT annunci un ID modello come parte della connessione del dispositivo. Informazioni su come annunciare un ID modello.

Device Update ha 2 modelli PnP definiti che supportano le funzionalità DU. Modello di aggiornamento dei dispositivi, 'dtmi:azure:iot:deviceUpdateContractModel; 2', supporta la funzionalità di base e usa l'interfaccia principale di aggiornamento del dispositivo per inviare azioni di aggiornamento e metadati ai dispositivi e ricevere lo stato di aggiornamento dai dispositivi.

L'altro modello supportato è dtmi:azure:iot:deviceUpdateModel; 2 che estende deviceUpdateContractModel; 2 e usa anche altre interfacce PnP che inviano le proprietà e le informazioni del dispositivo e abilitano le funzionalità di diagnostica. Altre informazioni su [Modelli di aggiornamento dei dispositivi e versioni delle interfacce] (https://github.com/Azure/iot-plugandplay-models/tree/main/dtmi/azure/iot).

L'agente di Aggiornamento dispositivi usa dtmi :azure:iot:deviceUpdateModel; 2 che supporta tutte le funzionalità più recenti nella versione 1.0.0. Questo modello supporta la versione del manifesto V5.

Metadati dell'agente

L'agente di Aggiornamento dispositivi usa i campi dei metadati dell'agente per inviare informazioni ai servizi Device Update.

Nome Schema Direzione Descrizione Esempio
deviceProperties Mapping da dispositivo a cloud Set di proprietà che contengono il produttore, il modello e altre informazioni sul dispositivo. Per informazioni dettagliate, vedere la sezione Proprietà del dispositivo.
compatPropertyNames Stringa (delimitata da virgole) da dispositivo a cloud Le proprietà segnalate dal dispositivo usate per verificare la compatibilità del dispositivo per la distribuzione degli aggiornamenti. Limitato a cinque proprietà del dispositivo. "compatPropertyNames": "manufacturer,model"
lastInstallResult Mapping da dispositivo a cloud Risultato segnalato dall'agente. Contiene il codice dei risultati, il codice dei risultati esteso e i dettagli dei risultati per l'aggiornamento principale e altri aggiornamenti dei passaggi.
resultCode integer da dispositivo a cloud Codice che contiene informazioni sul risultato dell'ultima azione di aggiornamento. Può essere popolato per esito positivo o negativo. 700
extendedResultCode integer da dispositivo a cloud Codice che contiene informazioni aggiuntive sul risultato. Può essere popolato per esito positivo o negativo. 0x80004005
resultDetails string da dispositivo a cloud Stringa di modulo gratuita definita dal cliente per fornire dettagli aggiuntivi sui risultati. Restituito al gemello senza analisi
stepResults mappa da dispositivo a cloud Risultato segnalato dall'agente contenente il codice del risultato, il codice del risultato esteso e i dettagli dei risultati per gli aggiornamenti dei passaggi. "step_1": { "resultCode": 0,"extendedResultCode": 0, "resultDetails": ""}
state integer da dispositivo a cloud Intero che indica lo stato corrente dell'agente di Aggiornamento dispositivi. Per informazioni dettagliate, vedere la sezione Stato .
workflow complex da dispositivo a cloud Set di valori che indicano la distribuzione in cui l'agente sta attualmente lavorando, l'ID della distribuzione corrente e il riconoscimento di qualsiasi richiesta di ripetizione dei tentativi inviata dal servizio all'agente. Si noti che l'ID del flusso di lavoro segnala un valore "nodeployment" dopo l'annullamento della distribuzione. "workflow": {"action": 3,"ID": "11b6a7c3-6956-4b33-b5a9-87fdd79d2f01","retryTimestamp": "20222-01-26T11:33:29.9680598Z"}
installedUpdateId string da dispositivo a cloud ID dell'aggiornamento attualmente installato (tramite Aggiornamento del dispositivo). Questo valore è una stringa che acquisisce il codice JSON dell'ID aggiornamento o null per un dispositivo che non ha mai eseguito un aggiornamento tramite Aggiornamento dispositivi. installedUpdateID{"provider":"contoso","name":"image-update","version":"1.0.0"}"

Proprietà dei dispositivi

Il campo deviceProperties contiene le informazioni sul produttore e sul modello per un dispositivo.

Nome Schema Direzione Descrizione
manufacturer string da dispositivo a cloud Produttore del dispositivo, segnalato tramite deviceProperties. Questa proprietà viene letta da una delle due posizioni: prima l'interfaccia DeviceUpdateCore tenta di leggere il valore "aduc_manufacturer" dal file di configurazione. Se il valore non viene popolato nel file di configurazione, per impostazione predefinita segnala la definizione in fase di compilazione per ADUC_DEVICEPROPERTIES_MANUFACTURER. Questa proprietà viene segnalata solo al momento dell'avvio.

Valore predefinito: 'Contoso'.
modello string da dispositivo a cloud Modello di dispositivo del dispositivo, segnalato tramite deviceProperties. Questa proprietà viene letta da una delle due posizioni, in primo luogo l'interfaccia DeviceUpdateCore tenta di leggere il valore "aduc_model" dal file di configurazione. Se il valore non viene popolato nel file di configurazione, per impostazione predefinita viene segnalato la definizione in fase di compilazione per ADUC_DEVICEPROPERTIES_MODEL. Questa proprietà viene segnalata solo al momento dell'avvio.

Valore predefinito: 'Video'
contractModelId string da dispositivo a cloud Questa proprietà viene utilizzata dal servizio per identificare la versione del modello di base usata dall'agente di Aggiornamento dispositivi per gestire e comunicare con l'agente.
Valore: 'dtmi:azure:iot:deviceUpdateContractModel; 2' per i dispositivi che usano l'agente DU versione 1.0.0.
Nota: gli agenti che usano 'dtmi:azure:iot:deviceUpdateModel; 2' deve segnalare il contractModelId come 'dtmi:azure:iot:deviceUpdateContractModel; 2' come deviceUpdateModel; 2 viene esteso da deviceUpdateModel; 2
aduVer string da dispositivo a cloud Versione dell'agente di Aggiornamento dispositivi in esecuzione nel dispositivo. Questo valore viene letto dalla compilazione solo se ENABLE_ADU_TELEMETRY_REPORTING è impostato su 1 (true) durante la fase di compilazione. I clienti possono scegliere di rifiutare esplicitamente la creazione di report delle versioni impostando il valore su 0 (false). Come personalizzare le proprietà dell'agente di Aggiornamento dispositivi.
Dover string da dispositivo a cloud Versione dell'agente di ottimizzazione recapito in esecuzione nel dispositivo. Il valore viene letto dalla compilazione solo se ENABLE_ADU_TELEMETRY_REPORTING è impostato su 1 (true) durante la fase di compilazione. I clienti possono scegliere di rifiutare esplicitamente la segnalazione della versione impostando il valore su 0 (false). Come personalizzare le proprietà dell'agente di Ottimizzazione recapito.
Proprietà di compatibilità personalizzate User Defined da dispositivo a cloud L'implementatore può definire altre proprietà del dispositivo da usare per il controllo della compatibilità durante la distribuzione degli aggiornamenti.

esempio di dispositivo gemello hub IoT:

"deviceUpdate": {
                "__t": "c",
                "agent": {
                    "deviceProperties": {
                        "manufacturer": "contoso",
                        "model": "virtual-vacuum-v1",
                        "contractModelId": "dtmi:azure:iot:deviceUpdateContractModel;2",
                        "aduVer": "DU;agent/0.8.0-rc1-public-preview",
                        "doVer": "DU;lib/v0.6.0+20211001.174458.c8c4051,DU;agent/v0.6.0+20211001.174418.c8c4051"
                    },
                    "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

Il dispositivo o il modulo deve aggiungere l'indicatore {"__t": "c"} per indicare che l'elemento fa riferimento a un componente. Per altre informazioni, vedere convenzioni di Plug and Play IoT.

Provincia

Il campo Stato è lo stato segnalato dall'agente aggiornamento dispositivi (DU) dopo aver ricevuto un'azione dal servizio Aggiornamento dispositivi. Lo stato viene segnalato in risposta a un'azione (vedere la sezione Azione per informazioni dettagliate) inviato all'agente di Aggiornamento dispositivi dal servizio Aggiornamento dispositivi. Per altre informazioni sulle richieste che passano tra il servizio Aggiornamento dispositivi e l'agente di Aggiornamento dispositivi, vedere il flusso di lavoro di panoramica.

Nome valore Descrizione
Idle 0 Il dispositivo è pronto per ricevere un'azione dal servizio Aggiornamento dispositivi. Dopo un aggiornamento riuscito, lo stato viene restituito allo Idle stato .
DeploymentInprogress 6 È in corso una distribuzione.
Non riuscito 255 Si è verificato un errore durante l'aggiornamento.
DownloadSucceeded 2 Download riuscito. Questo stato viene segnalato solo dai dispositivi con versione 0.7.0 o precedente dell'agente.
InstallSucceeded 4 Installazione completata. Questo stato viene segnalato solo dai dispositivi con versione 0.7.0 o precedente dell'agente.

Metadati del servizio

I metadati del servizio contengono campi usati dai servizi Device Update per comunicare azioni e dati all'agente di Aggiornamento dispositivi.

Nome Schema Direzione Descrizione
action integer da cloud a dispositivo Intero che corrisponde a un'azione che l'agente deve eseguire. Per informazioni dettagliate, vedere la sezione Azione .
updateManifest string da cloud a dispositivo Utilizzato per descrivere il contenuto di un aggiornamento. Generato dal manifesto di importazione.
updateManifestSignature Oggetto JSON da cloud a dispositivo Una firma Web JSON (JWS) con chiavi Web JSON usate per la verifica dell'origine.
fileUrls Mapping da cloud a dispositivo Mappa di FileID a DownloadUrl. Indica all'agente quali file scaricare e l'hash da usare per verificare che i file siano stati scaricati correttamente.

Azione

Il campo azione rappresenta le azioni eseguite dall'agente di Aggiornamento dispositivi come indicato dal servizio Aggiornamento dispositivi. L'agente di Aggiornamento dispositivi segnala uno stato per l'elaborazione dell'azione ricevuta. Per altre informazioni sulle richieste che passano tra il servizio Aggiornamento dispositivi e l'agente di Aggiornamento dispositivi, vedere il flusso di lavoro di panoramica.

Nome valore Descrizione
applyDeployment 3 Applicare l'aggiornamento. Segnala al dispositivo di applicare l'aggiornamento distribuito
cancel 255 Interrompere l'elaborazione dell'azione corrente e tornare a o indicare a Idleun agente nello Failed stato di tornare a Idle.
download 0 Scaricare il contenuto pubblicato o aggiornare e qualsiasi altro contenuto necessario. Questa azione viene inviata solo ai dispositivi con la versione 0.7.0 o precedente dell'agente.
installazione 1 Installare il contenuto o l'aggiornamento. In genere, questa azione significa chiamare il programma di installazione per il contenuto o l'aggiornamento. Questa azione viene inviata solo ai dispositivi con la versione 0.7.0 o precedente dell'agente.
apply 2 Finalizzare l'aggiornamento. Segnala al sistema di riavviare, se necessario. Questa azione viene inviata solo ai dispositivi con la versione 0.7.0 o precedente dell'agente.

Interfaccia delle informazioni sul dispositivo

L'interfaccia delle informazioni sul dispositivo è un concetto usato all'interno dell'architettura Plug and Play IoT. Contiene proprietà da dispositivo a cloud che forniscono informazioni sull'hardware e sul sistema operativo del dispositivo. Aggiornamento del dispositivo per hub IoT usa le DeviceInformation.manufacturer proprietà e DeviceInformation.model per la telemetria e la diagnostica. Per altre informazioni, vedere questo esempio dell'interfaccia delle informazioni sul dispositivo.

Il nome del componente previsto nel modello è deviceInformation quando questa interfaccia viene implementata. Informazioni sui componenti di Azure Plug and Play IoT

Nome Type Schema Direzione Descrizione Esempio
manufacturer Proprietà string da dispositivo a cloud Nome della società del produttore del dispositivo. Questa proprietà può essere uguale al nome del produttore di apparecchiature originali (OEM). Contoso
modello Proprietà string da dispositivo a cloud Nome o ID del modello di dispositivo. Dispositivo IoT Edge
swVersion Proprietà string da dispositivo a cloud Versione del software nel dispositivo. swVersion potrebbe essere la versione del firmware. 4.15.0-122
osName Proprietà string da dispositivo a cloud Nome del sistema operativo nel dispositivo. Ubuntu Server 18.04
processorArchitecture Proprietà string da dispositivo a cloud Architettura del processore nel dispositivo. ARM64
processorManufacturer Proprietà string da dispositivo a cloud Nome del produttore del processore nel dispositivo. Microsoft
totale Archiviazione Proprietà string da dispositivo a cloud Spazio di archiviazione totale disponibile nel dispositivo in kilobyte. 2048
totalMemory Proprietà string da dispositivo a cloud Memoria totale disponibile nel dispositivo in kilobyte. 256

Passaggi successivi