Dela via


Metadata för enhetsinformation i den förkonfigurerade fjärrövervakningslösningen

Den förkonfigurerade azure IoT Suite-fjärrövervakningslösningen visar en metod för att hantera enhetsmetadata. Den här artikeln beskriver den metod som den här lösningen använder för att göra det möjligt för dig att förstå:

  • Vilka enhetsmetadata som lösningen lagrar.
  • Hur lösningen hanterar enhetsmetadata.

Kontext

Den förkonfigurerade fjärrövervakningslösningen använder Azure IoT Hub för att göra det möjligt för dina enheter att skicka data till molnet. Lösningen lagrar information om enheter på tre olika platser:

Location Lagrad information Implementering
Identitetsregister Enhets-ID, autentiseringsnycklar, aktiverat tillstånd Inbyggd i IoT Hub
Enhetstvillingar Metadata: rapporterade egenskaper, önskade egenskaper, taggar Inbyggd i IoT Hub
Cosmos DB Kommando- och metodhistorik Anpassad för lösning

IoT Hub innehåller ett enhetsidentitetsregister för att hantera åtkomst till en IoT-hubb och använder enhetstvillingar för att hantera enhetsmetadata. Det finns också ett fjärrövervakningslösningsspecifikt enhetsregister som lagrar kommando- och metodhistorik. Fjärrövervakningslösningen använder en Cosmos DB-databas för att implementera ett anpassat arkiv för kommando- och metodhistorik.

Anteckning

Den förkonfigurerade fjärrövervakningslösningen håller enhetsidentitetsregistret synkroniserat med informationen i Cosmos DB-databasen. Båda använder samma enhets-ID för att unikt identifiera varje enhet som är ansluten till din IoT-hubb.

Enhetsmetadata

IoT Hub underhåller en enhetstvilling för varje simulerad och fysisk enhet som är ansluten till en fjärrövervakningslösning. Lösningen använder enhetstvillingar för att hantera metadata som är associerade med enheter. En enhetstvilling är ett JSON-dokument som underhålls av IoT Hub och lösningen använder IoT Hub-API:et för att interagera med enhetstvillingar.

En enhetstvilling lagrar tre typer av metadata:

  • Rapporterade egenskaper skickas till en IoT-hubb av en enhet. I fjärrövervakningslösningen skickar simulerade enheter rapporterade egenskaper vid start och som svar på Ändra enhetstillståndskommandon och metoder. Du kan visa rapporterade egenskaper i enhetslistan och Enhetsinformation i lösningsportalen. Rapporterade egenskaper är skrivskyddade.
  • Önskade egenskaper hämtas från IoT-hubben av enheter. Det är enhetens ansvar att göra nödvändiga konfigurationsändringar på enheten. Det är också enhetens ansvar att rapportera ändringen tillbaka till hubben som en rapporterad egenskap. Du kan ange ett önskat egenskapsvärde via lösningsportalen.
  • Taggar finns bara i enhetstvillingen och synkroniseras aldrig med en enhet. Du kan ange taggvärden i lösningsportalen och använda dem när du filtrerar listan över enheter. Lösningen använder också en tagg för att identifiera ikonen som ska visas för en enhet i lösningsportalen.

Exempel på rapporterade egenskaper från de simulerade enheterna är tillverkare, modellnummer, latitud och longitud. Simulerade enheter returnerar också listan över metoder som stöds som en rapporterad egenskap.

Anteckning

I koden för den simulerade enheten är det bara de önskade egenskaperna Desired.Config.TemperatureMeanValue och Desired.Config.TelemetryInterval som används till att uppdatera de rapporterade egenskaper som skickas tillbaka till IoT Hub. Alla andra begäranden om ändring av önskade egenskaper ignoreras.

Ett JSON-dokument för enhetsinformationsmetadata som lagras i enhetsregistrets Cosmos DB-databas har följande 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"
}

Anteckning

Enhetsinformation kan också innehålla metadata för att beskriva telemetrin som enheten skickar till IoT Hub. Fjärrövervakningslösningen använder dessa telemetrimetadata för att anpassa hur instrumentpanelen visar dynamisk telemetri.

Livscykel

När du först skapar en enhet i lösningsportalen skapar lösningen en post i Cosmos DB-databasen för att lagra kommando- och metodhistorik. Nu skapar lösningen också en post för enheten i enhetsidentitetsregistret, som genererar de nycklar som enheten använder för att autentisera med IoT Hub. Den skapar också en enhetstvilling.

När en enhet först ansluter till lösningen skickar den rapporterade egenskaper och ett meddelande om enhetsinformation. De rapporterade egenskapsvärdena sparas automatiskt i enhetstvillingen. De rapporterade egenskaperna omfattar enhetstillverkaren, modellnummer, serienummer och en lista över metoder som stöds. Meddelandet om enhetsinformation innehåller listan över kommandon som enheten stöder, inklusive information om alla kommandoparametrar. När lösningen tar emot det här meddelandet uppdateras enhetsinformationen i Cosmos DB-databasen.

Visa och redigera enhetsinformation i lösningsportalen

Enhetslistan i lösningsportalen visar följande enhetsegenskaper som kolumner som standard: Status, DeviceId, Tillverkare, Modellnummer, Serienummer, Inbyggd programvara, Plattform, Processor och Installerat RAM-minne. Du kan anpassa kolumnerna genom att klicka på Kolumnredigeraren. Enhetsegenskaperna Latitud och Longitud driver platsen i Bing-kartan på instrumentpanelen.

Kolumnredigeraren i enhetslistan

I fönstret Enhetsinformation i lösningsportalen kan du redigera önskade egenskaper och taggar (rapporterade egenskaper är skrivskyddade).

Fönstret Enhetsinformation

Du kan använda lösningsportalen för att ta bort en enhet från din lösning. När du tar bort en enhet tar lösningen bort enhetsposten från identitetsregistret och tar sedan bort enhetstvillingen. Lösningen tar också bort information om enheten från Cosmos DB-databasen. Innan du kan ta bort en enhet måste du inaktivera den.

Ta bort enhet

Meddelandebearbetning av enhetsinformation

Enhetsinformationsmeddelanden som skickas av en enhet skiljer sig från telemetrimeddelanden. Meddelanden om enhetsinformation innehåller kommandon som en enhet kan svara på och eventuell kommandohistorik. IoT Hub själv har ingen kunskap om metadata som finns i ett meddelande om enhetsinformation och bearbetar meddelandet på samma sätt som det bearbetar alla meddelanden från enhet till moln. I fjärrövervakningslösningen läser ett Azure Stream Analytics-jobb (ASA) meddelandena från IoT Hub. DeviceInfo stream analytics-jobbfilter för meddelanden som innehåller "ObjectType": "DeviceInfo" och vidarebefordrar dem till EventProcessorHost-värdinstansen som körs i ett webbjobb. Logik i EventProcessorHost-instansen använder enhets-ID:t för att hitta Cosmos DB-posten för den specifika enheten och uppdatera posten.

Anteckning

Ett meddelande om enhetsinformation är ett standardmeddelande från enhet till moln. Lösningen skiljer mellan enhetsinformationsmeddelanden och telemetrimeddelanden med hjälp av ASA-frågor.

Nästa steg

Nu när du har lärt dig hur du kan anpassa de förkonfigurerade lösningarna kan du utforska några av de andra funktionerna i de förkonfigurerade IoT Suite-lösningarna: