Redigera en enhetsmall

En enhetsmall innehåller en modell som beskriver hur en enhet interagerar med IoT Central. Den här modellen definierar enhetens funktioner och hur IoT Central interagerar med dem. Enheter kan skicka telemetri- och egenskapsvärden till IoT Central, IoT Central kan skicka egenskapsuppdateringar och kommandon till en enhet. IoT Central använder också modellen för att definiera interaktioner med IoT Central-funktioner som jobb, regler och exporter.

Ändringar i modellen i en enhetsmall kan påverka hela programmet, inklusive alla anslutna enheter. Ändringar i en funktion som används av regler, exporter, enhetsgrupper eller jobb kan leda till att de beter sig oväntat eller inte fungerar alls. Om du till exempel tar bort en telemetridefinition från en mall:

  • IoT Central kan inte längre tolka det värdet. IoT Central visar enhetsdata som inte kan tolkas som odefinierade data på enhetens rådatasida .
  • IoT Central innehåller inte längre värdet i någon dataexport.

För att hjälpa dig att undvika oavsiktliga konsekvenser av att redigera en enhetsmall innehåller den här artikeln rekommendationer baserat på din aktuella utvecklingslivscykelfas. I allmänhet, ju tidigare du befinner dig i utvecklingslivscykeln, desto mer tolerant kan du vara för ändringar i enhetsmallen.

Mer information om enhetsmallar och hur du skapar en finns i Vad är enhetsmallar? och Konfigurera en enhetsmall.

Information om hur du hanterar enhetsmallar med hjälp av REST API :et för IoT Central finns i Så här använder du REST-API:et för IoT Central för att hantera enhetsmallar.

Ändra en enhetsmall

Additiva ändringar, till exempel att lägga till en funktion eller ett gränssnitt i en modell, är icke-bakåtkompatibla ändringar. Du kan göra additiva ändringar i en modell i alla skeden av utvecklingslivscykeln.

Icke-bakåtkompatibla ändringar omfattar borttagning av delar av en modell eller ändring av ett kapacitetsnamn eller schematyp. Dessa ändringar kan göra att programfunktioner som regler, exporter eller instrumentpaneler visar felmeddelanden och slutar fungera.

I tidiga faser för enhetsutveckling, medan du fortfarande utformar och testar modellen, finns det större tolerans för att göra ändringar direkt i enhetsmodellen. Innan du ansluter produktionsenheter till en enhetsmall kan du redigera enhetsmallen direkt. IoT Central tillämpar ändringarna automatiskt på enheter när du publicerar enhetsmallen.

När du har bifogat produktionsenheter till en enhetsmall utvärderar du effekten av eventuella ändringar innan du redigerar en enhetsmall. Du bör inte göra icke-bakåtkompatibla ändringar i en enhetsmall i produktion. Om du vill göra sådana ändringar skapar du en ny version av enhetsmallen. Testa den nya enhetsmallen och migrera sedan dina produktionsenheter till den nya mallen vid en schemalagd stilleståndstid.

Uppdatera en IoT Edge-enhetsmall

För en IoT Edge-enhet grupperar modellen funktioner efter moduler som motsvarar de IoT Edge-moduler som körs på enheten. Distributionsmanifestet är ett separat JSON-dokument som talar om för en IoT Edge-enhet vilka moduler som ska installeras, hur de konfigureras och vilka egenskaper modulen har. Om du ändrar ett distributionsmanifest kan du uppdatera enhetsmallen så att den innehåller de moduler och egenskaper som definierats i manifestet:

  1. Gå till noden Moduler i enhetsmallen.
  2. På sidan Modulsammanfattning väljer du Importera moduler från manifestet.
  3. Välj lämpligt distributionsmanifest och välj Importera.

Mer information finns i IoT Edge-enheter och IoT Central.

Redigera och publicera åtgärder

