Metagegevens van apparaatgegevens in de vooraf geconfigureerde oplossing voor externe bewaking
De vooraf geconfigureerde oplossing voor externe bewaking van Azure IoT Suite demonstreert een benadering voor het beheren van metagegevens van apparaten. In dit artikel vindt u een overzicht van de aanpak die deze oplossing nodig heeft om inzicht te hebben in:
- Welke metagegevens van het apparaat de oplossing opslaat.
- Hoe de oplossing de metagegevens van het apparaat beheert.
Context
De vooraf geconfigureerde oplossing voor externe bewaking maakt gebruik van Azure IoT Hub om uw apparaten in staat te stellen gegevens naar de cloud te verzenden. De oplossing slaat informatie op over apparaten op drie verschillende locaties:
Locatie | Opgeslagen gegevens | Implementatie |
---|---|---|
Identiteitsregister | Apparaat-id, verificatiesleutels, status ingeschakeld | Ingebouwd in IoT Hub |
Apparaatdubbels | Metagegevens: gerapporteerde eigenschappen, gewenste eigenschappen, tags | Ingebouwd in IoT Hub |
Cosmos DB | Opdracht- en methodegeschiedenis | Aangepast voor oplossing |
IoT Hub bevat een apparaatidentiteitsregister voor het beheren van de toegang tot een IoT-hub en maakt gebruik van apparaatdubbels om metagegevens van apparaten te beheren. Er is ook een extern bewakingsoplossingsspecifiek apparaatregister waarin de opdracht- en methodegeschiedenis wordt opgeslagen. De externe bewakingsoplossing maakt gebruik van een Cosmos DB-database om een aangepast archief te implementeren voor de opdracht- en methodegeschiedenis.
Notitie
De vooraf geconfigureerde oplossing voor externe bewaking houdt het apparaatidentiteitsregister gesynchroniseerd met de informatie in de Cosmos DB-database. Beide gebruiken dezelfde apparaat-id om elk apparaat dat is verbonden met uw IoT-hub op unieke wijze te identificeren.
Metagegevens van apparaten
IoT Hub onderhoudt een apparaatdubbel voor elk gesimuleerd en fysiek apparaat dat is verbonden met een externe bewakingsoplossing. De oplossing maakt gebruik van apparaatdubbels om de metagegevens te beheren die zijn gekoppeld aan apparaten. Een apparaatdubbel is een JSON-document dat wordt onderhouden door IoT Hub en de oplossing gebruikt de IoT Hub-API om te communiceren met apparaatdubbels.
Met een apparaatdubbel worden drie typen metagegevens opgeslagen:
- Gerapporteerde eigenschappen worden door een apparaat naar een IoT-hub verzonden. In de externe bewakingsoplossing verzenden gesimuleerde apparaten gerapporteerde eigenschappen bij het opstarten en als reactie op opdrachten en methoden voor apparaatstatus wijzigen . U kunt gerapporteerde eigenschappen weergeven in de lijst met apparaten en apparaatdetails in de oplossingsportal. Gerapporteerde eigenschappen zijn alleen-lezen.
- Gewenste eigenschappen worden opgehaald uit de IoT-hub door apparaten. Het is de verantwoordelijkheid van het apparaat om de benodigde configuratiewijziging op het apparaat aan te brengen. Het is ook de verantwoordelijkheid van het apparaat om de wijziging terug te rapporteren aan de hub als een gerapporteerde eigenschap. U kunt een gewenste eigenschapswaarde instellen via de oplossingsportal.
- Tags bestaan alleen in de apparaatdubbel en worden nooit gesynchroniseerd met een apparaat. U kunt tagwaarden instellen in de oplossingsportal en deze gebruiken wanneer u de lijst met apparaten filtert. De oplossing gebruikt ook een tag om het pictogram te identificeren dat moet worden weergegeven voor een apparaat in de oplossingsportal.
Voorbeeld van gerapporteerde eigenschappen van de gesimuleerde apparaten zijn fabrikant, modelnummer, breedtegraad en lengtegraad. Gesimuleerde apparaten retourneren ook de lijst met ondersteunde methoden als een gerapporteerde eigenschap.
Notitie
De code van het gesimuleerde apparaat gebruikt alleen de gewenste eigenschappen Desired.Config.TemperatureMeanValue en Desired.Config.TelemetryInterval om de gerapporteerde eigenschappen bij te werken die naar IoT Hub worden teruggestuurd. Alle andere gewenste wijzigingsaanvragen voor eigenschappen worden genegeerd.
Een JSON-document met metagegevens van apparaten dat is opgeslagen in de Cosmos DB-database van het apparaatregister heeft de volgende structuur:
{
"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"
}
Notitie
Apparaatgegevens kunnen ook metagegevens bevatten om de telemetrie te beschrijven die het apparaat naar IoT Hub verzendt. De externe bewakingsoplossing maakt gebruik van deze telemetriemetagegevens om aan te passen hoe het dashboard dynamische telemetrie weergeeft.
Levenscyclus
Wanneer u voor het eerst een apparaat maakt in de oplossingsportal, maakt de oplossing een vermelding in de Cosmos DB-database om de opdracht- en methodegeschiedenis op te slaan. Op dit moment maakt de oplossing ook een vermelding voor het apparaat in het apparaat-id-register, waarmee de sleutels worden gegenereerd die het apparaat gebruikt om te verifiëren met IoT Hub. Er wordt ook een apparaatdubbel gemaakt.
Wanneer een apparaat voor het eerst verbinding maakt met de oplossing, worden gerapporteerde eigenschappen en een bericht met apparaatgegevens verzonden. De gerapporteerde eigenschapswaarden worden automatisch opgeslagen in de apparaatdubbel. De gerapporteerde eigenschappen omvatten de fabrikant van het apparaat, het modelnummer, het serienummer en een lijst met ondersteunde methoden. Het bericht over apparaatgegevens bevat de lijst met opdrachten die het apparaat ondersteunt, inclusief informatie over eventuele opdrachtparameters. Wanneer de oplossing dit bericht ontvangt, worden de apparaatgegevens in de Cosmos DB-database bijgewerkt.
Apparaatgegevens weergeven en bewerken in de oplossingsportal
In de lijst met apparaten in de oplossingsportal worden standaard de volgende apparaateigenschappen weergegeven als kolommen: Status, DeviceId, Fabrikant, Modelnummer, Serienummer, Firmware, Platform, Processor en Geïnstalleerd RAM-geheugen. U kunt de kolommen aanpassen door te klikken op kolomeditor. De apparaateigenschappen Breedtegraad en Lengtegraad bepalen de locatie in de Bing-kaart op het dashboard.
In het deelvenster Apparaatdetails in de oplossingsportal kunt u de gewenste eigenschappen en tags bewerken (gerapporteerde eigenschappen zijn alleen-lezen).
U kunt de oplossingsportal gebruiken om een apparaat uit uw oplossing te verwijderen. Wanneer u een apparaat verwijdert, verwijdert de oplossing de apparaatvermelding uit het identiteitsregister en verwijdert de apparaatdubbel. De oplossing verwijdert ook informatie met betrekking tot het apparaat uit de Cosmos DB-database. Voordat u een apparaat kunt verwijderen, moet u het uitschakelen.
Berichtverwerking van apparaatgegevens
Apparaatgegevensberichten die door een apparaat worden verzonden, verschillen van telemetrieberichten. Berichten over apparaatgegevens bevatten de opdrachten waarop een apparaat kan reageren en eventuele opdrachtgeschiedenis. IoT Hub zelf geen kennis heeft van de metagegevens in een apparaatinformatiebericht en het bericht op dezelfde manier verwerkt als elk apparaat-naar-cloudbericht. In de externe bewakingsoplossing leest een ASA-taak (Azure Stream Analytics) de berichten uit IoT Hub. De Stream Analytics-taak DeviceInfo filtert op berichten die ObjectType bevatten: DeviceInfo en stuurt deze door naar het EventProcessorHost-hostexemplaren die in een webtaak worden uitgevoerd. Logica in het EventProcessorHost-exemplaar gebruikt de apparaat-id om de Cosmos DB-record voor het specifieke apparaat te vinden en de record bij te werken.
Notitie
Een apparaatinformatiebericht is een standaardbericht voor apparaat-naar-cloud. De oplossing maakt onderscheid tussen apparaatinformatieberichten en telemetrieberichten met behulp van ASA-query's.
Volgende stappen
Nu u klaar bent met leren hoe u de vooraf geconfigureerde oplossingen kunt aanpassen, kunt u enkele van de andere functies en mogelijkheden van de vooraf geconfigureerde IoT Suite-oplossingen verkennen: