Aktualizace zařízení pro IoT Hub a IoT Plug and Play
Služba Device Update pro IoT Hub používá IoT Plug and Play ke zjišťování a správě zařízení, která jsou schopná aktualizace přes vzduch. Služba Device Update odesílá a přijímá vlastnosti a zprávy do a ze zařízení pomocí rozhraní IoT Plug and Play. Aktualizace zařízení pro IoT Hub vyžaduje, aby zařízení IoT implementovaly následující rozhraní a ID modelu.
Další informace najdete tady:
- Seznamte se s klientem IoT Plug and Play zařízení.
- Podívejte se, jak se implementuje agent aktualizace zařízení.
Základní rozhraní aktualizace zařízení
Rozhraní DeviceUpdateCore slouží k odesílání aktualizačních akcí a metadat do zařízení a k příjmu stavu aktualizací ze zařízení. Rozhraní DeviceUpdateCore je rozděleno do dvou vlastností objektu.
Očekávaný název komponenty ve vašem modelu je "deviceUpdate" při implementaci tohoto rozhraní. Přečtěte si další informace o komponentách Azure IoT Plug and Play.
Metadata agenta
Agent aktualizace zařízení používá pole metadat agenta k odesílání informací do služeb Device Update.
Name | Schéma | Směr | Popis | Příklad |
---|---|---|---|---|
deviceVlastnosti | Mapa | ze zařízení do cloudu | Sada vlastností, které obsahují informace o výrobci, modelu a dalších informacích o zařízení. | Podrobnosti najdete v části Vlastnosti zařízení . |
compatPropertyNames | Řetězec (oddělený čárkami) | ze zařízení do cloudu | Zařízení nahlásilo vlastnosti, které se používají ke kontrole kompatibility zařízení určeného pro nasazení aktualizací. Omezeno na pět vlastností zařízení. | "compatPropertyNames": "manufacturer,model" |
lastInstallResult | Mapa | ze zařízení do cloudu | Výsledek hlášený agentem Obsahuje kód výsledku, kód rozšířeného výsledku a podrobnosti o výsledku pro hlavní aktualizace a aktualizace dalších kroků. | |
kód výsledku | integer | ze zařízení do cloudu | Kód, který obsahuje informace o výsledku poslední akce aktualizace. Lze naplnit pro úspěch nebo neúspěch. | 700 |
extendedResultCode | integer | ze zařízení do cloudu | Kód, který obsahuje další informace o výsledku. Lze naplnit pro úspěch nebo neúspěch. | 0x80004005 |
resultDetails | řetězec | ze zařízení do cloudu | Zákazníkem definovaný řetězec volného formuláře, který poskytuje další podrobnosti o výsledku. Vráceno do dvojčete bez analýzy | |
stepResults | mapa | ze zařízení do cloudu | Výsledek nahlášený agentem obsahující kód výsledku, kód rozšířeného výsledku a podrobnosti o výsledku pro aktualizace kroků. | "step_1": { "resultCode": 0,"extendedResultCode": 0, "resultDetails": ""} |
state | integer | ze zařízení do cloudu | Celé číslo, které označuje aktuální stav agenta aktualizace zařízení. | Podrobnosti najdete v části Stav . |
pracovní postup | Složité | ze zařízení do cloudu | Sada hodnot, které určují, na kterém nasazení agent právě pracuje, ID aktuálního nasazení a potvrzení všech opakovaných požadavků odeslaných ze služby do agenta. | "workflow": {"action": 3,"ID": "11b6a7c3-6956-4b33-b5a9-87fdd79d2f01","retryTimestamp": "2022-01-26T11:33:29.9680598Z"} |
installedUpdateId | řetězec | ze zařízení do cloudu | ID aktualizace, která je aktuálně nainstalovaná (prostřednictvím služby Device Update). Tato hodnota je řetězec zachycující ID aktualizace JSON nebo hodnotu null pro zařízení, které nikdy neproběholo aktualizace prostřednictvím aktualizace zařízení. | installedUpdateID{"provider":"contoso","name":"image-update","version":"1.0.0"}" |
Vlastnosti zařízení
Pole deviceProperties obsahuje informace o výrobci a modelu zařízení.
Name | Schéma | Směr | Description |
---|---|---|---|
manufacturer | řetězec | ze zařízení do cloudu | Výrobce zařízení nahlášený prostřednictvím deviceProperties . Tato vlastnost se načítá z jednoho ze dvou míst – nejprve se rozhraní DeviceUpdateCore pokusí přečíst hodnotu aduc_manufacturer z konfiguračního souboru. Pokud se hodnota v konfiguračním souboru nenaplní, ve výchozím nastavení se nahlásí definice doby kompilace pro ADUC_DEVICEPROPERTIES_MANUFACTURER. Tato vlastnost je hlášena pouze při spuštění. Výchozí hodnota: Contoso. |
model | řetězec | ze zařízení do cloudu | Model zařízení nahlášený prostřednictvím deviceProperties . Tato vlastnost se načítá z jednoho ze dvou míst – nejprve se rozhraní DeviceUpdateCore pokusí přečíst hodnotu "aduc_model" z konfiguračního souboru. Pokud se hodnota v konfiguračním souboru nenaplní, ve výchozím nastavení se nahlásí definice doby kompilace pro ADUC_DEVICEPROPERTIES_MODEL. Tato vlastnost je hlášena pouze při spuštění. Výchozí hodnota: Video |
ID rozhraní | řetězec | ze zařízení do cloudu | Tuto vlastnost služba používá k identifikaci verze rozhraní používaného agentem Device Update. Id rozhraní vyžaduje služba Device Update ke správě agenta a komunikaci s ním. Výchozí hodnota: dtmi:azure:iot:deviceUpdate;1 pro zařízení používající agenta DU verze 0.8.0. |
aduVer | řetězec | ze zařízení do cloudu | Verze agenta služby Device Update spuštěného na zařízení. Tato hodnota se načte z sestavení pouze v případě, že je ENABLE_ADU_TELEMETRY_REPORTING během kompilace nastavena na hodnotu 1 (true). Zákazníci se můžou odhlásit z vytváření sestav verzí nastavením hodnoty na 0 (false). Postup přizpůsobení vlastností agenta služby Device Update |
Dover | řetězec | ze zařízení do cloudu | Verze agenta Optimalizace doručení spuštěného na zařízení. Hodnota se načte ze sestavení pouze v případě, že je ENABLE_ADU_TELEMETRY_REPORTING během kompilace nastavena na hodnotu 1 (true). Zákazníci se můžou rozhodnout, že se odhlásí z vytváření sestav verzí nastavením hodnoty na 0 (false). Přizpůsobení vlastností agenta Optimalizace doručení |
Vlastní vlastnosti kompatibility | Definováno uživatelem | ze zařízení do cloudu | Implementátor může definovat další vlastnosti zařízení, které se mají použít při kontrole kompatibility při cílení na nasazení aktualizací. |
příklad IoT Hub dvojčete zařízení:
"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\"}"
},
Poznámka
Zařízení nebo modul musí přidat {"__t": "c"}
značku označující, že prvek odkazuje na komponentu. Další informace najdete v tématu IoT Plug and Play konvence.
Stav
Pole Stav je stav hlášený agentem Device Update (DU) po přijetí akce ze služby Device Update. Stav se hlásí v reakci na akci (podrobnosti najdete v části Akce ) odeslanou agentovi Device Update ze služby Device Update. Další informace o požadavcích, které proudí mezi službou Device Update a agentem Device Update, najdete v pracovním postupu přehledu.
Name | Hodnota | Popis |
---|---|---|
Období | 0 | Zařízení je připravené k přijetí akce ze služby Device Update. Po úspěšné aktualizaci se stav vrátí do Idle stavu . |
DeploymentInprogress | 6 | Probíhá nasazení. |
Neúspěšný | 255 | Během aktualizace došlo k chybě. |
DownloadSucceeded | 2 | Úspěšné stažení. Tento stav hlásí jenom zařízení s agentem verze 0.7.0 nebo starší. |
InstallSucceeded | 4 | Úspěšná instalace. Tento stav hlásí jenom zařízení s agentem verze 0.7.0 nebo starší. |
Metadata služby
Metadata služby obsahují pole, která služba Device Update používá ke komunikaci akcí a dat agentům služby Device Update.
Name | Schéma | Směr | Description |
---|---|---|---|
action | integer | z cloudu do zařízení | Celé číslo, které odpovídá akci, kterou by měl agent provést. Podrobnosti najdete v části Akce . |
updateManifest | řetězec | z cloudu do zařízení | Používá se k popisu obsahu aktualizace. Generuje se z manifestu importu. |
updateManifestSignature | JSON – objekt | z cloudu do zařízení | Webový podpis JSON (JWS) s webovými klíči JSON, který se používá k ověření zdroje. |
Fileurls | Mapa | z cloudu do zařízení | Mapovat na FileID DownloadUrl . Řekne agentovi, které soubory se mají stáhnout, a hodnotu hash, která má použít k ověření, že se soubory stáhly správně. |
Akce
Pole akce představuje akce prováděné agentem Device Update podle pokynů služby Device Update. Agent aktualizace zařízení oznámí stav zpracování přijaté akce. Další informace o požadavcích, které proudí mezi službou Device Update a agentem Device Update, najdete v pracovním postupu přehledu.
Name | Hodnota | Popis |
---|---|---|
applyDeployment | 3 | Nainstalujte aktualizaci. Signalizuje zařízení, aby použilo nasazenou aktualizaci. |
cancel | 255 | Zastavte zpracování aktuální akce a vraťte se na Idle adresu nebo řekněte agentovi ve Failed stavu, aby se vrátil k Idle . |
stáhnout | 0 | Stáhněte si publikovaný obsah nebo aktualizaci a veškerý další potřebný obsah. Tato akce se odešle jenom do zařízení s agentem verze 0.7.0 nebo starší. |
install | 1 | Nainstalujte obsah nebo aktualizaci. Tato akce obvykle znamená volání instalačního programu pro obsah nebo aktualizaci. Tato akce se odešle jenom do zařízení s agentem verze 0.7.0 nebo starší. |
apply | 2 | Dokončete aktualizaci. V případě potřeby signalizuje restartování systému. Tato akce se odesílá jenom do zařízení s agentem verze 0.7.0 nebo starší. |
Rozhraní pro informace o zařízení
Rozhraní pro informace o zařízení je koncept používaný v architektuře IoT Plug and Play. Obsahuje vlastnosti zařízení-cloud, které poskytují informace o hardwaru a operačním systému zařízení. Device Update pro IoT Hub používá DeviceInformation.manufacturer
vlastnosti a DeviceInformation.model
pro telemetrii a diagnostiku. Další informace najdete v tomto příkladu rozhraní pro informace o zařízení.
Očekávaný název komponenty ve vašem modelu je deviceInformation při implementaci tohoto rozhraní. Další informace o komponentách Azure IoT Plug and Play
Název | Typ | Schéma | Směr | Popis | Příklad |
---|---|---|---|---|---|
manufacturer | Vlastnost | řetězec | zařízení do cloudu | Název společnosti výrobce zařízení. Tato vlastnost může být stejná jako název výrobce původního zařízení (OEM). | Contoso |
model | Vlastnost | řetězec | zařízení do cloudu | Název nebo ID modelu zařízení. | IoT Edge zařízení |
swVersion | Vlastnost | řetězec | zařízení do cloudu | Verze softwaru na vašem zařízení. swVersion může být verze vašeho firmwaru. | 4.15.0-122 |
osName | Vlastnost | řetězec | zařízení do cloudu | Název operačního systému v zařízení. | Ubuntu Server 18.04 |
processorArchitecture | Vlastnost | řetězec | zařízení do cloudu | Architektura procesoru na zařízení | ARM64 |
processorManufacturer | Vlastnost | řetězec | zařízení do cloudu | Název výrobce procesoru na zařízení. | Microsoft |
totalStorage | Vlastnost | řetězec | zařízení do cloudu | Celkové dostupné úložiště na zařízení v kilobajtech. | 2 048 |
totalMemory | Vlastnost | řetězec | zařízení do cloudu | Celková dostupná paměť na zařízení v kilobajtech. | 256 |
ID modelu
ID modelu je způsob, jakým chytrá zařízení inzerují své funkce aplikacím Azure IoT pomocí IoT Plug and Play. Další informace o tom, jak vytvářet inteligentní zařízení pro inzerování jejich možností aplikacím Azure IoT, najdete v příručce pro vývojáře IoT Plug and Play zařízení.
Aktualizace zařízení pro IoT Hub vyžaduje, aby IoT Plug and Play inteligentní zařízení oznámilo ID modelu s hodnotou "dtmi:azure:iot:deviceUpdateModel;1" jako součást připojení zařízení. Přečtěte si, jak oznámit ID modelu.