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:
- Comprendere il client del dispositivo Plug and Play IoT.
- Vedere come viene implementato l'agente Di aggiornamento dispositivi.
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 Idle o 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.