Följande åtgärder är användbara när du redigerar en enhetsmall:

  • Spara När du ändrar en del av enhetsmallen skapas ett utkast som du kan återgå till när du sparar ändringarna. Dessa ändringar påverkar ännu inte anslutna enheter. Alla enheter som skapats från den här mallen har inte de sparade ändringarna förrän du publicerar den.
  • Publicera. När du publicerar enhetsmallen tillämpas alla sparade ändringar på befintliga enhetsinstanser. Nyligen skapade enhetsinstanser använder alltid den senast publicerade mallen.
  • Versionshanterade en mall. När du skapar en enhetsmall skapas en ny mall med alla de senaste sparade ändringarna. Ändringar som görs i en ny version påverkar inte befintliga enhetsinstanser. Mer information finns i Version av en enhetsmall.
  • Versionshanterade ett gränssnitt. När du skapar ett gränssnitt skapas ett nytt gränssnitt med alla de senaste sparade funktionerna. Du kan återanvända ett gränssnitt på flera platser i en mall. Det är därför en ändring som görs i en referens till ett gränssnitt ändrar alla platser i mallen som använder gränssnittet. När du skapar ett gränssnitt ändras det här beteendet eftersom den nya versionen nu är ett separat gränssnitt. Mer information finns i Version ett gränssnitt.
  • Migrera en enhet. När du migrerar en enhet växlar enhetsinstansen från en enhetsmall till en annan. Enhetsmigrering kan orsaka en kort stund när IoT Central bearbetar ändringarna. Mer information finns i Migrera en enhet mellan olika versioner.

Versionsnummer

Både enhetsmodeller och gränssnitt har versionsnummer. Med olika versionsnummer kan modeller eller gränssnitt dela ett @id värde, samtidigt som de tillhandahåller en historik över uppdateringar. Versionsnummer ökar bara om du väljer att version mallen eller gränssnittet, eller om du avsiktligt ändrar versionsnumret. Du bör ändra ett versionsnummer när du gör en större ändring i en mall eller ett gränssnitt.

Följande kodfragment visar enhetsmodellen för en termostatenhet. Enhetsmodellen har ett enda gränssnitt. Du kan se versionsnumret, 1, i slutet av fältet@id .

{
  "@context": "dtmi:dtdl:context;2",
  "@id": "dtmi:com:example:Thermostat;1",
  "@type": "Interface",
  "displayName": "Thermostat",
  "description": "Reports current temperature and provides desired temperature control.",
  "contents": [
    // ...
  ]
}

Om du vill visa den här informationen i IoT Central-användargränssnittet väljer du Visa identitet i enhetsmallredigeraren:

Screenshot that shows how to view the identity of an interface to see the version number.

Versionshanterade en enhetsmall

Så här skapar du en enhetsmall:

  1. Gå till sidan Enhetsmallar .
  2. Välj den enhetsmall som du vill använda.
  3. Välj Version överst på sidan och ge mallen ett nytt namn. IoT Central föreslår ett nytt namn som du kan redigera.
  4. Välj Skapa.

Nu har du skapat en ny mall med en unik identitet som inte är kopplad till några befintliga enheter.

Versionshanterade ett gränssnitt

Så här skapar du ett gränssnitt:

  1. Gå till sidan Enhetsmallar .
  2. Välj den enhetsmall som du har i utkastläge.
  3. Välj det publicerade gränssnitt som du vill version och redigera.
  4. Välj Version överst på gränssnittssidan.
  5. Välj Skapa.

Nu har du skapat ett nytt gränssnitt med en unik identitet som inte synkroniseras med den tidigare gränssnittsversionen.

Migrera en enhet mellan olika versioner

Du kan skapa flera versioner av enhetsmallen. Med tiden har du flera anslutna enheter som använder dessa enhetsmallar. Du kan migrera enheter från en version av enhetsmallen till en annan. Följande steg beskriver hur du migrerar en enhet:

  1. Gå till Enheter-sidan.

  2. Välj den enhet som du behöver migrera till en annan version.

  3. Välj Migrera:

    Screenshot that shows how to choose the option to start migrating a device.

  4. Välj enhetsmallen med den version som du vill migrera enheten till och välj Migrera.

Dricks

Du kan använda ett jobb för att migrera alla enheter i en enhetsgrupp till en ny enhetsmall samtidigt.