Condividi tramite


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 sono in grado di aggiornare in modalità over-the-air. Il servizio Aggiornamento dispositivi invia e riceve proprietà e messaggi da e verso i dispositivi usando interfacce di Plug and Play IoT. L'aggiornamento dei dispositivi per hub IoT richiede ai dispositivi IoT di implementare le interfacce e l'ID modello seguenti.

Per altre informazioni:

Interfaccia core di Aggiornamento dispositivi

L'interfaccia DeviceUpdateCore viene usata per inviare azioni di aggiornamento e metadati ai dispositivi e ricevere lo stato di aggiornamento dai dispositivi. L'interfaccia DeviceUpdateCore è suddivisa in due proprietà dell'oggetto.

Il nome del componente previsto nel modello è "deviceUpdate" quando questa interfaccia viene implementata. Altre informazioni sui componenti di Azure Plug and Play IoT.

Metadati dell'agente

L'agente di aggiornamento del dispositivo usa i campi dei metadati dell'agente per inviare informazioni ai servizi di aggiornamento del dispositivo.

Nome SCHEMA Direzione Descrizione Esempio
deviceProperties Mappa dispositivo nel cloud Set di proprietà che contengono il produttore, il modello e altre informazioni sul dispositivo. Per informazioni dettagliate, vedere La sezione Proprietà dispositivo .
compatPropertyNames Stringa (delimitata da virgole) dispositivo nel cloud Le proprietà segnalate dal dispositivo usate per verificare la compatibilità del dispositivo per indirizzare la distribuzione dell'aggiornamento. Limitato a cinque proprietà del dispositivo. "compatPropertyNames": "produttore, modello"
lastInstallResult Mappa dispositivo nel cloud Risultato segnalato dall'agente. Contiene il codice dei risultati, il codice di risultato esteso e i dettagli dei risultati per l'aggiornamento principale e altri aggiornamenti del passaggio.
resultCode numero intero dispositivo nel cloud Codice che contiene informazioni sul risultato dell'ultima azione di aggiornamento. Può essere popolato per esito positivo o negativo. 700
extendedResultCode numero intero dispositivo nel cloud Codice che contiene informazioni aggiuntive sul risultato. Può essere popolato per esito positivo o negativo. 0x80004005
resultDetails string dispositivo nel cloud Stringa di modulo gratuita definita dal cliente per fornire dettagli aggiuntivi sui risultati. Restituito al gemello senza analizzare
stepResults map dispositivo nel cloud Il risultato segnalato dall'agente contenente il codice dei risultati, il codice di risultato esteso e i dettagli dei risultati per gli aggiornamenti dei passaggi. "step_1": { "resultCode": 0,"extendedResultCode": 0, "resultDetails": ""}
state numero intero dispositivo nel cloud Intero che indica lo stato corrente dell'agente di aggiornamento del dispositivo. Per informazioni dettagliate, vedere La sezione Stato .
flusso di lavoro complex dispositivo nel 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 inviati dal servizio all'agente. "workflow": {"action": 3,"ID": "11b6a7c3-6956-4b33-b5a9-87fdd79d2f01","retryTimestamp": "20222-01-26T11:33:29.9680598Z"}
installedUpdateId string dispositivo nel cloud ID dell'aggiornamento attualmente installato (tramite Aggiornamento 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 l'aggiornamento del dispositivo. 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 dispositivo nel cloud Produttore del dispositivo, segnalato tramite deviceProperties. Questa proprietà viene letto da una delle due posizioni: prima, l'interfaccia DeviceUpdateCore tenta di leggere il valore "aduc_manufacturer" dal file di configurazione. Se il valore non è popolato nel file di configurazione, viene predefinito per segnalare la definizione in fase di compilazione per ADUC_DEVICEPROPERTIES_MANUFACTURER. Questa proprietà viene segnalata solo al momento dell'avvio.

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

Valore predefinito: 'Video'
Interfaceid string dispositivo nel cloud Questa proprietà viene usata dal servizio per identificare la versione dell'interfaccia usata dall'agente di aggiornamento del dispositivo. L'ID dell'interfaccia è richiesto dal servizio Aggiornamento dispositivi per gestire e comunicare con l'agente.

