Sdílet prostřednictvím


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:

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 FileIDDownloadUrl. Ř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 Idleadresu 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.