Automatisk hantering av IoT-enheter och -moduler med Azure-portalen

Automatisk enhetshantering i Azure IoT Hub automatiserar många av de repetitiva och komplexa uppgifter som krävs för att hantera stora enhetsflottor. Med automatisk enhetshantering kan du rikta in dig på en uppsättning enheter baserat på deras egenskaper, definiera en önskad konfiguration och sedan låta IoT Hub uppdatera enheterna när de kommer in i omfånget. Den här uppdateringen görs med hjälp av en automatisk enhetskonfiguration eller automatisk modulkonfiguration, som gör att du kan sammanfatta slutförande och efterlevnad, hantera sammanslagning och konflikter och distribuera konfigurationer i en stegvis metod.

Kommentar

De funktioner som beskrivs i den här artikeln är endast tillgängliga på standardnivån för IoT Hub. Mer information om de grundläggande och standard-/kostnadsfria IoT Hub-nivåerna finns i Välj rätt IoT Hub-nivå för din lösning.

Automatisk enhetshantering fungerar genom att uppdatera en uppsättning enhetstvillingar eller modultvillingar med önskade egenskaper och rapportera en sammanfattning som baseras på tvillingrapporterade egenskaper. Det introducerar ett nytt klass- och JSON-dokument som kallas konfiguration som har tre delar:

  • Målvillkoret definierar omfånget för enhetstvillingar eller modultvillingar som ska uppdateras. Målvillkoret anges som en fråga för tvillingtaggar och/eller rapporterade egenskaper.

  • Målinnehållet definierar önskade egenskaper som ska läggas till eller uppdateras i målenhetstvillingar eller modultvillingar. Innehållet innehåller en sökväg till avsnittet med önskade egenskaper som ska ändras.

  • Måtten definierar sammanfattningsantalet för olika konfigurationstillstånd, till exempel Lyckades, Pågår och Fel. Anpassade mått anges som frågor för tvillingrapporterade egenskaper. Systemmått är standardmått som mäter tvillinguppdateringsstatus, till exempel antalet tvillingar som är mål och antalet tvillingar som har uppdaterats.

Automatiska konfigurationer körs för första gången kort efter att konfigurationen har skapats och sedan med fem minuters intervall. Måttfrågor körs varje gång den automatiska konfigurationen körs. Högst 100 automatiska konfigurationer stöds på IoT-hubbar på standardnivå. tio på IoT-hubbar på den kostnadsfria nivån. Begränsningsgränser gäller också. Mer information finns i Kvoter och begränsning.

Implementera tvillingar

Automatiska enhetskonfigurationer kräver användning av enhetstvillingar för att synkronisera tillstånd mellan molnet och enheterna. Mer information finns i Understand and use device twins in IoT Hub (Förstå och använda enhetstvillingar i IoT Hub).

Automatiska modulkonfigurationer kräver användning av modultvillingar för att synkronisera tillstånd mellan molnet och modulerna. Mer information finns i Förstå och använda modultvillingar i IoT Hub.

Använda taggar för att rikta in sig på tvillingar

Innan du skapar en konfiguration måste du ange vilka enheter eller moduler du vill påverka. Azure IoT Hub identifierar enheter med taggar i enhetstvillingen och identifierar moduler med taggar i modultvillingen. Varje enhet eller moduler kan ha flera taggar och du kan definiera dem på alla sätt som passar din lösning. Om du till exempel hanterar enheter på olika platser lägger du till följande taggar i en enhetstvilling:

"tags": {
	"location": {
		"state": "Washington",
		"city": "Tacoma"
    }
},

Skapa en konfiguration

Du kan skapa högst 100 automatiska konfigurationer på IoT-hubbar på standardnivå. tio på IoT-hubbar på den kostnadsfria nivån. Mer information finns i Kvoter och begränsning.

  1. Gå till din IoT-hubb i Azure-portalen.

  2. Välj Konfigurationer + distributioner i det vänstra navigeringsfönstret.

  3. Välj Lägg till och välj Konfiguration av enhetstvillingar eller Konfiguration av modultvillingar i listrutan.

    Screenshot showing how to add a configuration.

Det finns fem steg för att skapa en konfiguration. Följande avsnitt går igenom var och en.