Valore predefinito: 'dtmi:azure:iot:deviceUpdate;1' per i dispositivi che usano l'agente DU versione 0.8.0.
aduVer string dispositivo nel cloud Versione dell'agente di aggiornamento del dispositivo in esecuzione nel dispositivo. Questo valore viene letto dalla compilazione solo se ENABLE_ADU_TELEMETRY_REPORTING è impostato su 1 (true) durante la compilazione. I clienti possono scegliere di rifiutare esplicitamente la creazione di report della versione impostando il valore su 0 (false). Come personalizzare le proprietà dell'agente di aggiornamento del dispositivo.
Dover string dispositivo nel 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 compilazione. I clienti possono scegliere di rifiutare esplicitamente la creazione di report della versione impostando il valore su 0 (false). Come personalizzare le proprietà dell'agente di ottimizzazione recapito.
Proprietà di compatibilità personalizzate User Defined dispositivo nel cloud L'implementazione può definire altre proprietà del dispositivo da usare per il controllo di compatibilità durante la distribuzione degli aggiornamenti.

hub IoT esempio di dispositivo gemello:

"deviceUpdate": {
                "__t": "c",
                "agent": {
                    "deviceProperties": {
                        "manufacturer": "contoso",
                        "model": "virtual-vacuum-v1",
                        "interfaceId": "dtmi:azure:iot:deviceUpdateModel;1",
                        "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 devono aggiungere il marcatore per indicare che l'elemento {"__t": "c"} fa riferimento a un componente. Per altre informazioni, vedere convenzioni Plug and Play IoT.

State

Il campo Stato è lo stato segnalato dall'agente Device Update (DU) dopo aver ricevuto un'azione dal servizio Aggiornamento dispositivi. Lo stato viene segnalato in risposta a un'azione (vedere La sezione Azione per i dettagli) inviata all'agente di aggiornamento del dispositivo dal servizio Aggiornamento dispositivi. Per altre informazioni sulle richieste di flusso tra il servizio Aggiornamento dispositivi e l'agente di aggiornamento del dispositivo, 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 Una distribuzione è in corso.
Non riuscito 255 Errore durante l'aggiornamento.
DownloadSucceed 2 Download riuscito. Questo stato viene segnalato solo dai dispositivi con la versione dell'agente 0.7.0 o versione precedente.
InstallSucceeded 4 Installazione riuscita. Questo stato viene segnalato solo dai dispositivi con la versione dell'agente 0.7.0 o versione precedente.

Metadati del servizio

I metadati del servizio contengono campi usati dai servizi di aggiornamento dei dispositivi per comunicare azioni e dati all'agente di aggiornamento del dispositivo.

Nome SCHEMA Direzione Descrizione
azione numero intero cloud to device Intero che corrisponde a un'azione che l'agente deve eseguire. Per informazioni dettagliate, vedere La sezione Azione .
updateManifest string cloud to device Usato per descrivere il contenuto di un aggiornamento. Generato dal manifesto Di importazione.
updateManifestSignature Oggetto JSON cloud to device Firma Web JSON (JWS) con chiavi Web JSON usate per la verifica dell'origine.
fileUrls Mappa cloud to device 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 del dispositivo segnala uno stato per l'elaborazione dell'azione ricevuta. Per altre informazioni sulle richieste di flusso tra il servizio Aggiornamento dispositivi e l'agente di aggiornamento del dispositivo, 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 Arrestare l'elaborazione dell'azione corrente e tornare a Idleo indicare a un agente nello Failed stato di tornare a Idle.
download 0 Scaricare contenuto pubblicato o aggiornare e qualsiasi altro contenuto necessario. Questa azione viene inviata solo ai dispositivi con la versione dell'agente 0.7.0 o versione precedente.
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 dell'agente 0.7.0 o versione precedente.
apply 2 Finalizzare l'aggiornamento. Segnala al sistema di riavviare, se necessario. Questa azione viene inviata solo ai dispositivi con la versione dell'agente 0.7.0 o versione precedente.

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 proprietà e DeviceInformation.model per la DeviceInformation.manufacturer 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 Tipo 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
model 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
totalStorage 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

ID modello

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 con il valore "dtmi:azure:iot:deviceUpdateModel;1" come parte della connessione del dispositivo. Informazioni su come annunciare un ID modello.