Freigeben über


IoT Plug & Play in Azure Device Update for IoT Hub

Device Update for IoT Hub verwendet IoT Plug & Play zum Erkennen und Verwalten von Geräten, die OTA-Updates (Over-the-Air) empfangen können. In diesem Artikel wird beschrieben, wie der Device Update-Dienst Eigenschaften und Nachrichten an Geräte sendet und diese von Geräten empfängt, die IoT Plug & Play-Schnittstellen verwenden.

Weitere Informationen finden Sie im Leitfaden für IoT Plug & Play-Geräteentwickelnde und unter Erstellen des Device Update-Agents.

Device Update-Modelle

Intelligente Geräte nutzen IoT Plug & Play-Modell-IDs, um ihre Funktionen für Azure IoT-Anwendungen verfügbar zu machen. Für Device Update muss das intelligente IoT Plug & Play-Gerät im Rahmen der Geräteverbindung eine Modell-ID ankündigen. Weitere Informationen finden Sie unter Modell-ID-Ankündigung.

Device Update verfügt über mehrere definierte IoT Plug & Play-Modelle, die Device Update-Features unterstützen. Das Device Update-Modell **dtmi:azure:iot:deviceUpdateContractModel;3** unterstützt die Device Update-Kernfunktionen und verwendet die Device Update-Kernschnittstelle, um Updateaktionen und Metadaten an Geräte zu senden und den Updatestatus von Geräten zu empfangen.

Das andere unterstützte Modell ist **dtmi:azure:iot:deviceUpdateModel;3**. Es erweitert **deviceUpdateContractModel;3** und nutzt ebenfalls IoT Plug & Play-Schnittstellen, die Geräteeigenschaftsinformationen senden und Diagnosefeatures aktivieren. Informationen zu diesen und anderen Versionen finden Sie unter Azure IoT Plug & Play-Modelle für Device Update.

Der Device Update-Agent verwendet **dtmi:azure:iot:deviceUpdateModel;3**. Dieses Modell unterstützt alle aktuellen Features der Device Update-Version 1.1.0. Dieses Modell unterstützt die Importmanifestversion 5.0. Ältere Manifeste funktionieren mit den neuesten Agents, aber neue Features erfordern die aktuelle Manifestversion.

Agent-Metadaten

Der Device Update-Agent verwendet die folgenden Metadatenfelder des Agents, um Informationen an Device Update-Dienste zu senden.

Name Schema Direction Beschreibung
deviceProperties Karte Gerät an Cloud Der Satz von Eigenschaften, die den Hersteller, das Modell und andere Geräteinformationen enthalten. Ausführliche Informationen finden Sie unter Geräteeigenschaften.
compatPropertyNames Zeichenfolge (durch Kommas getrennt) Gerät an Cloud Bis zu fünf Eigenschaften, mit denen die Gerätekompatibilität für die Updatebereitstellung überprüft wird.
Beispiel: "compatPropertyNames": "manufacturer,model"
lastInstallResult Karte Gerät an Cloud Das vom Agent gemeldete Ergebnis mit dem Ergebniscode, dem erweiterten Ergebniscode und Ergebnisdetails für Hauptupdates und andere Schrittupdates.
resultCode integer Gerät an Cloud Ein Code, der Informationen zum Ergebnis der letzten Aktualisierungsaktion enthält. Kann bei Erfolg oder Fehler mit Daten aufgefüllt werden.
Beispiel: 700
extendedResultCode integer Gerät an Cloud Ein Code, der weitere Informationen zum Ergebnis enthält. Kann bei Erfolg oder Fehler mit Daten aufgefüllt werden.
Beispiel: 0x80004005
resultDetails Zeichenfolge Gerät an Cloud Eine von Benutzenden bereitgestellte Zeichenfolge in Freihandform, um weitere Ergebnisdetails bereitzustellen. Wird ohne Parsen an den Zwilling zurückgegeben
stepResults Karte Gerät an Cloud Das vom Agent gemeldete Ergebnis mit dem Ergebniscode, dem erweiterten Ergebniscode und Ergebnisdetails für Schrittupdates.
Beispiel: "step_1": { "resultCode": 0,"extendedResultCode": 0, "resultDetails": ""}
state integer Gerät an Cloud Ein Integerwert, der den aktuellen Status des Device Update-Agents angibt. Ausführliche Informationen finden Sie unter Status.
workflow complex Gerät an Cloud Ein Satz von Werten, die die Bereitstellung, an der der Agent gerade arbeitet, die ID der derzeit installierten Bereitstellung und die Bestätigung aller Wiederholungsanforderungen angeben, die vom Dienst an den Agent gesendet werden. Die workflow-ID meldet den Wert "nodeployment", nachdem eine Bereitstellung abgebrochen wurde.
Beispiel: "workflow": {"action": 3,"ID": "11b6a7c3-6956-4b33-b5a9-87fdd79d2f01","retryTimestamp": "2022-01-26T11:33:29.9680598Z"}
installedUpdateId Zeichenfolge Gerät an Cloud Eine ID der derzeit installierten Device Update-Bereitstellung. Dieser Wert erfasst den Update-ID-JSON-Code oder null für ein Gerät, das nie ein Update über Device Update erhalten hat.
Beispiel: "installedUpdateID": "{\"provider\":\"contoso\",\"name\":\"image-update\",\"version\":\"1.0.0\"}"

Beispiel für einen IoT Hub-Gerätezwilling:

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

Hinweis

Das Gerät oder Modul muss zusätzlich den Marker {"__t": "c"} aufweisen, um anzugeben, dass das Element auf eine Komponente verweist. Weitere Informationen finden Sie unter Beispiel für eine schreibbare Eigenschaft eines Geräts mit mehreren Komponenten.

Geräteeigenschaften

Das Feld deviceProperties enthält die Hersteller- und Modellinformationen für ein Gerät.

Name Schema Direction BESCHREIBUNG
Hersteller Zeichenfolge Gerät an Cloud Der Gerätehersteller, der über deviceProperties gemeldet wird.
Die DeviceUpdateCore-Schnittstelle versucht zunächst, den aduc_manufacturer-Wert aus der Konfigurationsdatei zu lesen. Wenn der Wert in der Konfigurationsdatei nicht eingetragen ist, meldet die Schnittstelle standardmäßig die Kompilierzeitdefinition für ADUC_DEVICEPROPERTIES_MANUFACTURER. Diese Eigenschaft wird nur zum Startzeitpunkt gemeldet.
Standardwert: „Contoso“
model Zeichenfolge Gerät an Cloud Das Gerätemodell des Geräts, das über gemeldet wird deviceProperties. Die DeviceUpdateCore-Schnittstelle versucht zunächst, den aduc_model-Wert aus der Konfigurationsdatei zu lesen. Wenn der Wert in der Konfigurationsdatei nicht eingetragen ist, meldet die Schnittstelle standardmäßig die Kompilierzeitdefinition für ADUC_DEVICEPROPERTIES_MODEL. Diese Eigenschaft wird nur zum Startzeitpunkt gemeldet.
Standardwert: „Video“
contractModelId Zeichenfolge Gerät an Cloud Eigenschaft, die der Dienst verwendet, um die Basismodellversion zu identifizieren, die der Device Update-Agent zum Verwalten und Kommunizieren mit dem Agent verwendet.
Wert: dtmi:azure:iot:deviceUpdateContractModel;3 für Geräte mit Device Update-Agent-Version 1.1.0.
Hinweis: Agents, die dtmi:azure:iot:deviceUpdateModel;2 verwenden, müssen contractModelId als dtmi:azure:iot:deviceUpdateContractModel;3 melden, da deviceUpdateModel;3 von deviceUpdateContractModel;3 erweitert wird.
aduVer Zeichenfolge Gerät an Cloud Version des Device Update-Agents, der auf dem Gerät ausgeführt wird. Dieser Wert wird nur dann aus dem Build gelesen, wenn während der Kompilierungszeit ENABLE_ADU_TELEMETRY_REPORTING auf 1 (TRUE) festgelegt wird. Sie können sich entscheiden, die Versionsberichterstellung zu deaktivieren, indem Sie den Wert auf 0 (FALSE) festlegen. Weitere Informationen finden Sie unter Erstellen des Device Update-Agents.
doVer Zeichenfolge Gerät an Cloud Version des Übermittlungsoptimierungs-Agents, der auf dem Gerät ausgeführt wird. Der Wert wird nur dann aus dem Build gelesen, wenn während der Kompilierungszeit ENABLE_ADU_TELEMETRY_REPORTING auf 1 (TRUE) festgelegt wird. Sie können sich entscheiden, die Versionsberichterstellung zu deaktivieren, indem Sie den Wert auf 0 (FALSE) festlegen. Weitere Informationen finden Sie unter Anpassen der Eigenschaften des Übermittlungsoptimierungs-Agents.
Benutzerdefinierte Kompatibilitätseigenschaften Benutzerdefiniert Gerät an Cloud Andere benutzerdefinierte Geräteeigenschaften, die für die Kompatibilitätsprüfung verwendet werden sollen, wenn die Updatebereitstellung als Ziel verwendet wird.

Staat

Das Feld Status gibt den Status an, der vom Device Update-Agent als Reaktion auf eine Aktion, die vom Device Update-Dienst an den Device Update-Agent gesendet wurde, gemeldet wird. Weitere Informationen zu Anforderungen, die zwischen dem Device Update-Dienst und dem Device Update-Agent fließen, finden Sie unter Agent-Workflow.

Name Wert BESCHREIBUNG
Idle 0 Das Gerät ist bereit, eine Aktion vom Device Update-Dienst zu empfangen. Nach einem erfolgreichen Update wird der Status in den Status Idle zurückgesetzt.
DeploymentInprogress 6 Eine Bereitstellung ist in Bearbeitung.
Fehler 255 Fehler beim Aktualisieren.
DownloadSucceeded 2 Erfolgreicher Download. Nur Geräte mit Agent-Version 0.7.0 oder früher melden diesen Status.
InstallSucceeded 4 Erfolgreiche Installation. Nur Geräte mit Agent-Version 0.7.0 oder früher melden diesen Status.

Aktion

Das Feld Aktion stellt die Aktionen dar, die vom Device Update-Agent ausgeführt werden sollen, wie vom Device Update-Dienst angegeben. Der Device Update-Agent meldet einen Status für die Verarbeitung der empfangenen Aktion. Weitere Informationen zu Anforderungen, die zwischen dem Device Update-Dienst und dem Device Update-Agent fließen, finden Sie unter Agent-Workflow.

Name Wert BESCHREIBUNG
applyDeployment 3 Anwenden des bereitgestellten Updates
cancel 255 Beenden Sie die Verarbeitung der aktuellen Aktion, und wechseln Sie zurück zu Idle, oder teilen Sie einem Agent im Status Failed mit, zu Idle zurückzukehren.
Download verfügbar ist 0 Herunterladen von veröffentlichtem Inhalt oder des Updates und sämtlicher anderer erforderlicher Inhalte. Diese Aktion wird nur an Geräte mit Agent-Version 0.7.0 oder früher gesendet.
Installieren 1 Installieren des Inhalts oder Updates. In der Regel bedeutet diese Aktion, dass das Installationsprogramm für den Inhalt oder das Update aufgerufen wird. Device Update sendet diese Aktion nur an Geräte mit Agent-Version 0.7.0 oder früher.
apply 2 Schließen Sie das Update ab, indem Sie es bei Bedarf neu starten. Device Update sendet diese Aktion nur an Geräte mit Agent-Version 0.7.0 oder früher.

Dienstmetadaten

Dienstmetadaten enthalten Felder, die vom Device Update-Dienst zum Kommunizieren von Aktionen und Daten an den Device Update-Agent verwendet werden.

Name Schema Direction BESCHREIBUNG
action integer Cloud zu Gerät Ein Integerwert, der einer Aktion entspricht, die der Agent ausführen soll. Ausführliche Informationen finden Sie unter Aktion.
updateManifest Zeichenfolge Cloud zu Gerät Beschreibt den Inhalt eines Updates. Wird aus dem Importmanifest generiert.
updateManifestSignature JSON-Objekt Cloud zu Gerät JSON Web Signature (JWS) mit JSON-Webschlüsseln (JSON Web Keys), die für die Quellüberprüfung verwendet werden sollen.
fileUrls Karte Cloud zu Gerät Ordnet FileIDDownloadUrl zu. Informiert den Agent, welche Dateien heruntergeladen werden sollen und welcher Hash verwendet werden soll, um zu bestätigen, dass die Dateien ordnungsgemäß heruntergeladen wurden.

Geräteinformationsschnittstelle

Die Geräteinformationsschnittstelle ist ein Konzept, das in der IoT Plug & Play-Architektur verwendet wird. Die Schnittstelle enthält Gerät-zu-Cloud-Eigenschaften, die Informationen zur Hardware und zum Betriebssystem des Geräts bereitstellen. Device Update verwendet die Eigenschaften DeviceInformation.manufacturer und DeviceInformation.model für Telemetrie und Diagnose. Ein Beispiel für die Geräteinformationsschnittstelle finden Sie unter https://devicemodels.azure.com/dtmi/azure/devicemanagement/deviceinformation-1.json.

Wenn Sie diese Schnittstelle implementieren, ist der erwartete Komponentenname im Modell deviceInformation. Weitere Informationen finden Sie im Leitfaden zur Modellierung mit IoT Plug & Play.

Name type Schema Direction BESCHREIBUNG Beispiel
Hersteller Eigenschaft Zeichenfolge Gerät an Cloud Firmenname des Geräteherstellers. Der Hersteller kann mit dem Namen des OEM (Original Equipment Manufacturer, Originalgeräteherstellers) identisch sein. Contoso
model Eigenschaft Zeichenfolge Gerät an Cloud Name oder ID des Gerätemodells. IoT Edge-Gerät
swVersion Eigenschaft Zeichenfolge Gerät an Cloud Version der Software auf Ihrem Gerät. Bei swVersion kann es sich um die Version Ihrer Firmware handeln. 4.15.0-122
osName Eigenschaft Zeichenfolge Gerät an Cloud Der Name des Betriebssystems auf dem Gerät. Ubuntu Server 18.04
processorArchitecture Eigenschaft Zeichenfolge Gerät an Cloud Architektur des Prozessors auf dem Gerät. ARM64
processorManufacturer Eigenschaft Zeichenfolge Gerät an Cloud Der Name des Herstellers des Prozessors auf dem Gerät. Microsoft
TotalStorage Eigenschaft Zeichenfolge Gerät an Cloud Gesamter verfügbarer Speicher auf dem Gerät in KB. 2048
totalMemory Eigenschaft Zeichenfolge Gerät an Cloud Gesamter verfügbarer Arbeitsspeicher auf dem Gerät in KB. 256