Geräteinformationen-Metadaten in der vorkonfigurierten Lösung für die Remoteüberwachung
Die vorkonfigurierte Lösung für die Azure IoT Suite-Remoteüberwachung ist ein Ansatz zum Verwalten von Gerätemetadaten. In diesem Artikel wird der Ansatz beschrieben, der von dieser Lösung verwendet wird, um folgende Fragen zu beantworten:
- Welche Gerätemetadaten werden von der Lösung gespeichert?
- Wie verwaltet die Lösung die Gerätemetadaten?
Kontext
Für die vorkonfigurierte Lösung für die Remoteüberwachung wird Azure IoT Hub verwendet, um für Ihre Geräte das Senden von Daten an die Cloud zu ermöglichen. Die Lösung speichert Informationen zu Geräten an drei verschiedenen Speicherorten:
Standort | Gespeicherte Informationen | Implementierung |
---|---|---|
Identitätsregistrierung | Geräte-ID, Authentifizierungsschlüssel, aktivierter Zustand | In IoT Hub integriert |
Gerätezwillinge | Metadaten: gemeldete Eigenschaften, gewünschte Eigenschaften, Tags | In IoT Hub integriert |
Cosmos DB | Befehls- und Methodenverlauf | Benutzerdefiniert für Lösung |
IoT Hub enthält eine Geräteidentitätsregistrierung zum Verwalten des Zugriffs auf einen IoT Hub und verwendet Gerätezwillinge zum Verwalten von Gerätemetadaten. Außerdem gibt es auch eine spezielle Geräteregistrierung der Remoteüberwachungslösung zur Speicherung des Befehls- und Methodenverlaufs. Die Remoteüberwachungslösung verwendet eine Cosmos DB-Datenbank um einen benutzerdefinierten Speicher für den Befehls- und Methodenverlauf zu implementieren.
Hinweis
Die vorkonfigurierte Lösung für die Remoteüberwachung sorgt dafür, dass die Geräteidentitätsregistrierung mit den Informationen in der Cosmos DB-Datenbank synchron bleibt. Beide nutzen die gleiche Geräte-ID, um alle Geräte, die mit IoT Hub verbunden werden, eindeutig zu identifizieren.
Gerätemetadaten
IoT Hub verwaltet einen Gerätezwilling für jedes simulierte und physische Gerät, das mit einer Remoteüberwachungslösung verbunden ist. Die Lösung verwendet Gerätezwillinge zum Verwalten der Metadaten, die Geräten zugeordnet sind. Ein Gerätezwilling ist ein von IoT Hub verwaltetes JSON-Dokument, und die Lösung verwendet die IoT Hub-API für die Interaktion mit Gerätezwillingen.
Ein Gerätezwilling speichert die drei Arten von Metadaten:
- Gemeldete Eigenschaften werden von einem Gerät an einen IoT Hub gesendet. In der Remoteüberwachungslösung senden simulierte Geräte gemeldete Eigenschaften beim Start und als Antwort auf Befehle und Methoden zum Ändern des Gerätestatus. Sie können gemeldete Eigenschaften im Lösungsportal in der Geräteliste und den Gerätedetails anzeigen. Gemeldete Eigenschaften sind schreibgeschützt.
- Gewünschte Eigenschaften werden durch Geräte vom IoT Hub abgerufen. Das Gerät ist dafür zuständig, alle erforderlichen Konfigurationsänderungen auf dem Gerät vorzunehmen. Das Gerät ist auch dafür zuständig, die Änderung als gemeldete Eigenschaft wieder an den Hub zu melden. Sie können den Wert einer gewünschten Eigenschaftswert über das Lösungsportal festlegen.
- Tags sind nur im Gerätezwilling vorhanden und werden nie mit einem Gerät synchronisiert. Sie können Tag-Werte im Lösungsportal festlegen und beim Filtern der Geräteliste verwenden. Die Lösung verwendet auch ein Tag zum Identifizieren des Symbols, das im Lösungsportal für ein Gerät angezeigt wird.
Beispiele für gemeldete Eigenschaften von den simulierten Geräten sind Hersteller, Modellnummer, Breiten- und Längengrad. Simulierte Geräte geben auch die Liste der unterstützten Methoden als gemeldete Eigenschaft zurück.
Hinweis
Der simulierte Gerätecode verwendet nur die gewünschten Eigenschaften Desired.Config.TemperatureMeanValue und Desired.Config.TelemetryInterval zum Aktualisieren der gemeldeten Eigenschaften, die zurück an den IoT Hub gesendet werden. Alle anderen gewünschten Eigenschaftenänderungen werden ignoriert.
Ein JSON-Dokument mit Geräteinformationen-Metadaten, das in der Cosmos DB-Datenbank der Geräteregistrierung gespeichert ist, hat die folgende Struktur:
{
"DeviceProperties": {
"DeviceID": "deviceid1",
"HubEnabledState": null,
"CreatedTime": "2016-04-25T23:54:01.313802Z",
"DeviceState": "normal",
"UpdatedTime": null
},
"SystemProperties": {
"ICCID": null
},
"Commands": [],
"CommandHistory": [],
"IsSimulatedDevice": false,
"id": "fe81a81c-bcbc-4970-81f4-7f12f2d8bda8"
}
Hinweis
Geräteinformationen können auch Metadaten zum Beschreiben der Telemetriedaten sein, die vom Gerät an IoT Hub gesendet werden. Die Remoteüberwachungslösung verwendet diese Telemetriemetadaten, um anzupassen, wie dynamische Telemetriedaten im Dashboard angezeigt werden.
Lebenszyklus
Wenn Sie ein Gerät erstmals im Lösungsportal erstellen, erstellt die Lösung einen Eintrag in der Cosmos DB-Datenbank zum Speichern des Befehls- und Methodenverlaufs. An diesem Punkt erstellt die Lösung außerdem einen Eintrag für das Gerät in der Geräteidentitätsregistrierung, um die Schlüssel zu erstellen, die vom Gerät für die Authentifizierung bei IoT Hub verwendet werden. Außerdem wird ein Gerätezwilling erstellt.
Wenn ein Gerät zum ersten Mal eine Verbindung mit der Lösung herstellt, sendet es gemeldete Eigenschaften und eine Geräteinformationsnachricht. Die gemeldeten Eigenschaftswerte werden automatisch im Gerätezwilling gespeichert. Zu den gemeldeten Eigenschaften zählen Gerätehersteller, Modellnummer, Seriennummer und eine Liste der unterstützten Methoden. Die Geräteinformationsnachricht enthält die Liste mit den vom Gerät unterstützten Befehlen, einschließlich Informationen zu Befehlsparametern. Wenn die Lösung diese Nachricht erhält, werden die Geräteinformationen in der Cosmos DB-Datenbank aktualisiert.
Anzeigen und Bearbeiten von Geräteinformationen im Lösungsportal
Die Geräteliste im Lösungsportal zeigt standardmäßig die folgenden Geräteeigenschaften als Spalten an: Status (Status), DeviceId (Geräte-ID), Manufacturer (Hersteller), Model Number (Modellnummer), Serial Number (Seriennummer), Firmware (Firmware), Platform (Plattform), Processor (Prozessor) und Installed RAM (Installierter RAM). Sie können die Spalten anpassen, indem Sie auf Spalten-Editor klicken. Die Geräteeigenschaften Latitude (Breitengrad) und Longitude (Längengrad) sind die Grundlage für den Bing Map-Standort im Dashboard.
Im Lösungsportal können Sie im Bereich Gerätedetails die gewünschten Eigenschaften und Tags bearbeiten (gemeldete Eigenschaften sind schreibgeschützt).
Sie können das Lösungsportal verwenden, um ein Gerät aus der Lösung zu entfernen. Wenn Sie ein Gerät entfernen, entfernt die Lösung den Geräteeintrag aus der Identitätsregistrierung und löscht dann den Gerätezwilling. Die Lösung entfernt auch Informationen im Zusammenhang mit dem Gerät aus der Cosmos DB-Datenbank. Bevor Sie ein Gerät entfernen können, müssen Sie es deaktivieren.
Verarbeitung der Geräteinformationsnachricht
Von einem Gerät gesendete Geräteinformationsnachrichten unterscheiden sich von Telemetrienachrichten. Geräteinformationsnachrichten enthalten die Befehle, auf die ein Gerät reagieren kann, und den vorhandenen Befehlsverlauf. IoT Hub selbst verfügt über keinerlei Informationen über die Metadaten, die in einer Geräteinformationsnachricht enthalten sind, und verarbeitet die Nachricht wie alle anderen D2C-Nachrichten (Device-to-Cloud, Gerät-zu-Cloud) auch. In der Remoteüberwachungslösung liest ein Azure Stream Analytics-Auftrag (ASA) die Nachrichten von IoT Hub. Der DeviceInfo-Stream Analytics-Auftrag filtert nach Nachrichten, die "ObjectType": "DeviceInfo" enthalten, und leitet sie an die EventProcessorHost-Hostinstanz weiter, die in einem Webauftrag ausgeführt wird. Die Logik in der EventProcessorHost-Instanz verwendet die Geräte-ID, um den Cosmos DB-Eintrag für das jeweilige Gerät zu ermitteln und den Eintrag zu aktualisieren.
Hinweis
Eine Geräteinformationsnachricht ist eine D2C-Standardnachricht. Die Lösung unterscheidet mithilfe von ASA-Abfragen zwischen Geräteinformationsnachrichten und Telemetrienachrichten.
Nächste Schritte
Nachdem Sie erfahren haben, wie Sie die vorkonfigurierten Lösungen anpassen, können Sie einige der anderen Features und Funktionen der vorkonfigurierter IoT Suite-Lösungen ausprobieren: