Co jsou šablony zařízení?

Šablona zařízení v Azure IoT Central je podrobný plán, který definuje charakteristiky a chování typu zařízení, které se připojuje k vaší aplikaci. Šablona zařízení například definuje telemetrii, kterou zařízení odesílá, aby služba IoT Central vytvořila vizualizace, které používají správné jednotky a datové typy.

Tvůrce řešení přidá šablony zařízení do aplikace IoT Central. Vývojář zařízení napíše kód zařízení, který implementuje chování definované v šabloně zařízení. Další informace o datech, která zařízení vyměňuje se službou IoT Central, najdete v tématu Telemetrie, vlastnosti a datové části příkazů.

Šablona zařízení obsahuje následující části:

  • Model zařízení. Tato část šablony zařízení definuje způsob interakce zařízení s vaší aplikací. Každý model zařízení má jedinečné ID. Vývojář zařízení implementuje chování definované v modelu.
    • Kořenová komponenta. Každý model zařízení má kořenovou komponentu. Rozhraní kořenové komponenty popisuje funkce specifické pro model zařízení.
    • Součásti. Model zařízení může obsahovat kromě kořenové komponenty i komponenty, které popisují možnosti zařízení. Každá komponenta má rozhraní, které popisuje možnosti komponenty. Rozhraní komponent se můžou opakovaně používat v jiných modelech zařízení. Například několik modelů telefonních zařízení může používat stejné rozhraní fotoaparátu.
    • Zděděná rozhraní. Model zařízení obsahuje jedno nebo více rozhraní, která rozšiřují možnosti kořenové komponenty.
  • Zobrazení. Tato část šablony zařízení umožňuje vývojáři řešení definovat vizualizace pro zobrazení dat ze zařízení a formuláře pro správu a řízení zařízení. Zobrazení nemají vliv na kód, který vývojář zařízení zapisuje za účelem implementace modelu zařízení.

Přiřazení zařízení k šabloně zařízení

Aby zařízení mohlo pracovat s IoT Central, musí být přiřazeno k šabloně zařízení. Toto přiřazení se provádí jedním ze čtyř způsobů:

  • Když zaregistrujete zařízení na stránce Zařízení , můžete identifikovat šablonu, kterou má zařízení použít.
  • Při hromadném importu seznamu zařízení můžete zvolit šablonu zařízení, která by měla používat všechna zařízení v seznamu.
  • Po připojení můžete ručně přiřadit nepřiřazené zařízení k šabloně zařízení.
  • Zařízení můžete k šabloně zařízení automaticky přiřadit odesláním ID modelu, když se zařízení poprvé připojí k vaší aplikaci.

Automatické přiřazení

IoT Central může automaticky přiřadit zařízení k šabloně zařízení, když se zařízení připojí. Zařízení by mělo po připojení odeslat ID modelu. IoT Central používá ID modelu k identifikaci šablony zařízení pro daný konkrétní model zařízení. Proces zjišťování funguje takto:

  1. Pokud už je šablona zařízení publikovaná v aplikaci IoT Central, přiřadí se k šabloně zařízení.

  2. Pokud šablona zařízení ještě není publikovaná v aplikaci IoT Central, IoT Central hledá model zařízení v úložišti veřejného modelu zařízení. Pokud IoT Central model najde, použije ho k vygenerování základní šablony zařízení.

  3. Pokud IoT Central nenajde model v úložišti veřejného modelu, zařízení se označí jako nepřiřazené. Operátor může:

    • Vytvořte pro zařízení šablonu zařízení a potom migrujte nepřiřazené zařízení do nové šablony zařízení.
    • Automaticky vygenerujte šablonu zařízení na základě dat, která zařízení odesílá.

Následující snímek obrazovky ukazuje, jak zobrazit ID modelu šablony zařízení v IoT Central. V šabloně zařízení vyberte komponentu a pak vyberte Upravit identitu:

Snímek obrazovky znázorňující ID modelu v šabloně termostatu zařízení

Termostatový model můžete zobrazit v úložišti veřejného modelu. Definice ID modelu vypadá takto:

"@id": "dtmi:com:example:Thermostat;1"

K přiřazení zařízení k šabloně zařízení použijte následující datovou část DPS:

{
  "modelId":"dtmi:com:example:TemperatureController;2"
}

Další informace o datové části DPS najdete v ukázkovém kódu použitém v kurzu: Vytvoření a připojení klientské aplikace k aplikaci Azure IoT Central.

Modely zařízení

Model zařízení definuje, jak zařízení komunikuje s vaší aplikací IoT Central. Vývojář zařízení se musí ujistit, že zařízení implementuje chování definované v modelu zařízení, aby služba IoT Central dokázala zařízení monitorovat a spravovat. Model zařízení se skládá z jednoho nebo více rozhraní a každé rozhraní může definovat kolekci typů telemetrie , vlastností zařízení a příkazů. Vývojář řešení může:

  • Importujte soubor JSON, který definuje kompletní model zařízení nebo jednotlivá rozhraní do šablony zařízení.
  • Pomocí webového uživatelského rozhraní v IoT Central můžete vytvořit nebo upravit model zařízení.

Poznámka:

IoT Central přijímá z zařízení libovolnou platnou datovou část JSON, ale může data používat jenom pro vizualizace, pokud odpovídá definici v modelu zařízení. Data, která neodpovídají definici, můžete exportovat, viz Export dat IoT do cloudových cílů pomocí služby Blob Storage.

Další informace o úpravách modelu zařízení najdete v tématu Úprava existující šablony zařízení.

Vývojář řešení může také exportovat soubor JSON ze šablony zařízení, která obsahuje kompletní model zařízení nebo jednotlivá rozhraní. Vývojář zařízení může tento dokument JSON použít k pochopení způsobu komunikace zařízení s aplikací IoT Central.

Soubor JSON, který definuje model zařízení, používá jazyk DTDL (Digital Twin Definition Language) V2. IoT Central očekává, že soubor JSON bude obsahovat model zařízení s vloženými rozhraními, nikoli v samostatných souborech. Modely vytvořené v IoT Central mají definovaný kontext dtmi:iotcentral:context;2 , který označuje, že model byl vytvořen v IoT Central:

"@context": [
  "dtmi:iotcentral:context;2",
  "dtmi:dtdl:context;2"
]

Další informace o modelech DTDL najdete v průvodci modelováním technologie Plug and Play IoT.

Poznámka:

IoT Central definuje některá rozšíření jazyka DTDL v2. Další informace najdete v tématu Rozšíření IoT Central.

Vlastnosti

Ve výchozím nastavení jsou vlastnosti jen pro čtení. Vlastnosti jen pro čtení znamenají, že zařízení hlásí aktualizace hodnoty vlastností vaší aplikace IoT Central. Vaše aplikace IoT Central nemůže nastavit hodnotu vlastnosti jen pro čtení.

Vlastnost můžete také označit jako zapisovatelnou v rozhraní. Zařízení může obdržet aktualizaci zapisovatelné vlastnosti z aplikace IoT Central a aktualizace hodnot vlastností sestavy pro vaši aplikaci.

Zařízení nemusí být připojená k nastavení hodnot vlastností. Aktualizované hodnoty se přenesou, když se zařízení příště připojí k aplikaci. Toto chování platí pro vlastnosti jen pro čtení i zapisovatelné vlastnosti.

Nepoužívejte vlastnosti k odesílání telemetrie ze zařízení. Například vlastnost jen pro čtení, například temperatureSetting=80 by měla znamenat, že teplota zařízení byla nastavena na 80 a zařízení se snaží dostat k této teplotě nebo zůstat na této teplotě.

U zapisovatelných vlastností vrátí aplikace zařízení stavový kód, verzi a popis požadovaného stavu, který označuje, zda přijala a použila hodnotu vlastnosti.

Vlastnosti cloudu

Do kořenové komponenty modelu můžete také přidat vlastnosti cloudu. Vlastnosti cloudu umožňují zadat všechna metadata zařízení, která se mají ukládat v aplikaci IoT Central. Hodnoty cloudových vlastností se ukládají v aplikaci IoT Central a nikdy se nesynchronují se zařízením. Vlastnosti cloudu nemají vliv na kód, který vývojář zařízení zapisuje za účelem implementace modelu zařízení.

Vývojář řešení může přidat cloudové vlastnosti do zobrazení zařízení a formulářů spolu s vlastnostmi zařízení, aby operátor mohl spravovat zařízení připojená k aplikaci. Vývojář řešení může také použít vlastnosti cloudu jako součást definice pravidla, aby bylo možné upravit prahovou hodnotu operátorem.

Následující fragment kódu DTDL ukazuje ukázkovou definici cloudové vlastnosti:

{
    "@id": "dtmi:azureiot:Thermostat:CustomerName",
    "@type": [
        "Property",
        "Cloud",
        "StringValue"
    ],
    "displayName": {
        "en": "Customer Name"
    },
    "name": "CustomerName",
    "schema": "string"
}

Telemetrie

IoT Central umožňuje zobrazit telemetrii v zobrazeních a grafech zařízení a používat pravidla k aktivaci akcí při dosažení prahových hodnot. IoT Central používá informace v modelu zařízení, jako jsou datové typy, jednotky a zobrazované názvy, k určení způsobu zobrazení hodnot telemetrie. Hodnoty telemetrie můžete zobrazit také na řídicích panelech aplikací a osobních řídicích panelech.

Pomocí funkce exportu dat IoT Central můžete streamovat telemetrii do jiných cílů, jako je úložiště nebo Event Hubs.

Příkazy

Ve výchozím nastavení musí být příkaz spuštěn do 30 sekund a zařízení musí být připojené, až příkaz dorazí. Pokud zařízení reaguje včas nebo zařízení není připojené, příkaz selže.

Příkazy můžou mít parametry požadavku a vrátit odpověď.

Offline příkazy

Příkazy fronty můžete zvolit, pokud je zařízení aktuálně offline, povolením možnosti Fronta v případě offline příkazu v šabloně zařízení.

Offline příkazy jsou jednosměrná oznámení pro zařízení z vašeho řešení. Offline příkazy můžou mít parametry požadavku, ale nevrací odpověď.

Poznámka:

Offline příkazy se označí jako durable v případě, že model exportujete jako DTDL.

Offline příkazy používají zprávy typu cloud-zařízení služby IoT Hub k odeslání příkazu a datové části do zařízení.

Datová část zprávy, kterou zařízení obdrží, je nezpracovaná hodnota parametru. Vlastní vlastnost s názvem method-name ukládá název příkazu IoT Central. Následující tabulka uvádí některé příklady datových částí:

Schéma požadavků IoT Central Příklad datové části přijaté zařízením
Žádný parametr požadavku @
Hodnota s dvojitou přesností 1.23
String sample string
Object {"StartTime":"2021-01-05T08:00:00.000Z","Bank":2}

Následující fragment kódu z modelu zařízení ukazuje definici příkazu. Příkaz má parametr objektu s polem datetime a výčtem:

{
  "@type": "Command",
  "displayName": {
    "en": "Generate Diagnostics"
  },
  "name": "GenerateDiagnostics",
  "request": {
    "@type": "CommandPayload",
    "displayName": {
      "en": "Payload"
    },
    "name": "Payload",
    "schema": {
      "@type": "Object",
      "displayName": {
        "en": "Object"
      },
      "fields": [
        {
          "displayName": {
            "en": "StartTime"
          },
          "name": "StartTime",
          "schema": "dateTime"
        },
        {
          "displayName": {
            "en": "Bank"
          },
          "name": "Bank",
          "schema": {
            "@type": "Enum",
            "displayName": {
              "en": "Enum"
            },
            "enumValues": [
              {
                "displayName": {
                  "en": "Bank 1"
                },
                "enumValue": 1,
                "name": "Bank1"
              },
              {
                "displayName": {
                  "en": "Bank2"
                },
                "enumValue": 2,
                "name": "Bank2"
              },
              {
                "displayName": {
                  "en": "Bank3"
                },
                "enumValue": 3,
                "name": "Bank3"
              }
            ],
            "valueSchema": "integer"
          }
        }
      ]
    }
  }
}

Pokud v uživatelském rozhraní šablony zařízení pro příkaz v předchozím fragmentu kódu povolíte možnost Fronta, bude zpráva, kterou zařízení obdrží, obsahovat následující vlastnosti:

Název vlastnosti Příklad hodnoty
custom_properties {'method-name': 'GenerateDiagnostics'}
data {"StartTime":"2021-01-05T08:00:00.000Z","Bank":2}

Zobrazení

Vývojář řešení vytvoří zobrazení, která operátorům umožňují monitorovat a spravovat připojená zařízení. Zobrazení jsou součástí šablony zařízení, takže zobrazení je přidružené ke konkrétnímu typu zařízení. Zobrazení může zahrnovat:

  • Grafy pro vykreslení telemetrie
  • Dlaždice pro zobrazení vlastností zařízení jen pro čtení
  • Dlaždice, které operátorovi umožní upravovat zapisovatelné vlastnosti zařízení.
  • Dlaždice, které operátorovi umožní upravovat vlastnosti cloudu.
  • Dlaždice, které operátorovi umožní volat příkazy, včetně příkazů, které očekávají datovou část.
  • Dlaždice pro zobrazení popisků, obrázků nebo textu markdownu

Další kroky

Teď, když jste se dozvěděli o šablonách zařízení, je navrhovaným dalším krokem čtení telemetrie, vlastností a datových částí příkazů, abyste se dozvěděli více o datech, která zařízení vyměňuje se službou IoT Central.