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 Idle un 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 |