Apparaatupdate voor IoT Hub en IoT-Plug en Play
Device Update for IoT Hub maakt gebruik van IoT Plug en Play om apparaten te detecteren en beheren die geschikt zijn voor draadloze updates. De Device Update-service verzendt en ontvangt eigenschappen en berichten naar en van apparaten met behulp van IoT Plug en Play-interfaces. Apparaatupdate voor IoT Hub vereist dat IoT-apparaten de volgende interfaces en model-id implementeren.
Voor meer informatie:
- Inzicht in de IoT-Plug en Play-apparaatclient.
- Bekijk hoe de Device Update-agent is geïmplementeerd.
Core-interface van Device Update
De DeviceUpdateCore-interface wordt gebruikt om updateacties en metagegevens naar apparaten te verzenden en de updatestatus van apparaten te ontvangen. De Interface DeviceUpdateCore is opgesplitst in twee objecteigenschappen.
De verwachte onderdeelnaam in uw model is 'deviceUpdate' wanneer deze interface wordt geïmplementeerd. Meer informatie over Azure IoT Plug en Play-onderdelen.
Metagegevens van agent
De Device Update-agent gebruikt metagegevensvelden van de agent om informatie te verzenden naar Device Update-services.
Naam | Schema | Richting | Beschrijving | Voorbeeld |
---|---|---|---|---|
deviceProperties | Kaart | apparaat naar cloud | De set eigenschappen die de fabrikant, het model en andere apparaatgegevens bevat. | Zie de sectie Apparaateigenschappen voor meer informatie. |
compatPropertyNames | Tekenreeks (door komma's gescheiden) | apparaat naar cloud | De gerapporteerde eigenschappen van het apparaat die worden gebruikt om te controleren op compatibiliteit van het apparaat voor de implementatie van de update. Beperkt tot vijf apparaateigenschappen. | "compatPropertyNames": "manufacturer,model" |
lastInstallResult | Kaart | apparaat naar cloud | Het resultaat dat door de agent is gerapporteerd. Het bevat resultaatcode, uitgebreide resultaatcode en resultaatdetails voor de hoofdupdate 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 pogingen. | 700 |
extendedResultCode | geheel getal | apparaat naar cloud | Een code die aanvullende informatie over het resultaat bevat. Kan worden ingevuld voor geslaagde of mislukte pogingen. | 0x80004005 |
resultDetails | tekenreeks | apparaat naar cloud | Door de klant gedefinieerde tekenreeks voor vrije formulieren om aanvullende resultaatdetails op te geven. Terug naar de tweeling zonder parseren | |
stepResults | map | apparaat naar cloud | Het resultaat dat is gerapporteerd door de agent 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 elke aanvraag voor opnieuw proberen die van de service naar de agent is verzonden. | "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-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 | Description |
---|---|---|---|
manufacturer | tekenreeks | apparaat naar cloud | De fabrikant van het apparaat, gerapporteerd via deviceProperties . Deze eigenschap wordt gelezen vanaf een van de twee locaties: ten eerste 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 compileertijd voor ADUC_DEVICEPROPERTIES_MANUFACTURER gerapporteerd. 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 vanaf een van de twee locaties: ten eerste probeert de DeviceUpdateCore-interface de waarde 'aduc_model' uit het configuratiebestand te lezen. Als de waarde niet wordt ingevuld in het configuratiebestand, wordt standaard de definitie van de compileertijd voor ADUC_DEVICEPROPERTIES_MODEL gerapporteerd. Deze eigenschap wordt alleen gerapporteerd tijdens het opstarten. Standaardwaarde: 'Video' |
interfaceId | tekenreeks | apparaat naar cloud | Deze eigenschap wordt door de service gebruikt om de interfaceversie te identificeren die wordt gebruikt door de Device Update-agent. De interface-id is vereist voor de Device Update-service om de agent te beheren en te communiceren. Standaardwaarde: 'dtmi:azure:iot:deviceUpdate;1' voor apparaten met DU-agentversie 0.8.0. |
aduVer | tekenreeks | apparaat naar cloud | Versie van de Device Update-agent die wordt uitgevoerd op het apparaat. Deze waarde wordt alleen gelezen uit de build als ENABLE_ADU_TELEMETRY_REPORTING is ingesteld op 1 (waar) tijdens het compileren. Klanten kunnen ervoor kiezen om zich af te melden voor versierapportage door de waarde in te stellen op 0 (onwaar). Eigenschappen van Device Update-agent aanpassen. |
Dover | tekenreeks | apparaat naar cloud | Versie van de Delivery Optimization-agent die wordt uitgevoerd op het apparaat. 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 | De implementeerfunctie kan andere apparaateigenschappen definiëren die moeten worden gebruikt voor de compatibiliteitscontrole tijdens de implementatie van de update. |
IoT Hub voorbeeld van apparaatdubbel:
"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\"}"
},
Notitie
Het apparaat of de module moet de {"__t": "c"}
markering toevoegen om aan te geven dat het element naar een onderdeel verwijst. Zie IoT Plug en Play conventies voor meer informatie.
Staat
Het veld Status is de status die is gerapporteerd door de Device Update -agent (DU) na ontvangst van een actie van de Device Update-service. De 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 | Waarde | 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 geretourneerd naar de Idle status. |
DeploymentInprogress | 6 | Er wordt een implementatie uitgevoerd. |
Mislukt | 255 | Er is een fout opgetreden tijdens het bijwerken. |
DownloadenSucceededed | 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
Metagegevens van de service bevatten velden die de Device Update-services gebruiken om acties en gegevens te communiceren met de Device Update-agent.
Naam | Schema | Richting | Description |
---|---|---|---|
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-webhandtekening (JWS) met JSON-websleutels die worden gebruikt voor bronverificatie. |
fileUrls | Kaart | cloud naar apparaat | Kaart van FileID naar DownloadUrl . Vertelt de agent 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 worden uitgevoerd door de Device Update-agent, zoals aangegeven door de Device Update-service. De Device Update-agent rapporteert een status voor het verwerken 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 | Waarde | Beschrijving |
---|---|---|
applyDeployment | 3 | Pas de update toe. Het geeft aan dat het apparaat de geïmplementeerde update moet toepassen |
annuleren | 255 | Stop met het verwerken van de huidige actie en ga terug naar Idle , of laat een agent met de Failed status teruggaan naar Idle . |
downloaden | 0 | Download gepubliceerde inhoud of update 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 het installatieprogramma wordt aangeroepen voor de inhoud of update. 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 zo 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 apparaatgegevens is een concept dat wordt gebruikt in de Architectuur van IoT Plug en Play. Het bevat apparaat-naar-cloud-eigenschappen die informatie bieden over de hardware en het besturingssysteem van het apparaat. Device Update voor IoT Hub gebruikt de DeviceInformation.manufacturer
eigenschappen en DeviceInformation.model
voor telemetrie en diagnostische gegevens. Zie dit voorbeeld van de interface voor apparaatgegevens 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-onderdelen
Naam | Type | Schema | Richting | Beschrijving | Voorbeeld |
---|---|---|---|---|---|
manufacturer | Eigenschap | tekenreeks | apparaat naar cloud | Bedrijfsnaam van de fabrikant van het apparaat. Deze eigenschap kan hetzelfde zijn als de naam van de OEM (Original Equipment Manufacturer). | Contoso |
model | Eigenschap | tekenreeks | apparaat naar cloud | Naam of id van apparaatmodel. | IoT Edge apparaat |
swVersion | Eigenschap | tekenreeks | apparaat naar cloud | Versie van de software op uw apparaat. swVersion kan de versie van uw firmware zijn. | 4.15.0-122 |
osName | Eigenschap | tekenreeks | apparaat naar cloud | Naam van het besturingssysteem op het apparaat. | Ubuntu Server 18.04 |
processorArchitecture | Eigenschap | tekenreeks | apparaat naar cloud | Architectuur van de processor op het apparaat. | ARM64 |
processorManufacturer | Eigenschap | tekenreeks | apparaat naar cloud | Naam van de fabrikant van de processor op het apparaat. | Microsoft |
totalStorage | Eigenschap | tekenreeks | apparaat naar cloud | Totale beschikbare opslag op het apparaat in kilobytes. | 2048 |
totalMemory | Eigenschap | tekenreeks | apparaat naar cloud | Totaal beschikbaar geheugen op het apparaat in kilobytes. | 256 |
Model-id
Model-id is de manier waarop 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 te adverteren in Azure IoT-toepassingen, gaat u naar IoT Plug en Play handleiding voor apparaatontwikkelaars.
Device Update voor IoT Hub vereist dat de IoT Plug en Play smart device een model-id aankondigt met de waarde 'dtmi:azure:iot:deviceUpdateModel;1' als onderdeel van de apparaatverbinding. Meer informatie over het aankondigen van een model-id.