Namn och etikett

  1. Ge konfigurationen ett unikt namn som är upp till 128 tecken långt. Gemener och följande specialtecken tillåts: -+%_*!'. Blanksteg är inte tillåtna.

  2. Lägg till etiketter som hjälper dig att spåra dina konfigurationer. Etiketter är Namn, Värdepar som beskriver konfigurationen. Exempel: HostPlatform, Linux eller Version, 3.0.1.

  3. Välj Nästa för att gå vidare till nästa steg.

Tvillinginställningar

Det här avsnittet definierar innehållet som ska anges i önskade egenskaper för enhetstvillingar eller modultvillingar. Det finns två indata för varje uppsättning inställningar. Den första är tvillingsökvägen, som är sökvägen till JSON-avsnittet i de önskade tvillingegenskaperna som ska anges. Den andra är JSON-innehållet som ska infogas i det avsnittet.

Du kan till exempel ange tvillingsökvägen till properties.desired.chiller-water och sedan ange följande JSON-innehåll:

{
  "temperature": 66,
  "pressure": 28
}

Screenshot of setting the device or module twin property and json content.

Du kan också ange enskilda inställningar genom att ange hela tvillingsökvägen och ange värdet utan hakparenteser. Med tvillingsökvägen properties.desired.chiller-water.temperatureanger du till exempel innehållet till 66. Skapa sedan en ny tvillinginställning för tryckegenskapen.

Om två eller flera konfigurationer riktar sig mot samma tvillingsökväg tillämpas innehållet från konfigurationen med högst prioritet (prioritet definieras i steg 4).

Om du vill ta bort en befintlig egenskap anger du egenskapsvärdet till null.

Du kan lägga till ytterligare inställningar genom att välja Lägg till enhetstvillinginställning eller Lägg till modultvillinginställning.

Målenheter eller moduler

Använd egenskapen taggar från dina tvillingar för att rikta in dig på de specifika enheter eller moduler som ska ta emot den här konfigurationen. Du kan också rikta in dig på rapporterade egenskaper för tvilling.

Automatiska enhetskonfigurationer kan bara rikta in sig på taggar för enhetstvillingar, och automatiska modulkonfigurationer kan bara rikta in sig på modultvillingtaggar.

Eftersom flera konfigurationer kan riktas mot samma enhet eller modul behöver varje konfiguration ett prioritetsnummer. Om det någonsin uppstår en konflikt vinner konfigurationen med högsta prioritet.

  1. Ange ett positivt heltal för konfigurationsprioriteten. Det högsta numeriska värdet anses vara den högsta prioriteten. Om två konfigurationer har samma prioritetsnummer vinner den som skapades senast.

  2. Ange ett målvillkor för att avgöra vilka enheter eller moduler som ska vara mål för den här konfigurationen. Villkoret baseras på tvillingtaggar eller tvillingrapporterade egenskaper och ska matcha uttrycksformatet.

    För automatisk enhetskonfiguration kan du bara ange taggen eller den rapporterade egenskapen som mål. Exempel: tags.environment='test' eller properties.reported.chillerProperties.model='4000x'. Du kan ange * att alla enheter ska riktas in.

    För automatisk modulkonfiguration använder du en fråga för att ange taggar eller rapporterade egenskaper från de moduler som är registrerade i IoT-hubben. Exempel: from devices.modules where tags.environment='test' eller from devices.modules where properties.reported.chillerProperties.model='4000x'. Jokertecknet kan inte användas för att rikta in sig på alla moduler.

Mått

Mått ger sammanfattningar av de olika tillstånd som en enhet eller modul kan rapportera tillbaka efter att konfigurationsinnehållet har tillämpats. Du kan till exempel skapa ett mått för väntande inställningar, ett mått för fel och ett mått för lyckade inställningar.

Varje konfiguration kan ha upp till fem anpassade mått.

  1. Ange ett namn för Måttnamn.

  2. Ange en fråga för måttkriterier. Frågan baseras på rapporterade egenskaper för enhetstvillingar. Måttet representerar antalet rader som returneras av frågan.

    Till exempel:

    SELECT deviceId FROM devices 
      WHERE properties.reported.chillerWaterSettings.status='pending'
    

    Du kan inkludera en sats som konfigurationen tillämpades på, till exempel:

    /* Include the double brackets. */
    SELECT deviceId FROM devices 
      WHERE configurations.[[yourconfigname]].status='Applied'
    

    Om du skapar ett mått för att rapportera om konfigurerade moduler väljer du moduleId från devices.modules. Till exempel:

    SELECT deviceId, moduleId FROM devices.modules
      WHERE properties.reported.lastDesiredStatus.code = 200
    

