Dela via


Enhetsuppdatering för IoT Hub och IoT Plug and Play

Enhetsuppdatering för IoT Hub använder IoT Plug and Play för att identifiera och hantera enheter som kan uppdateras trådlöst. Tjänsten Enhetsuppdatering skickar och tar emot egenskaper och meddelanden till och från enheter med hjälp av IoT Plug and Play-gränssnitt. Enhetsuppdatering för IoT Hub kräver att IoT-enheter implementerar följande gränssnitt och modell-ID.

För mer information:

Kärngränssnitt för enhetsuppdatering

DeviceUpdateCore-gränssnittet används för att skicka uppdateringsåtgärder och metadata till enheter och ta emot uppdateringsstatus från enheter. DeviceUpdateCore-gränssnittet är uppdelat i två objektegenskaper.

Det förväntade komponentnamnet i din modell är "deviceUpdate" när det här gränssnittet implementeras. Läs mer om Azure IoT Plug and Play-komponenter.

Agentmetadata

Enhetsuppdateringsagenten använder agentmetadatafält för att skicka information till Enhetsuppdateringstjänster.

Namn Schemat Riktning Beskrivning Exempel
enhetsegenskaper Karta enhet till molnet Den uppsättning egenskaper som innehåller tillverkaren, modellen och annan enhetsinformation. Mer information finns i avsnittet Enhetsegenskaper .
kompatibilitetsegenskapsnamn Sträng (kommaavgränsad) enhet till molnet Enheten rapporterade egenskaper som används för att kontrollera enhetens kompatibilitet för att rikta in sig på uppdateringsdistributionen. Begränsad till fem enhetsegenskaper. "compatPropertyNames": "tillverkare,modell"
senaste installationsresultat Karta enhet till molnet Resultatet som rapporterats av agenten. Den innehåller resultatkod, utökad resultatkod och resultatinformation för huvuduppdatering och andra steguppdateringar.
resultatkod integer enhet till molnet En kod som innehåller information om resultatet av den senaste uppdateringsåtgärden. Kan fyllas i för antingen framgång eller misslyckande. 700
utökatResultatkod integer enhet till molntjänster En kod som innehåller ytterligare information om resultatet. Kan fyllas i för antingen framgång eller misslyckande. 0x80004005
resultatdetaljer snöre enhet till molnet Kunddefinierad kostnadsfri formulärsträng för att ge ytterligare resultatinformation. Returneras till tvillingen utan parsning
stepResults karta enhet till molnet Resultaten rapporterade av agenten innehåller resultatkod, utökad resultatkod och resultatinformation för uppdateringar av steg. "step_1": { "resultCode": 0,"extendedResultCode": 0, "resultDetails": ""}
stat / tillstånd integer enhet mot molnet Ett heltal som anger aktuellt tillstånd för enhetsuppdateringsagenten. Mer information finns i avsnittet Tillstånd .
arbetsflöde komplex enhet mot molnet En uppsättning värden som anger vilken distribution agenten för närvarande arbetar med, ID för aktuell distribution och bekräftelse av eventuella begäranden om återförsök som skickas från tjänsten till agenten. "workflow": {"action": 3,"ID": "11b6a7c3-6956-4b33-b5a9-87fdd79d2f01","retryTimestamp": "2022-01-26T11:33:29.9680598Z"}
installeradUppdateringsId snöre enhet till molnet Ett ID för uppdateringen som för närvarande är installerad (via Enhetsuppdatering). Det här värdet är en sträng som samlar in JSON för uppdaterings-ID eller null för en enhet som aldrig har tagit en uppdatering via Enhetsuppdatering. installeradUppdateringID{"leverantör":"contoso","namn":"image-update","version":"1.0.0"}

Enhetsegenskaper

Fältet deviceProperties innehåller information om tillverkare och modell för en enhet.

Namn Schemat Riktning Beskrivning
tillverkare snöre enhet till molnet Enhetens tillverkare, rapporterad via deviceProperties. Den här egenskapen läss från en av två platser – först försöker deviceUpdateCore-gränssnittet läsa värdet "aduc_manufacturer" från konfigurationsfilen. Om värdet inte är ifyllt i konfigurationsfilen rapporterar det som standard kompileringstidsdefinitionen för ADUC_DEVICEPROPERTIES_MANUFACTURER. Den här egenskapen rapporteras endast vid uppstart.

