Apparaatupdate voor IoT Hub en IoT-Plug en Play
Apparaatupdate voor IoT Hub maakt gebruik van IoT-Plug en Play voor het detecteren en beheren van apparaten die over-the-air-updates geschikt zijn. De Device Update-service verzendt en ontvangt eigenschappen en berichten van en naar apparaten met behulp van IoT Plug en Play-interfaces.
Bekijk voor meer informatie:
- Meer informatie over de IoT Plug en Play-apparaatclient.
- Bekijk hoe de Device Update-agent is geïmplementeerd.
Apparaatupdatemodellen
Model-id is hoe slimme apparaten hun mogelijkheden adverteren naar Azure IoT-toepassingen met IoT Plug en Play. Voor meer informatie over het bouwen van slimme apparaten om hun mogelijkheden naar Azure IoT-toepassingen te adverteren, gaat u naar de ontwikkelaarshandleiding van IoT Plug en Play apparaat.
Apparaatupdate voor IoT Hub vereist dat het IoT Plug en Play slim apparaat een model-id aankondigt als onderdeel van de apparaatverbinding. Meer informatie over het aankondigen van een model-id.
Device Update heeft verschillende PnP-modellen gedefinieerd die ONDERSTEUNING bieden voor DU-functies. Het Device Update-model, dtmi:azure:iot:deviceUpdateContractModel; 3', ondersteunt de kernfunctionaliteit en maakt gebruik van de kerninterface voor apparaatupdates om updateacties en metagegevens naar apparaten te verzenden en de updatestatus van apparaten te ontvangen.
Het andere ondersteunde model is dtmi:azure:iot:deviceUpdateModel; 3 waarmee deviceUpdateContractModel wordt uitgebreid ; 3 en maakt ook gebruik van andere PnP-interfaces die apparaateigenschappen en -informatie verzenden en diagnostische functies inschakelen. Meer informatie over de versies van [Apparaatupdatemodellen en interfaces] (https://github.com/Azure/iot-plugandplay-models/tree/main/dtmi/azure/iot).
De Device Update-agent maakt gebruik van het dtmi:azure:iot:deviceUpdateModel; 3 die alle nieuwste functies in de release 1.1.0 ondersteunt. Dit model ondersteunt de versie van het V5-manifest. Oudere manifesten werken met de nieuwste agents, maar voor nieuwe functies is het gebruik van de nieuwste manifestversie vereist.
Metagegevens van agent
De Device Update-agent maakt gebruik van metagegevensvelden voor agents om informatie te verzenden naar Device Update-services.
Naam | Schema | Richting | Beschrijving | Voorbeeld |
---|---|---|---|---|
deviceProperties | Overzicht | apparaat naar cloud | De set eigenschappen die de fabrikant, het model en andere apparaatgegevens bevatten. | Zie de sectie Apparaateigenschappen voor meer informatie. |
compatPropertyNames | Tekenreeks (door komma's gescheiden) | apparaat naar cloud | Het apparaat heeft gerapporteerde eigenschappen die worden gebruikt om te controleren op compatibiliteit van het apparaat om de update-implementatie te richten. Beperkt tot vijf apparaateigenschappen. | "compatPropertyNames": "manufacturer,model" |
lastInstallResult | Overzicht | apparaat naar cloud | Het resultaat dat door de agent is gerapporteerd. Deze bevat resultaatcode, uitgebreide resultaatcode en resultaatdetails voor hoofdupdates en andere stapupdates. | |
resultCode | geheel getal | apparaat naar cloud | Een code die informatie bevat over het resultaat van de laatste updateactie. Kan worden ingevuld voor geslaagde of mislukte bewerkingen. | 700 |
extendedResultCode | geheel getal | apparaat naar cloud | Een code die aanvullende informatie over het resultaat bevat. Kan worden ingevuld voor geslaagde of mislukte bewerkingen. | 0x80004005 |
resultDetails | tekenreeks | apparaat naar cloud | Door de klant gedefinieerde tekenreeks voor vrije formulieren om aanvullende resultaatdetails op te geven. Geretourneerd naar de tweeling zonder parseren | |
stepResults | map | apparaat naar cloud | Het resultaat dat door de agent wordt gerapporteerd met resultaatcode, uitgebreide resultaatcode en resultaatdetails voor stapupdates. | "step_1": { "resultCode": 0,"extendedResultCode": 0, "resultDetails": ""} |
staat | geheel getal | apparaat naar cloud | Een geheel getal dat de huidige status van de Device Update-agent aangeeft. | Zie de sectie Status voor meer informatie. |
werkstroom | Complexe | apparaat naar cloud | Een set waarden die aangeven aan welke implementatie de agent momenteel werkt, id van de huidige implementatie en bevestiging van een aanvraag voor opnieuw proberen die van de service naar de agent wordt verzonden. Houd er rekening mee dat de werkstroom-id een waarde voor knooppuntimplementatie rapporteert zodra de implementatie is geannuleerd. | "workflow": {"action": 3,"ID": "11b6a7c3-6956-4b33-b5a9-87fdd79d2f01","retryTimestamp": "2022-01-26T11:33:29.9680598Z"} |
installedUpdateId | tekenreeks | apparaat naar cloud | Een id van de update die momenteel is geïnstalleerd (via Device Update). Deze waarde is een tekenreeks die de JSON van de update-id of null vastlegt voor een apparaat dat nog nooit een update heeft uitgevoerd via Device Update. | installedUpdateID{"provider":"contoso","name":"image-update","version":"1.0.0"}" |
Apparaateigenschappen
Het veld deviceProperties bevat de fabrikant en modelinformatie voor een apparaat.
Naam | Schema | Richting | Beschrijving |
---|---|---|---|
fabrikant | tekenreeks | apparaat naar cloud | De fabrikant van het apparaat, gerapporteerd via deviceProperties . Deze eigenschap wordt gelezen van een van de twee plaatsen: eerst probeert de DeviceUpdateCore-interface de waarde 'aduc_manufacturer' uit het configuratiebestand te lezen. Als de waarde niet is ingevuld in het configuratiebestand, wordt standaard de definitie van de compilatietijd gerapporteerd voor ADUC_DEVICEPROPERTIES_MANUFACTURER. Deze eigenschap wordt alleen gerapporteerd tijdens het opstarten. Standaardwaarde: 'Contoso'. |
model | tekenreeks | apparaat naar cloud | Het apparaatmodel van het apparaat, gerapporteerd via deviceProperties . Deze eigenschap wordt gelezen van een van de twee plaatsen: eerst probeert de DeviceUpdateCore-interface de waarde 'aduc_model' uit het configuratiebestand te lezen. Als de waarde niet is ingevuld in het configuratiebestand, wordt standaard de definitie van de compilatietijd gerapporteerd voor ADUC_DEVICEPROPERTIES_MODEL. Deze eigenschap wordt alleen gerapporteerd tijdens het opstarten. Standaardwaarde: 'Video' |
contractModelId | tekenreeks | apparaat naar cloud | Deze eigenschap wordt door de service gebruikt om de basismodelversie te identificeren die door de Device Update-agent wordt gebruikt voor het beheren en communiceren met de agent. Waarde: 'dtmi:azure:iot:deviceUpdateContractModel; 3' voor apparaten die gebruikmaken van DU-agent versie 1.1.0. Opmerking: Agents die gebruikmaken van het 'dtmi:azure:iot:deviceUpdateModel; 2' moet de contractModelId rapporteren als 'dtmi:azure:iot:deviceUpdateContractModel; 3' als deviceUpdateModel; 3 is uitgebreid van deviceUpdateContractModel; 3 |
aduVer | tekenreeks | apparaat naar cloud | Versie van de Device Update-agent die op het apparaat wordt uitgevoerd. Deze waarde wordt alleen gelezen uit de build als ENABLE_ADU_TELEMETRY_REPORTING is ingesteld op 1 (true) tijdens het compileren. Klanten kunnen ervoor kiezen om zich af te melden voor versierapportage door de waarde in te stellen op 0 (onwaar). De eigenschappen van de Device Update-agent aanpassen. |
Dover | tekenreeks | apparaat naar cloud | Versie van de Delivery Optimization-agent die op het apparaat wordt uitgevoerd. De waarde wordt alleen gelezen uit de build als ENABLE_ADU_TELEMETRY_REPORTING is ingesteld op 1 (true) tijdens het compileren. Klanten kunnen ervoor kiezen om zich af te melden voor de versierapportage door de waarde in te stellen op 0 (onwaar). Eigenschappen van Delivery Optimization-agent aanpassen. |
Aangepaste compatibiliteitseigenschappen | Door de gebruiker gedefinieerd | apparaat naar cloud | Implementer kan andere apparaateigenschappen definiëren die moeten worden gebruikt voor de compatibiliteitscontrole tijdens de update-implementatie. |
Voorbeeld van IoT Hub-apparaatdubbel:
"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\"}"
},
Notitie
Het apparaat of de module moet de {"__t": "c"}
markering toevoegen om aan te geven dat het element verwijst naar een onderdeel. Zie IoT Plug en Play conventies voor meer informatie.
Staat
Het veld Status is de status die wordt gerapporteerd door de agent Device Update (DU) na ontvangst van een actie van de Device Update-service. Status wordt gerapporteerd als reactie op een actie (zie de sectie Actie voor meer informatie) die vanuit de Device Update-service naar de Device Update-agent is verzonden. Zie de overzichtswerkstroom voor meer informatie over aanvragen die stromen tussen de Device Update-service en de Device Update-agent.
Naam | Weergegeven als | Beschrijving |
---|---|---|
Niet-actief | 0 | Het apparaat is klaar om een actie te ontvangen van de Device Update-service. Na een geslaagde update wordt de status teruggezet naar de Idle status. |
DeploymentInprogress | 6 | Er wordt een implementatie uitgevoerd. |
Mislukt | 255 | Er is een fout opgetreden tijdens het bijwerken. |
DownloadSucceeded | 2 | Een geslaagde download. Deze status wordt alleen gerapporteerd door apparaten met agentversie 0.7.0 of ouder. |
InstallSucceededed | 4 | Een geslaagde installatie. Deze status wordt alleen gerapporteerd door apparaten met agentversie 0.7.0 of ouder. |
Servicemetagegevens
Servicemetagegevens bevatten velden die door de Device Update-services worden gebruikt om acties en gegevens te communiceren met de Device Update-agent.
Naam | Schema | Richting | Beschrijving |
---|---|---|---|
action | geheel getal | cloud naar apparaat | Een geheel getal dat overeenkomt met een actie die de agent moet uitvoeren. Zie de sectie Actie voor meer informatie. |
updateManifest | tekenreeks | cloud naar apparaat | Wordt gebruikt om de inhoud van een update te beschrijven. Gegenereerd op basis van het importmanifest. |
updateManifestSignature | JSON-object | cloud naar apparaat | Een JSON Web Signature (JWS) met JSON-websleutels die worden gebruikt voor bronverificatie. |
fileUrls | Overzicht | cloud naar apparaat | Kaart van FileID naar DownloadUrl . Geeft de agent aan welke bestanden moeten worden gedownload en welke hash moet worden gebruikt om te controleren of de bestanden correct zijn gedownload. |
Actie
Het actieveld vertegenwoordigt de acties die door de Device Update-agent worden uitgevoerd, zoals aangegeven door de Device Update-service. De Device Update-agent rapporteert een status voor de verwerking van de ontvangen actie. Zie de overzichtswerkstroom voor meer informatie over aanvragen die stromen tussen de Device Update-service en de Device Update-agent.
Naam | Weergegeven als | Beschrijving |
---|---|---|
applyDeployment | 3 | Pas de update toe. Het geeft aan dat het apparaat de geïmplementeerde update toepast |
Annuleren | 255 | Stop de verwerking van de huidige actie en ga terug naar Idle , of vertel een agent in de Failed status om terug te gaan naar Idle . |
downloadenen | 0 | Gepubliceerde inhoud downloaden of bijwerken en andere benodigde inhoud. Deze actie wordt alleen verzonden naar apparaten met agentversie 0.7.0 of ouder. |
installeren | 1 | Installeer de inhoud of update. Deze actie betekent meestal dat u het installatieprogramma voor de inhoud of update aanroept. Deze actie wordt alleen verzonden naar apparaten met agentversie 0.7.0 of ouder. |
toepassen | 2 | Voltooi de update. Het geeft aan dat het systeem indien nodig opnieuw moet worden opgestart. Deze actie wordt alleen verzonden naar apparaten met agentversie 0.7.0 of ouder. |
Interface voor apparaatgegevens
De interface voor apparaatinformatie is een concept dat wordt gebruikt in IoT Plug en Play-architectuur. Het bevat apparaat-naar-cloud-eigenschappen die informatie bieden over de hardware en het besturingssysteem van het apparaat. Apparaatupdate voor IoT Hub maakt gebruik van de DeviceInformation.manufacturer
en DeviceInformation.model
eigenschappen voor telemetrie en diagnostische gegevens. Zie dit voorbeeld van de apparaatinformatie-interface voor meer informatie.
De verwachte onderdeelnaam in uw model is deviceInformation wanneer deze interface wordt geïmplementeerd. Meer informatie over Azure IoT Plug en Play Components
Name | Type | Schema | Richting | Beschrijving | Voorbeeld |
---|---|---|---|---|---|
fabrikant | Eigenschappen | tekenreeks | apparaat naar cloud | Bedrijfsnaam van de fabrikant van het apparaat. Deze eigenschap kan hetzelfde zijn als de naam van de oorspronkelijke fabrikant van apparatuur (OEM). | Contoso |
model | Eigenschappen | tekenreeks | apparaat naar cloud | Naam of id van apparaatmodel. | IoT Edge-apparaat |
swVersion | Eigenschappen | tekenreeks | apparaat naar cloud | Versie van de software op uw apparaat. swVersion kan de versie van uw firmware zijn. | 4.15.0-122 |
osName | Eigenschappen | tekenreeks | apparaat naar cloud | Naam van het besturingssysteem op het apparaat. | Ubuntu Server 18.04 |
processorArchitecture | Eigenschappen | tekenreeks | apparaat naar cloud | Architectuur van de processor op het apparaat. | ARM64 |
processorManufacturer | Eigenschappen | tekenreeks | apparaat naar cloud | Naam van de fabrikant van de processor op het apparaat. | Microsoft |
totalStorage | Eigenschappen | tekenreeks | apparaat naar cloud | Totale beschikbare opslag op het apparaat in kilobytes. | 2048 |
totalMemory | Eigenschappen | tekenreeks | apparaat naar cloud | Totaal beschikbaar geheugen op het apparaat in kilobytes. | 256 |