Eszközfrissítés IoT Hub és IoT-Plug and Play
A IoT Hub eszközfrissítése az IoT Plug and Play használatával deríti fel és kezeli azokat az eszközöket, amelyek a levegőn túli frissítésre képesek. Az Eszközfrissítés szolgáltatás tulajdonságokat és üzeneteket küld és fogad az eszközökről IoT-Plug and Play interfészek használatával. A IoT Hub eszközfrissítéséhez IoT-eszközökre van szükség a következő interfészek és modellazonosítók implementálásához.
További információk:
- Az IoT-Plug and Play eszközügyfél ismertetése.
- Tekintse meg az eszközfrissítési ügynök implementálásának módját.
Eszközfrissítési alapfelület
A DeviceUpdateCore felület a frissítési műveletek és a metaadatok eszközökre való küldésére és az eszközök frissítési állapotának fogadására szolgál. A DeviceUpdateCore felület két objektumtulajdonságra van felosztva.
A modellben a várt összetevő neve "deviceUpdate" , amikor ez a felület implementálva van. További információ az Azure IoT Plug and Play összetevőiről.
Ügynök metaadatai
Az Eszközfrissítési ügynök ügynök metaadatmezőivel adatokat küld az Eszközfrissítési szolgáltatásoknak.
Name | Séma | Irány | Leírás | Példa |
---|---|---|---|---|
deviceProperties | Térkép | eszközről felhőre | A gyártó, a modell és az egyéb eszközinformációkat tartalmazó tulajdonságok halmaza. | A részletekért lásd: Eszköztulajdonságok szakasz. |
compatPropertyNames | Sztring (vesszővel elválasztva) | eszközről felhőre | Az eszköz jelentett tulajdonságokat, amelyek az eszköz kompatibilitásának ellenőrzésére szolgálnak a frissítés központi telepítésének megcélzásához. Legfeljebb öt eszköztulajdonság lehet. | "compatPropertyNames": "manufacturer,model" |
lastInstallResult | Térkép | eszközről felhőre | Az ügynök által jelentett eredmény. Tartalmazza az eredménykódot, a kiterjesztett eredménykódot, valamint a fő frissítés és más lépésfrissítések eredményadatait. | |
resultCode | egész szám | eszközről felhőre | Egy kód, amely az utolsó frissítési művelet eredményével kapcsolatos információkat tartalmazza. A kitöltés sikeres vagy sikertelen. | 700 |
extendedResultCode | egész szám | eszközről felhőre | Egy kód, amely további információkat tartalmaz az eredményről. A kitöltés sikeres vagy sikertelen. | 0x80004005 |
resultDetails | sztring | eszközről felhőre | Ügyfél által definiált ingyenes űrlapsztring további eredményadatok megadásához. Visszakerült az ikerpéldányhoz elemzés nélkül | |
stepResults | map | eszközről felhőre | Az ügynök által jelentett eredmény, amely tartalmazza az eredménykódot, a kiterjesztett eredménykódot és a lépésfrissítések eredményadatait. | "step_1": { "resultCode": 0,"extendedResultCode": 0, "resultDetails": ""} |
állapot | egész szám | eszközről felhőre | Egész szám, amely az Eszközfrissítési ügynök aktuális állapotát jelzi. | A részletekért lásd az Állapot szakaszt. |
munkafolyamat | Összetett | eszközről felhőre | Értékkészlet, amely jelzi, hogy az ügynök jelenleg melyik üzemelő példányon dolgozik, az aktuális üzembe helyezés azonosítója, valamint a szolgáltatástól az ügynöknek küldött újrapróbálkozási kérések nyugtázása. | "workflow": {"action": 3,"ID": "11b6a7c3-6956-4b33-b5a9-87fdd79d2f01","retryTimestamp": "2022-01-26T11:33:29.9680598Z"} |
installedUpdateId | sztring | eszközről felhőre | A jelenleg telepített frissítés azonosítója (eszközfrissítésen keresztül). Ez az érték egy sztring, amely rögzíti a JSON frissítésazonosítót vagy null értéket egy olyan eszközhöz, amely soha nem végzett frissítést az Eszközfrissítésen keresztül. | installedUpdateID{"provider":"contoso","name":"image-update","version":"1.0.0"}" |
Eszköztulajdonságok
A deviceProperties mező tartalmazza az eszköz gyártói és modelladatait.
Name | Séma | Irány | Description |
---|---|---|---|
gyártó | sztring | eszközről felhőre | Az eszköz gyártója, amely a következőn keresztül deviceProperties jelentve: . Ezt a tulajdonságot két helyről olvassa be a rendszer – először a DeviceUpdateCore felület megpróbálja beolvasni a "aduc_manufacturer" értéket a konfigurációs fájlból. Ha az érték nincs kitöltve a konfigurációs fájlban, alapértelmezés szerint a ADUC_DEVICEPROPERTIES_MANUFACTURER fordítási idő definícióját jelenti. Ez a tulajdonság csak indításkor lesz jelentve. Alapértelmezett érték: "Contoso". |
modell | sztring | eszközről felhőre | Az eszköz eszközmodellje, amely a következőn keresztül deviceProperties jelentve: . Ezt a tulajdonságot két helyről olvassa be a rendszer – először a DeviceUpdateCore felület megpróbálja beolvasni a konfigurációs fájl "aduc_model" értékét. Ha az érték nincs kitöltve a konfigurációs fájlban, alapértelmezés szerint a ADUC_DEVICEPROPERTIES_MODEL fordítási idő definícióját jelenti. Ez a tulajdonság csak indításkor lesz jelentve. Alapértelmezett érték: "Videó" |
interfaceId | sztring | eszközről felhőre | A szolgáltatás ezt a tulajdonságot használja az eszközfrissítési ügynök által használt felületi verzió azonosítására. Az eszközfrissítési szolgáltatásnak szüksége van a felület azonosítójára az ügynök kezeléséhez és az ügynökkel való kommunikációhoz. Alapértelmezett érték: "dtmi:azure:iot:deviceUpdate;1" a DU-ügynök 0.8.0-s verzióját használó eszközökhöz. |
aduVer | sztring | eszközről felhőre | Az eszközön futó Eszközfrissítési ügynök verziója. Ezt az értéket csak akkor olvassa be a rendszer a buildből, ha ENABLE_ADU_TELEMETRY_REPORTING a fordítási idő alatt 1 (igaz) értékre van állítva. Az ügyfelek dönthetnek úgy, hogy letiltják a verziójelentést a 0 (hamis) értékre állításával. Eszközfrissítési ügynök tulajdonságainak testreszabása. |
Dover | sztring | eszközről felhőre | Az eszközön futó kézbesítésoptimalizálási ügynök verziója. A rendszer csak akkor olvassa be az értéket a buildből, ha ENABLE_ADU_TELEMETRY_REPORTING a fordítási idő alatt 1 (igaz) értékre van állítva. Az ügyfelek dönthetnek úgy, hogy kikapcsolják a verziójelentést a 0 (hamis) értékre állításával. A kézbesítésoptimalizálási ügynök tulajdonságainak testreszabása. |
Egyéni kompatibilitási tulajdonságok | Felhasználó által definiált | eszközről felhőre | A implementátor definiálhat más eszköztulajdonságokat is a kompatibilitás-ellenőrzéshez a frissítés üzembe helyezése során. |
IoT Hub ikereszköz-példa:
"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\"}"
},
Megjegyzés
Az eszköznek vagy modulnak hozzá kell adnia a {"__t": "c"}
jelölőt, hogy jelezze, hogy az elem egy összetevőre hivatkozik. További információ: IoT Plug and Play konvenciók.
Állapot
Az Állapot mező az eszközfrissítési ügynök által jelentett állapot, miután műveletet kapott az Eszközfrissítési szolgáltatástól. Az állapot az eszközfrissítési szolgáltatás eszközfrissítési ügynökének küldött műveletre (a részletekért lásd a Művelet szakaszt ) válaszul jelent. Az Eszközfrissítési szolgáltatás és az Eszközfrissítési ügynök közötti kérelmekről az áttekintési munkafolyamatban talál további információt.
Name | Érték | Leírás |
---|---|---|
Tétlen | 0 | Az eszköz készen áll arra, hogy műveletet kapjon az Eszközfrissítés szolgáltatástól. A sikeres frissítés után az állapot visszakerül az Idle állapotba. |
DeploymentInprogress | 6 | Az üzembe helyezés folyamatban van. |
Sikertelen | 255 | Hiba történt a frissítés során. |
DownloadSucceeded | 2 | Sikeres letöltés. Ezt az állapotot csak a 0.7.0-s vagy régebbi ügynökverziójú eszközök jelentik. |
InstallSucceeded | 4 | Sikeres telepítés. Ezt az állapotot csak a 0.7.0-s vagy régebbi ügynökverziójú eszközök jelentik. |
Szolgáltatás metaadatai
A szolgáltatás metaadatai olyan mezőket tartalmaznak, amelyeket az Eszközfrissítési szolgáltatások a műveletek és adatok eszközfrissítési ügynökkel való kommunikációjára használnak.
Name | Séma | Irány | Description |
---|---|---|---|
action | egész szám | felhőből eszközre | Az ügynök által végrehajtandó műveletnek megfelelő egész szám. A részletekért lásd a Művelet szakaszt. |
updateManifest | sztring | felhőből eszközre | A frissítés tartalmának leírására szolgál. Az Importálási jegyzékfájlból jön létre. |
updateManifestSignature | JSON-objektum | felhőből eszközre | JSON-web aláírás (JWS) a forrásellenőrzéshez használt JSON-webkulcsokkal. |
Fileurls | Térkép | felhőből eszközre | Térkép a FileID -hez DownloadUrl . Megadja az ügynöknek, hogy mely fájlokat töltse le, és a kivonatot, amellyel ellenőrizheti, hogy a fájlok megfelelően lettek-e letöltve. |
Művelet
A műveletmező az Eszközfrissítési ügynök által az Eszközfrissítés szolgáltatás utasítása szerint végrehajtott műveleteket jelöli. Az Eszközfrissítési ügynök a kapott művelet feldolgozásának állapotát jelenti. Az Eszközfrissítési szolgáltatás és az Eszközfrissítési ügynök közötti kérelmekről az áttekintési munkafolyamatban talál további információt.
Name | Érték | Leírás |
---|---|---|
applyDeployment | 3 | Alkalmazza a frissítést. Jelzi az eszköznek, hogy alkalmazza az üzembe helyezett frissítést |
mégse | 255 | Állítsa le az aktuális művelet feldolgozását, és lépjen vissza a Idle helyre, vagy kérje meg az Failed állapotban lévő ügynököt, hogy térjen vissza a következőre Idle : . |
letöltés | 0 | Töltse le a közzétett tartalmat vagy frissítést, valamint minden más szükséges tartalmat. Ezt a műveletet csak a 0.7.0-s vagy régebbi ügynökverziójú eszközökre küldi a rendszer. |
Telepíteni | 1 | Telepítse a tartalmat vagy a frissítést. Ez a művelet általában azt jelenti, hogy meghívja a telepítőt a tartalomhoz vagy a frissítéshez. Ezt a műveletet csak a 0.7.0-s vagy régebbi ügynökverziójú eszközökre küldi a rendszer. |
apply | 2 | Véglegesítse a frissítést. Jelzi a rendszert, hogy szükség esetén újrainduljon. Ezt a műveletet csak a 0.7.0-s vagy régebbi ügynökverziójú eszközökre küldi a rendszer. |
Eszközinformációs felület
Az eszközinformációs felület az IoT Plug and Play architektúrájában használt fogalom. Olyan eszköz-felhő tulajdonságokat tartalmaz, amelyek információt nyújtanak az eszköz hardveréről és operációs rendszeréről. A IoT Hub eszközfrissítése a és DeviceInformation.model
a DeviceInformation.manufacturer
tulajdonságokat használja a telemetriához és a diagnosztikához. További információért tekintse meg az eszközinformációs felület alábbi példáját.
A modellben a várt összetevőnév a deviceInformation , amikor ez a felület implementálva van. Az Azure IoT Plug and Play-összetevők ismertetése
Név | Típus | Séma | Irány | Leírás | Példa |
---|---|---|---|---|---|
gyártó | Tulajdonság | sztring | eszközről felhőre | Az eszköz gyártójának cégneve. Ez a tulajdonság megegyezhet az eredeti berendezésgyártó (OEM) nevével. | Contoso |
modell | Tulajdonság | sztring | eszközről felhőre | Eszközmodell neve vagy azonosítója. | IoT Edge eszköz |
swVersion | Tulajdonság | sztring | eszközről felhőre | A szoftver verziója az eszközön. A swVersion lehet a belső vezérlőprogram verziója. | 4.15.0-122 |
osName | Tulajdonság | sztring | eszközről felhőre | Az eszközön található operációs rendszer neve. | Ubuntu Server 18.04 |
processorArchitecture | Tulajdonság | sztring | eszközről felhőre | Az eszközön található processzor architektúrája. | ARM64 |
processorManufacturer | Tulajdonság | sztring | eszközről felhőre | Az eszközön található processzor gyártójának neve. | Microsoft |
totalStorage | Tulajdonság | sztring | eszközről felhőre | Az eszközön elérhető teljes tárterület kilobájtban. | 2048 |
totalMemory | Tulajdonság | sztring | eszközről felhőre | Az eszközön rendelkezésre álló memória teljes mennyisége kilobájtban. | 256 |
Modellazonosító
A modellazonosító az, hogy az intelligens eszközök hogyan hirdetik meg képességeiket az Azure IoT-alkalmazások számára az IoT-Plug and Play használatával. Ha többet szeretne megtudni arról, hogyan hozhat létre intelligens eszközöket a képességeik Azure IoT-alkalmazásokban való meghirdetéséhez, tekintse meg az IoT Plug and Play eszköz fejlesztői útmutatóját.
A IoT Hub eszközfrissítéséhez az IoT Plug and Play intelligens eszköznek be kell jelentenie egy "dtmi:azure:iot:deviceUpdateModel;1" értékű modellazonosítót az eszközkapcsolat részeként. Megtudhatja, hogyan jelentheti be a modellazonosítót.