Standardvärde: "Contoso".
modell snöre enhet mot molnet Enhetens enhetsmodell, rapporterad via deviceProperties. Den här egenskapen läss från en av två platser – först försöker deviceUpdateCore-gränssnittet läsa värdet "aduc_model" från konfigurationsfilen. Om värdet inte är ifyllt i konfigurationsfilen rapporterar det som standard kompileringstidsdefinitionen för ADUC_DEVICEPROPERTIES_MODEL. Den här egenskapen rapporteras endast vid start.

Standardvärde: "Video"
gränssnittId snöre enhet till molnet Den här egenskapen används av tjänsten för att identifiera den gränssnittsversion som används av enhetsuppdateringsagenten. Gränssnitts-ID krävs av enhetsuppdateringstjänsten för att hantera och kommunicera med agenten.

Standardvärde: 'dtmi:azure:iot:deviceUpdate; 1' för enheter som använder DU-agent version 0.8.0.
aduVer snöre enhet till molnet Version av enhetsuppdateringsagenten som körs på enheten. Det här värdet läses från versionen endast om ENABLE_ADU_TELEMETRY_REPORTING är inställt på 1 (sant) under kompilering. Kunder kan välja att avregistrera sig från versionsrapportering genom att ange värdet till 0 (falskt). Så här anpassar du egenskaper för enhetsuppdateringsagenten.
Dover snöre enhet till molnet Version av leveransoptimeringsagenten som körs på enheten. Värdet läses endast från bygget om ENABLE_ADU_TELEMETRY_REPORTING är inställt på 1 (sant) under kompilering. Kunder kan välja att avregistrera sig från versionsrapportering genom att ange värdet till 0 (falskt). Så här anpassar du agentegenskaper för leveransoptimering.
Anpassade kompatibilitetsegenskaper Användardefinierad från enhet till molntjänst Implementer kan definiera andra enhetsegenskaper som ska användas för kompatibilitetskontrollen när du riktar in dig på uppdateringsdistributionen.

Exempel på IoT Hub-enhetstvilling:

"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\"}"
                },

Anmärkning

Enheten eller modulen måste lägga till {"__t": "c"} markören för att indikera att elementet refererar till en komponent. Mer information finns i IoT Plug and Play-konventioner.

Stat/län

Fältet Tillstånd är statusen som rapporteras av DU-agenten (Device Update) efter att en åtgärd har tagits emot från enhetsuppdateringstjänsten. Tillståndet rapporteras som svar på en åtgärd (se åtgärdsavsnittet för mer information) som skickas till enhetsuppdateringsagenten från enhetsuppdateringstjänsten. Mer information om begäranden som flödar mellan enhetsuppdateringstjänsten och enhetsuppdateringsagenten finns i översiktsarbetsflödet.

Namn Värde Beskrivning
Inaktiv 0 Enheten är redo att ta emot en åtgärd från enhetsuppdateringstjänsten. Efter en lyckad uppdatering returneras tillståndet till tillståndet Idle .
Driftsättning pågår 6 En driftsättning pågår.
Misslyckades 255 Ett fel uppstod under uppdateringen.
Nedladdning lyckades 2 En lyckad nedladdning. Den här statusen rapporteras endast av enheter med agentversion 0.7.0 eller äldre.
Installationen lyckades 4 En lyckad installation. Den här statusen rapporteras endast av enheter med agentversion 0.7.0 eller äldre.

Tjänstmetadata

Tjänstmetadata innehåller fält som enhetsuppdateringstjänsterna använder för att kommunicera åtgärder och data till enhetsuppdateringsagenten.

