Technologie Plug and Play IoT ve službě Azure Device Update pro IoT Hub
Služba Device Update pro IoT Hub používá ioT technologie Plug and Play ke zjišťování a správě zařízení, která jsou schopná aktualizace přes vzduch. Tento článek popisuje, jak služba Device Update odesílá a přijímá vlastnosti a zprávy do a ze zařízení pomocí rozhraní ioT technologie Plug and Play.
Další informace najdete v příručce pro vývojáře zařízení ioT technologie Plug and Play a postupu sestavení agenta aktualizace zařízení.
Modely aktualizace zařízení
Inteligentní zařízení používají ID modelů IoT technologie Plug and Play k inzerování možností aplikacím Azure IoT. Služba Device Update vyžaduje, aby inteligentní zařízení IoT technologie Plug and Play oznámilo ID modelu jako součást připojení zařízení. Další informace najdete v tématu Oznámení ID modelu.
Služba Device Update má několik definovaných modelů ioT technologie Plug and Play, které podporují funkce služby Device Update. Model **dtmi:azure:iot:deviceUpdateContractModel;3**
Device Update podporuje základní funkce služby Device Update a používá základní rozhraní služby Device Update k odesílání akcí aktualizací a metadat zařízením a přijímání stavu aktualizace ze zařízení.
Druhý podporovaný model je **dtmi:azure:iot:deviceUpdateModel;3**
, který rozšiřuje **deviceUpdateContractModel;3**
a také používá rozhraní ioT technologie Plug and Play, která odesílají informace o vlastnostech zařízení a umožňují diagnostické funkce. Informace o těchto a dalších verzích najdete v tématu Azure IoT technologie Plug and Play Modely aktualizace zařízení.
Agent Device Update používá **dtmi:azure:iot:deviceUpdateModel;3**
všechny nejnovější funkce ve verzi Device Update 1.1.0. Tento model podporuje manifest importu verze 5.0. Starší manifesty fungují s nejnovějšími agenty, ale nové funkce vyžadují nejnovější verzi manifestu.
Metadata agenta
Agent Device Update používá k odesílání informací do služeb Device Update následující pole metadat agenta.
Název | Schéma | Směr | Popis |
---|---|---|---|
deviceProperties | Mapovat | zařízení do cloudu | Sada vlastností, které obsahují informace o výrobci, modelu a dalších zařízeních. Podrobnosti najdete v části Vlastnosti zařízení. |
compatPropertyNames | Řetězec (oddělený čárkami) | zařízení do cloudu | Až pět vlastností, které slouží ke kontrole kompatibility zařízení pro cílení na nasazení aktualizace. Příklad: compatPropertyNames: manufacturer, model |
lastInstallResult | Mapovat | zařízení do cloudu | Výsledek hlášený agentem, který obsahuje kód výsledku, rozšířený kód výsledku a podrobnosti o výsledku pro hlavní aktualizaci a další aktualizace kroku. |
resultCode | integer | zařízení do cloudu | Kód, který obsahuje informace o výsledku poslední akce aktualizace. Je možné ho naplnit buď pro úspěch, nebo neúspěch. Příklad: 700 |
extendedResultCode | integer | zařízení do cloudu | Kód, který obsahuje další informace o výsledku. Je možné ho naplnit buď pro úspěch, nebo neúspěch. Příklad: 0x80004005 |
resultDetails | string | zařízení do cloudu | Řetězec volného formuláře zadaný uživatelem, který poskytuje další podrobnosti o výsledku. Vrátí se do dvojčete bez analýzy. |
stepResults | map | zařízení do cloudu | Výsledek hlášený agentem, který obsahuje kód výsledku, rozšířený kód výsledku a podrobnosti o výsledku pro aktualizace kroku. Příklad: "step_1": { "resultCode": 0,"extendedResultCode": 0, "resultDetails": ""} |
state | integer | zařízení do cloudu | Celé číslo, které označuje aktuální stav agenta aktualizace zařízení. Podrobnosti najdete v části Stav . |
pracovní postup | complex | zařízení do cloudu | Sada hodnot, které označují, na kterém agent aktuálně pracuje, ID aktuálně nainstalovaného nasazení a potvrzení všech žádostí o opakování odesílaných ze služby do agenta. ID workflow hlásí "nodeployment" hodnotu po zrušení nasazení. Příklad: "workflow": {"action": 3,"ID": "11b6a7c3-6956-4b33-b5a9-87fdd79d2f01","retryTimestamp": "2022-01-26T11:33:29.9680598Z"} |
installedUpdateId | string | zařízení do cloudu | ID aktuálně nainstalovaného nasazení služby Device Update. Tato hodnota zaznamenává KÓD JSON ID aktualizace nebo null pro zařízení, které nikdy nemělo aktualizaci prostřednictvím aktualizace zařízení. Příklad: "installedUpdateID": "{\"provider\":\"contoso\",\"name\":\"image-update\",\"version\":\"1.0.0\"}" |
Příklad dvojčete zařízení ioT Hubu:
"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\"}"
},
Poznámka:
Zařízení nebo modul musí přidat {"__t": "c"}
značku, která označuje, že prvek odkazuje na komponentu. Další informace najdete v tématu Technologie Plug and Play konvence IoT.
Vlastnosti zařízení
Pole DeviceProperties obsahuje informace o výrobci a modelu zařízení.
Název | Schéma | Směr | Popis |
---|---|---|---|
Výrobce | string | zařízení do cloudu | Výrobce zařízení hlášený prostřednictvím deviceProperties .Rozhraní DeviceUpdateCore se nejprve pokusí přečíst aduc_manufacturer hodnotu z konfiguračního souboru. Pokud hodnota není naplněna v konfiguračním souboru, rozhraní ve výchozím nastavení hlásí definici kompilátoru pro ADUC_DEVICEPROPERTIES_MANUFACTURER . Tato vlastnost je hlášena pouze při spuštění. Výchozí hodnota: Contoso |
model | string | zařízení do cloudu | Model zařízení hlášený prostřednictvím deviceProperties . Rozhraní DeviceUpdateCore se nejprve pokusí přečíst aduc_model hodnotu z konfiguračního souboru. Pokud hodnota není naplněna v konfiguračním souboru, rozhraní ve výchozím nastavení hlásí definici kompilátoru pro ADUC_DEVICEPROPERTIES_MODEL . Tato vlastnost je hlášena pouze při spuštění. Výchozí hodnota: Video |
contractModelId | string | zařízení do cloudu | Vlastnost, pomocí které služba identifikuje základní verzi modelu, pomocí které agent Device Update spravuje a komunikuje s agentem. Hodnota: dtmi:azure:iot:deviceUpdateContractModel;3 pro zařízení používající agenta Device Update verze 1.1.0. Poznámka: Agenti, kteří používají dtmi:azure:iot:deviceUpdateModel;2 , musí hlásit contractModelId jako dtmi:azure:iot:deviceUpdateContractModel;3 , protože deviceUpdateModel;3 je rozšířen z deviceUpdateContractModel;3 . |
aduVer | string | zařízení do cloudu | Verze agenta Device Update spuštěného na zařízení Tato hodnota se načítá z sestavení pouze v případě, že ENABLE_ADU_TELEMETRY_REPORTING je v době kompilace nastavena na 1 hodnotu (true). Pokud chcete zasílání sestav verzí zrušit, můžete nastavit hodnotu na 0 hodnotu (false). Další informace naleznete v tématu Postup sestavení agenta aktualizace zařízení. |
Dover | string | zařízení do cloudu | Verze agenta Optimalizace doručení spuštěného na zařízení Hodnota se načte z sestavení pouze v případě, že ENABLE_ADU_TELEMETRY_REPORTING je v době kompilace nastavena na 1 hodnotu (true). Pokud chcete zasílání sestav verzí zrušit, můžete nastavit hodnotu na 0 hodnotu (false). Další informace naleznete v tématu Přizpůsobení vlastností agenta Optimalizace doručení. |
Vlastní vlastnosti kompatibility | Definované uživatelem | zařízení do cloudu | Jiné uživatelem definované vlastnosti zařízení, které se mají použít pro kontrolu kompatibility při cílení na nasazení aktualizace. |
State
Pole stavu je stav hlášený agentem Aktualizace zařízení v reakci na akci odeslanou agentovi Aktualizace zařízení 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 agenta.
Jméno | 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 | Došlo k úspěšnému stažení. Tento stav hlásí jenom zařízení s agentem verze 0.7.0 nebo starší. |
InstalaceSucceeded | 4 | Došlo k úspěšné instalaci. Tento stav hlásí jenom zařízení s agentem verze 0.7.0 nebo starší. |
Akce
Pole akce představuje akci, kterou má agent Aktualizace zařízení provést podle pokynů služby Device Update. Agent Device Update hlásí stav pro zpracování akce, kterou obdrží. Další informace o požadavcích, které proudí mezi službou Device Update a agentem Device Update, najdete v pracovním postupu agenta.
Jméno | Hodnota | Popis |
---|---|---|
applyDeployment | 3 | Nainstalujte nasazenou aktualizaci. |
zrušit | 255 | Ukončete zpracování aktuální akce a vraťte se do Idle služby nebo řekněte agentoviFailed , že se má vrátit zpět .Idle |
download | 0 | Stáhněte 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 | 0 | Nainstalujte obsah nebo aktualizaci, obvykle zavolat instalační program pro obsah nebo aktualizaci. Služba Device Update odešle tuto akci jenom na zařízení s agentem verze 0.7.0 nebo starší. |
apply | 2 | Dokončete aktualizaci restartováním v případě potřeby. Služba Device Update odešle tuto akci jenom na 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 agentovi Device Update.
Název | Schéma | Směr | Popis |
---|---|---|---|
action | integer | cloud do zařízení | Celé číslo, které odpovídá akci, kterou má agent provést. Podrobnosti najdete v části Akce . |
updateManifest | string | cloud do zařízení | Popisuje obsah aktualizace. Vygenerováno z manifestu importu. |
updateManifestSignature | JSON objekt | cloud do zařízení | Webový podpis JSON (JWS) s webovými klíči JSON, které se mají použít k ověření zdroje. |
fileUrls | Mapovat | cloud do zařízení | Namapovat na FileID DownloadUrl Řekne agentovi, které soubory se mají stáhnout, a hodnotu hash, aby ověřil, že se soubory stahují správně. |
Rozhraní informací o zařízení
Rozhraní informací o zařízení je koncept používaný v architektuře ioT technologie Plug and Play. Rozhraní obsahuje vlastnosti typu zařízení-cloud, které poskytují informace o hardwaru a operačním systému zařízení. Služba Device Update používá DeviceInformation.manufacturer
vlastnosti a DeviceInformation.model
telemetrii a diagnostiku. Příklad rozhraní informací o zařízení najdete v tématu https://devicemodels.azure.com/dtmi/azure/devicemanagement/deviceinformation-1.json.
Při implementaci tohoto rozhraní je očekávaný název komponenty v modelu deviceInformation. Další informace najdete v průvodci modelováním technologie Plug and Play IoT.
Name | Type | Schéma | Směr | Popis | Příklad |
---|---|---|---|---|---|
Výrobce | Vlastnost | string | zařízení do cloudu | Název společnosti výrobce zařízení. Výrobce může být stejný jako název výrobce původního zařízení (OEM). | Contoso |
model | Vlastnost | string | zařízení do cloudu | Název nebo ID modelu zařízení | Zařízení IoT Edge |
VerzeSoftwaru | Vlastnost | string | zařízení do cloudu | Verze softwaru na vašem zařízení SwVersion může být verze vašeho firmwaru. | 4.15.0-122 |
NázevOperačníhoSystému | Vlastnost | string | zařízení do cloudu | Název operačního systému v zařízení. | Ubuntu Server 18.04 |
ArchitekturaProcesoru | Vlastnost | string | zařízení do cloudu | Architektura procesoru v zařízení | ARM64 |
processorManufacturer | Vlastnost | string | zařízení do cloudu | Název výrobce procesoru na zařízení. | Microsoft |
totalStorage | Vlastnost | string | zařízení do cloudu | Celkové dostupné úložiště na zařízení v kilobajtech. | 2048 |
totalMemory | Vlastnost | string | zařízení do cloudu | Celková dostupná paměť v zařízení v kilobajtech. | 256 |