Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento dei dispositivi per hub IoT usa Plug and Play IoT per individuare e gestire i dispositivi che supportano l'aggiornamento over-the-air. Questo articolo descrive come il servizio Aggiornamento dispositivi invia e riceve proprietà e messaggi da e verso i dispositivi usando interfacce Plug and Play IoT.
Per altre informazioni, vedere la guida per gli sviluppatori di dispositivi Plug and Play IoT e Come compilare l'agente di aggiornamento dispositivi.
Modelli di aggiornamento dei dispositivi
I dispositivi intelligenti usano ID modello Plug and Play IoT per pubblicizzare le proprie funzionalità alle applicazioni IoT di Azure. Aggiornamento dispositivi richiede che il Plug and Play IoT smart device annunci un ID modello come parte della connessione del dispositivo. Per ulteriori informazioni, vedere Annuncio dell'ID modello.
Aggiornamento dei dispositivi include diversi modelli IoT Plug and Play definiti che supportano le funzionalità di Aggiornamento dei dispositivi. Il modello **dtmi:azure:iot:deviceUpdateContractModel;3** Aggiornamento dispositivi supporta la funzionalità di aggiornamento dei dispositivi di base e usa l'interfaccia principale di Aggiornamento dispositivi 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;3**, che estende **deviceUpdateContractModel;3** e usa anche interfacce Plug and Play IoT che inviano informazioni sulle proprietà del dispositivo e abilitano le funzionalità di diagnostica. Per queste e altre versioni, vedere Modelli di aggiornamento dei dispositivi di Azure Plug and Play IoT.
L'agente di Aggiornamento dispositivi usa **dtmi:azure:iot:deviceUpdateModel;3** che supporta tutte le funzionalità più recenti nella versione Device Update 1.1.0. Questo modello supporta l'importazione del manifesto versione 5.0. I manifesti meno recenti funzionano con gli agenti più recenti, ma le nuove funzionalità richiedono la versione più recente del manifesto.
Metadati dell'agente
L'agente Device Update usa i seguenti campi di metadati per inviare informazioni ai servizi Device Update.
| Nome | Schema | Direzione | Descrizione |
|---|---|---|---|
| Proprietà del dispositivo | Mappa | da dispositivo a cloud | Set di proprietà che contengono il produttore, il modello e altre informazioni sul dispositivo. Per informazioni dettagliate, vedere Proprietà del dispositivo. |
| compatPropertyNames | Stringa (delimitata da virgole) | da dispositivo a cloud | Fino a cinque proprietà impiegate per controllare la compatibilità dei dispositivi al fine di distribuire gli aggiornamenti. Esempio: "compatPropertyNames": "produttore,modello" |
| lastInstallResult | Mappa | dal dispositivo al cloud | Risultato segnalato dall'agente, contenente il codice del risultato, il codice del risultato 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. Esempio: 700 |
| codiceRisultatoEsteso | integer | da dispositivo a cloud | Codice che contiene altre informazioni sul risultato. Può essere popolato sia per un esito positivo che per uno negativo. Esempio: 0x80004005 |
| Dettagli del risultato | string | da dispositivo a cloud | Stringa a mano libera fornita dall'utente per fornire altri dettagli sui risultati. Restituito al gemello senza analizzare. |
| 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. Esempio: "step_1": { "resultCode": 0,"extendedResultCode": 0, "resultDetails": ""} |
| stato | integer | da dispositivo a cloud | Un intero che indica lo stato corrente dell'Agente di aggiornamento dispositivo. Per informazioni dettagliate, vedere State (Stato ). |
| flusso di lavoro | complesso | da dispositivo a cloud | Set di valori che indicano la distribuzione in cui l'agente sta attualmente lavorando, l'ID della distribuzione attualmente installata e il riconoscimento di qualsiasi richiesta di ripetizione dei tentativi inviata dal servizio all'agente. L'ID segnala un valore workflow una volta che una distribuzione viene annullata. Esempio: "workflow": {"action": 3,"ID": "11b6a7c3-6956-4b33-b5a9-87fdd79d2f01","retryTimestamp": "20222-01-26T11:33:29.9680598Z"} |
| installedUpdateId | string | da dispositivo a cloud | ID della distribuzione di Device Update attualmente installata. Questo valore cattura il codice JSON dell'ID aggiornamento, o null per un dispositivo che non ha mai avuto un aggiornamento tramite Device Update. Esempio: "installedUpdateID": "{\"provider\":\"contoso\",\"name\":\"image-update\",\"version\":\"1.0.0\"}" |
esempio di dispositivo gemello 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
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.
Proprietà dei dispositivi
Il campo deviceProperties contiene le informazioni sul produttore e sul modello per un dispositivo.
| Nome | Schema | Direzione | Descrizione |
|---|---|---|---|
| produttore | string | da dispositivo a cloud | Il produttore del dispositivo, segnalato tramite deviceProperties.L'interfaccia DeviceUpdateCore tenta innanzitutto di leggere il aduc_manufacturer valore dal file di configurazione. Se il valore non viene popolato nel file di configurazione, per impostazione predefinita l'interfaccia 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 | Il modello del dispositivo, segnalato tramite deviceProperties. L'interfaccia DeviceUpdateCore tenta innanzitutto di leggere il aduc_model valore dal file di configurazione. Se il valore non viene popolato nel file di configurazione, per impostazione predefinita l'interfaccia segnala 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 | Proprietà che il servizio utilizza per identificare la versione del modello di base che l'agente di aggiornamento dispositivi usa per la gestione e la comunicazione con l'agente. Valore: dtmi:azure:iot:deviceUpdateContractModel;3 per i dispositivi che usano l'agente di Aggiornamento dispositivi versione 1.1.0. Nota: gli agenti che usano dtmi:azure:iot:deviceUpdateModel;2 devono segnalare contractModelId come dtmi:azure:iot:deviceUpdateContractModel;3, perché deviceUpdateModel;3 viene esteso da deviceUpdateContractModel;3. |
| aduVer | string | da dispositivo a cloud | Versione dell'agente di aggiornamento dispositivi in esecuzione sul dispositivo. Questo valore viene letto dalla compilazione solo se ENABLE_ADU_TELEMETRY_REPORTING è impostato su 1 (true) durante la fase di compilazione. È possibile scegliere di rifiutare esplicitamente la segnalazione della versione impostando il valore su 0 (false). Per altre informazioni, vedere Come costruire l'agente di aggiornamento dispositivi. |
| doVer | string | da dispositivo a cloud | Versione dell'agente di ottimizzazione della distribuzione in esecuzione sul dispositivo. Il valore viene letto dalla compilazione solo se ENABLE_ADU_TELEMETRY_REPORTING è impostato su 1 (true) durante la fase di compilazione. È possibile scegliere di rifiutare esplicitamente la segnalazione della versione impostando il valore su 0 (false). Per altre informazioni, vedere Come personalizzare le proprietà dell'agente Ottimizzazione recapito. |
| Proprietà di compatibilità personalizzate | definito dall'utente | da dispositivo a cloud | Altre proprietà del dispositivo definite dall'utente da usare per il controllo della compatibilità quando è destinata alla distribuzione degli aggiornamenti. |
Stato
Il campo stato indica lo stato segnalato dall'agente di aggiornamento dispositivi in risposta a un'Azione inviata 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 dell'agente.
| Nome | valore | Descrizione |
|---|---|---|
| Inattivo | 0 | Il dispositivo è pronto per ricevere un'azione dal servizio Aggiornamento dispositivi. Dopo un aggiornamento riuscito, lo stato torna allo Idle stato. |
| DistribuzioneInCorso | 6 | È in corso una distribuzione. |
| Non riuscito | 255 | Si è verificato un errore durante l'aggiornamento. |
| Download riuscito | 2 | Si è verificato un download riuscito. Solo i dispositivi con la versione 0.7.0 o precedente dell'agente segnalano questo stato. |
| Installazione riuscita | 4 | Si è verificata un'installazione riuscita. Solo i dispositivi con la versione 0.7.0 o precedente dell'agente segnalano questo stato. |
Azione
Il campo azione rappresenta l'azione che l'agente di Aggiornamento dispositivi deve eseguire come indicato dal servizio Aggiornamento dispositivi. L'agente di aggiornamento del dispositivo segnala uno stato per l'elaborazione dell'azione che riceve. Per altre informazioni sulle richieste che passano tra il servizio Aggiornamento dispositivi e l'agente di Aggiornamento dispositivi, vedere il flusso di lavoro dell'agente.
| Nome | valore | Descrizione |
|---|---|---|
| applicaDistribuzione | 3 | Applicare l'aggiornamento distribuito. |
| annulla | 255 | Interrompere l'elaborazione dell'azione corrente e tornare a Idle, oppure indicare a un agente nello stato Failed di tornare a Idle. |
| scaricamento | 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. |
| installare | 1 | Installare il contenuto o l'aggiornamento, solitamente per richiamare il programma di installazione per il contenuto o l'aggiornamento. Aggiornamento dispositivo invia questa azione solo ai dispositivi con versione 0.7.0 o precedente dell'agente. |
| applicare | 2 | Finalizzare l'aggiornamento riavviando, se necessario. Aggiornamento dispositivo invia questa azione solo ai dispositivi con versione 0.7.0 o precedente dell'agente. |
Metadati del servizio
I metadati del servizio contengono campi usati dal servizio Aggiornamento dispositivi per comunicare azioni e dati all'agente di Aggiornamento dispositivi.
| Nome | Schema | Direzione | Descrizione |
|---|---|---|---|
| azione | integer | dal cloud al dispositivo | Intero che corrisponde a un'azione che l'agente deve eseguire. Per informazioni dettagliate, vedere Azione . |
| aggiornaManifesto | string | dal cloud al dispositivo | Descrive il contenuto di un aggiornamento. Generato dal manifesto di importazione. |
| aggiornaFirmaManifesto | Oggetto JSON | dal cloud al dispositivo | Una firma Web JSON (JWS) con chiavi Web JSON da usare per la verifica dell'origine. |
| fileUrls | Mappa | 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. |
Interfaccia delle informazioni sul dispositivo
L'interfaccia delle informazioni sul dispositivo è un concetto usato all'interno dell'architettura Plug and Play IoT. L'interfaccia contiene proprietà da dispositivo a cloud che forniscono informazioni sull'hardware del dispositivo e sul sistema operativo. Device Update usa le proprietà DeviceInformation.manufacturer e DeviceInformation.model per la telemetria e la diagnostica. Per un esempio dell'interfaccia delle informazioni sul dispositivo, vedere https://devicemodels.azure.com/dtmi/azure/devicemanagement/deviceinformation-1.json.
Quando si implementa questa interfaccia, il nome del componente previsto nel modello è deviceInformation. Per ulteriori informazioni, vedere la guida alla modellazione IoT Plug and Play.
| Nome | Tipo | Schema | Direzione | Descrizione | Esempio |
|---|---|---|---|---|---|
| produttore | Proprietà | string | da dispositivo a cloud | Nome della società del produttore del dispositivo. Il produttore potrebbe 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 |
| versione software | Proprietà | string | da dispositivo a cloud | Versione del software nel dispositivo. La swVersion potrebbe essere la versione del tuo firmware. | 4.15.0-122 |
| osName | Proprietà | string | da dispositivo a cloud | Nome del sistema operativo nel dispositivo. | Ubuntu Server 18.04 |
| architettura del processore | Proprietà | string | da dispositivo a cloud | Architettura del processore nel dispositivo. | ARM64 |
| produttore del processore | Proprietà | string | da dispositivo a cloud | Nome del produttore del processore nel dispositivo. | Microsoft |
| archiviazione totale | 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 |