Namn Schemat Riktning Beskrivning
åtgärd integer moln-till-enhet förbindelse Ett heltal som motsvarar en åtgärd som agenten ska utföra. Mer information finns i avsnittet Åtgärd .
uppdateramanifest snöre moln-till-enhet förbindelse Används för att beskriva innehållet i en uppdatering. Genereras från importmanifestet.
uppdatera manifestsignatur JSON-objekt moln-till-enhet förbindelse En JSON-webbsignatur (JWS) med JSON-webbnycklar som används för källverifiering.
filadresser Karta moln-till-enhet förbindelse Karta från FileID till DownloadUrl. Talar om för agenten vilka filer som ska laddas ned och vilken hash som ska användas för att verifiera att filerna har laddats ned korrekt.

Åtgärd

Åtgärdsfältet representerar de åtgärder som vidtas av enhetsuppdateringsagenten enligt instruktioner från enhetsuppdateringstjänsten. Enhetsuppdateringsagenten rapporterar ett tillstånd för bearbetning av den mottagna åtgärden. Mer information om begäranden som flödar mellan enhetsuppdateringstjänsten och enhetsuppdateringsagenten finns i översiktsarbetsflödet.

Namn Värde Beskrivning
tillämpa distribution 3 Tillämpa uppdateringen. Den signalerar till enheten att tillämpa den distribuerade uppdateringen
avbryta 255 Sluta bearbeta den aktuella åtgärden och gå tillbaka till Idleeller be en agent i Failed tillståndet att gå tillbaka till Idle.
ladda ner 0 Ladda ned publicerat innehåll eller uppdatering och annat innehåll som behövs. Den här åtgärden skickas endast till enheter med agentversion 0.7.0 eller äldre.
installera 1 Installera innehållet eller uppdateringen. Normalt innebär den här åtgärden att anropa installationsprogrammet för innehållet eller uppdateringen. Den här åtgärden skickas endast till enheter med agentversion 0.7.0 eller äldre.
ansök 2 Slutför uppdateringen. Det signalerar systemet att starta om om det behövs. Den här åtgärden skickas endast till enheter med agentversion 0.7.0 eller äldre.

Gränssnitt för enhetsinformation

Gränssnittet för enhetsinformation är ett begrepp som används i IoT Plug and Play-arkitekturen. Den innehåller egenskaper från enhet till moln som ger information om enhetens maskinvara och operativsystem. Enhetsuppdatering för IoT Hub använder egenskaperna DeviceInformation.manufacturer och DeviceInformation.model för telemetri och diagnostik. Mer information finns i det här exemplet på enhetsinformationsgränssnittet.

Det förväntade komponentnamnet i din modell är deviceInformation när det här gränssnittet implementeras. Läs mer om Azure IoT Plug and Play-komponenter

Namn Typ Schemat Riktning Beskrivning Exempel
tillverkare Fastighet snöre enhet till molnet Enhetstillverkarens företagsnamn. Den här egenskapen kan vara samma som namnet på den ursprungliga tillverkaren av utrustningen (OEM). Contoso
modell Fastighet snöre enhet mot molnet Enhetsmodellnamn eller ID. IoT Edge-enhet
swVersion Fastighet snöre enhet till molnet Version av programvaran på enheten. swVersion kan vara versionen av din inbyggda programvara. 4.15.0-122
Operativsystemnamn Fastighet snöre enhet mot molnet Namnet på operativsystemet på enheten. Ubuntu Server 18.04
processorarkitektur Fastighet snöre från enhet till molntjänst Processorns arkitektur på enheten. ARM64
processortillverkare Fastighet snöre enhet till molnet Namnet på processortillverkaren på enheten. Microsoft
total lagring Fastighet snöre enhet till molnet Totalt tillgängligt lagringsutrymme på enheten i kilobyte. 2048
totalMemory Fastighet snöre enhet till molnet Totalt tillgängligt minne på enheten i kilobyte. 256

Modell-ID

Modell-ID är hur smarta enheter visar upp sina funktioner för Azure IoT-program med IoT Plug and Play. För att lära dig mer om hur du skapar smarta enheter för att visa upp deras funktioner för Azure IoT-program, besök IoT Plug and Play-enhetsutvecklarguiden.

Enhetsuppdatering för IoT Hub kräver att den smarta IoT Plug and Play-enheten meddelar ett modell-ID med värdet "dtmi:azure:iot:deviceUpdateModel; 1" som en del av enhetsanslutningen. Lär dig hur du tillkännager ett modell-ID.