Granska konfiguration

Granska konfigurationsinformationen och välj sedan Skicka.

Övervaka en konfiguration

Om du vill visa information om en konfiguration och övervaka enheterna som kör den använder du följande steg:

  1. Gå till din IoT-hubb i Azure-portalen.

  2. Välj Konfigurationer i Enhetshantering.

  3. Granska konfigurationslistan. För varje konfiguration kan du visa följande information:

    • ID – namnet på konfigurationen.

    • Målvillkor – frågan som används för att definiera målenheter eller moduler.

    • Prioritet – det prioritetsnummer som tilldelats konfigurationen.

    • Skapandetid – tidsstämpeln från när konfigurationen skapades. Den här tidsstämpeln används för att bryta banden när två konfigurationer har samma prioritet.

    • Systemmått – mått som beräknas av IoT Hub och inte kan anpassas av utvecklare. Mål anger antalet enhetstvillingar som matchar målvillkoret. Gäller anges antalet enhetstvillingar som har ändrats av konfigurationen, vilket kan inkludera partiella ändringar i händelse av att en separat konfiguration med högre prioritet också gör ändringar.

    • Anpassade mått – mått som har angetts av utvecklaren som frågor mot tvillingrapporterade egenskaper. Upp till fem anpassade mått kan definieras per konfiguration.

  4. Välj den konfiguration som du vill övervaka.

  5. Granska konfigurationsinformationen. Du kan använda flikar för att visa specifik information om de enheter som tog emot konfigurationen.

    • Målenheter eller målmoduler – de enheter eller moduler som matchar målvillkoret.

    • Mått – en lista över systemmått och anpassade mått. Du kan visa en lista över enheter eller moduler som räknas för varje mått genom att välja måttet i listrutan och sedan välja Visa enheter eller Visa moduler.

    • Etiketter – nyckel/värde-par som används för att beskriva en konfiguration. Etiketter har ingen inverkan på funktionaliteten.

    • Enhetstvillingar Inställningar eller Modultvillingar Inställningar – de tvillinginställningar som anges av konfigurationen, om några.

Ändra en konfiguration

När du ändrar en konfiguration replikeras ändringarna omedelbart till alla målenheter eller moduler.

Om du uppdaterar målvillkoret sker följande uppdateringar:

  • Om en tvilling inte uppfyllde det gamla målvillkoret, men uppfyller det nya målvillkoret och den här konfigurationen är den högsta prioriteten för den tvillingen, tillämpas den här konfigurationen.

  • Om en tvilling som för närvarande kör den här konfigurationen inte längre uppfyller målvillkoret tas inställningarna från konfigurationen bort och tvillingen ändras av den näst högsta prioritetskonfigurationen.

  • Om en tvilling som för närvarande kör den här konfigurationen inte längre uppfyller målvillkoret och inte uppfyller målvillkoret för andra konfigurationer tas inställningarna från konfigurationen bort och inga andra ändringar görs på tvillingen.

Om du vill ändra en konfiguration använder du följande steg:

  1. Gå till din IoT-hubb i Azure-portalen.

  2. Välj Konfigurationer + distributioner i Enhetshantering.

  3. Välj den konfiguration som du vill ändra.

  4. Du kan göra uppdateringar av följande fält:

    • Prioritet
    • Mått
    • Målvillkor
    • Etiketter
  5. Välj Spara.

  6. Följ stegen i Övervaka en konfiguration för att se hur ändringarna distribueras.

Ta bort en konfiguration

När du tar bort en konfiguration får alla enhetstvillingar sin näst högsta prioritetskonfiguration. Om enhetstvillingar inte uppfyller målvillkoret för någon annan konfiguration tillämpas inga andra inställningar.

  1. Gå till din IoT-hubb i Azure-portalen.

  2. Välj Konfigurationer + distributioner i Enhetshantering.

  3. Använd kryssrutan för att välja den konfiguration som du vill ta bort.

  4. Välj Ta bort.

  5. En uppmaning ber dig att bekräfta.

Nästa steg

I den här artikeln har du lärt dig hur du konfigurerar och övervakar IoT-enheter i stor skala.

Information om hur du hanterar IoT Hub-enhetsidentiteter i bulk finns i Importera och exportera IoT Hub-enhetsidentiteter i grupp