Implementace zařízení a osvědčené postupy pro IoT Central

Tento článek obsahuje informace o tom, jak implementovat zařízení, která se připojují k aplikaci IoT Central. Obsahuje také některé osvědčené postupy. Další informace o celkovém procesu připojení najdete v tématu Připojení zařízení.

Ukázkový kód implementace zařízení najdete v kurzu : Vytvoření a připojení klientské aplikace k aplikaci Azure IoT Central.

Implementace zařízení

Zařízení, která se připojují k IoT Central, by měla dodržovat konvence technologie Plug and Play IoT. Jednou z těchto konvencí je, že zařízení by mělo odeslat ID modelu zařízení, který implementuje při připojení. ID modelu umožňuje aplikaci IoT Central přiřadit zařízení ke správné šabloně zařízení.

Šablona zařízení IoT Central obsahuje model , který určuje chování zařízení daného typu, které by se mělo implementovat. Chování zahrnuje telemetrii, vlastnosti a příkazy.

Každý model má jedinečný identifikátor modelu digitálního dvojčete (DTMI), například dtmi:com:example:Thermostat;1. Když se zařízení připojí k IoT Central, odešle DTMI modelu, který implementuje. IoT Central pak může zařízení přiřadit správnou šablonu zařízení.

IoT technologie Plug and Play definuje sadu konvencí, které má zařízení dodržovat při implementaci modelu DTDL (Digital Twin Definition Language).

Sady SDK pro zařízení Azure IoT zahrnují podporu konvencí technologie Plug and Play IoT.

Device model („Model zařízení“)

Model zařízení je definován pomocí jazyka modelování DTDL V2 . Tento jazyk umožňuje definovat:

  • Telemetrie, která zařízení odesílá. Definice obsahuje název a datový typ telemetrie. Například zařízení odesílá telemetrii teploty jako dvojité.
  • Vlastnosti, které zařízení hlásí službě IoT Central. Definice vlastnosti obsahuje název a datový typ. Například zařízení hlásí stav ventilu jako logickou hodnotu.
  • Vlastnosti, které může zařízení přijímat ze služby IoT Central. Volitelně můžete vlastnost označit jako zapisovatelnou. IoT Central například odesílá cílovou teplotu jako dvojitou hodnotu do zařízení.
  • Příkazy, na které zařízení reaguje. Definice obsahuje název příkazu a názvy a datové typy všech parametrů. Zařízení například reaguje na příkaz restartování, který určuje, kolik sekund má čekat před restartováním.

Poznámka:

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

Model DTDL může být no-component nebo multi-component model:

  • Model bez komponent: Jednoduchý model nepoužívá vložené ani kaskádové komponenty. Všechny telemetrie, vlastnosti a příkazy jsou definované jednou kořenovou komponentou. Příklad najdete v modelu Termostat .
  • Model s více komponentou Složitější model, který obsahuje dvě nebo více komponent. Tyto komponenty zahrnují jednu kořenovou komponentu a jednu nebo více vnořených komponent. Příklad najdete v modelu regulátoru teploty.

Tip

Kompletní model zařízení nebo jednotlivá rozhraní můžete importovat a exportovat ze šablony zařízení IoT Central jako soubor DTDL v2.

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

Konvence

Zařízení by mělo při výměně dat se službou IoT Central dodržovat konvence technologie Plug and Play IoT. Mezi konvence patří:

  • Pošlete DTMI, když se připojí ke službě IoT Central.
  • Odesílání správně formátovaných datových částí JSON a metadat do IoT Central
  • Správně reagovat na zapisovatelné vlastnosti a příkazy z IoT Central.
  • Postupujte podle zásad vytváření názvů pro příkazy komponent.

Poznámka:

IoT Central v současné době plně nepodporuje pole DTDL a geoprostorové datové typy.

Další informace o konvencích technologie Plug and Play IoT najdete v tématu Konvence technologie Plug and Play IoT.

Další informace o formátu zpráv JSON, které zařízení vyměňuje se službou IoT Central, najdete v tématu Telemetrie, vlastnosti a datové části příkazů.

Sady SDK pro zařízení

K implementaci chování zařízení použijte některou ze sad SDK zařízení Azure IoT. Kód by měl:

  • Zaregistrujte zařízení ve službě DPS a pomocí informací z DPS se připojte k internímu centru IoT v aplikaci IoT Central.
  • Oznamte DTMI modelu, který zařízení implementuje.
  • Odesílat telemetrii ve formátu, který určuje model zařízení. IoT Central používá model v šabloně zařízení k určení způsobu použití telemetrie pro vizualizace a analýzu.
  • Synchronizujte hodnoty vlastností mezi zařízením a IoT Central. Model určuje názvy vlastností a datové typy, aby služba IoT Central mohly zobrazit informace.
  • Implementujte obslužné rutiny příkazů pro příkazy zadané v modelu. Model určuje názvy příkazů a parametry, které má zařízení použít.

Další informace o roli šablon zařízení najdete v tématu Co jsou šablony zařízení?.

Následující tabulka shrnuje, jak se funkce zařízení Azure IoT Central mapují na funkce ioT Hubu:

Azure IoT Central Azure IoT Hub
Telemetrie Zasílání zpráv ze zařízení do cloudu
Offline příkazy Zasílání zpráv z cloudu do zařízení
Vlastnost Ohlášené vlastnosti dvojčete zařízení
Vlastnost (zapisovatelná) Požadované a hlášené vlastnosti dvojčete zařízení
Příkaz Přímé metody

Komunikační protokoly

Mezi komunikační protokoly, které zařízení může použít pro připojení k IoT Central, patří MQTT, AMQP a HTTPS. IoT Central interně používá centrum IoT k povolení připojení zařízení. Další informace o komunikačních protokolech, které IoT Hub podporuje pro připojení zařízení, najdete v tématu Volba komunikačního protokolu.

Pokud vaše zařízení nemůže používat žádný z podporovaných protokolů, použijte k převodu protokolů Azure IoT Edge. IoT Edge podporuje další scénáře inteligentního zpracování z aplikace Azure IoT Central.

Časová razítka telemetrie

IoT Central ve výchozím nastavení používá čas zařazení zprávy do fronty, když zobrazuje telemetrii na řídicích panelech a grafech. Čas zařazení zpráv je nastaven interně, když IoT Central obdrží zprávu ze zařízení.

Zařízení může vlastnost nastavit iothub-creation-time-utc , když vytvoří zprávu pro odeslání do IoT Central. Pokud je tato vlastnost k dispozici, IoT Central ji použije při zobrazení telemetrie na řídicích panelech a grafech.

Při exportu telemetrie z aplikace IoT Central můžete exportovat čas iothub-creation-time-utc a vlastnost.

Další informace ovlastnostech

Osvědčené postupy

Tato doporučení ukazují, jak implementovat zařízení, aby využívala integrované vysoké dostupnosti, zotavení po havárii a automatické škálování ve službě IoT Central.

Zpracování chyb připojení

Pro účely škálování nebo zotavení po havárii může IoT Central aktualizovat své základní ioT huby. Aby se zachovalo připojení, měl by kód zařízení zpracovávat konkrétní chyby připojení navazováním připojení k novému koncovému bodu IoT Hubu.

Pokud se zařízení při připojení zobrazí některé z následujících chyb, mělo by zařízení znovu vytvořit pomocí DPS, aby získalo nové připojovací řetězec. Tyto chyby znamenají, že připojovací řetězec už není platné:

  • Nedostupný koncový bod ioT Hubu
  • Platnost tokenu zabezpečení vypršela.
  • Zařízení je v IoT Hubu zakázané.

Pokud se při připojení zařízení zobrazí některá z následujících chyb, měla by k opakování připojení použít strategii zpětného vypnutí. Tyto chyby znamenají, že připojovací řetězec je stále platný, ale přechodné podmínky zastavují připojení zařízení:

  • Operátor zablokoval zařízení.
  • Vnitřní chyba 500 ze služby

Další informace o kódech chyb zařízení najdete v tématu Řešení potíží s připojením zařízení.

Další informace o implementaci automatického opětovného připojení najdete v tématu Správa opětovného připojení zařízení za účelem vytvoření odolných aplikací.

Možnosti testovacího převzetí služeb při selhání

Azure CLI umožňuje otestovat možnosti převzetí služeb při selhání kódu zařízení. Příkaz rozhraní příkazového řádku funguje tak, že dočasně přepne registraci zařízení do jiného interního centra IoT. Pokud chcete ověřit, že převzetí služeb při selhání zařízení fungovalo, zkontrolujte, jestli zařízení pořád odesílá telemetrii a reaguje na příkazy.

Pokud chcete spustit test převzetí služeb při selhání pro vaše zařízení, spusťte následující příkaz:

az iot central device manual-failover \
    --app-id {Application ID of your IoT Central application} \
    --device-id {Device ID of the device you're testing} \
    --ttl-minutes {How to wait before moving the device back to it's original IoT hub}

Tip

POKUD chcete najít ID aplikace, přejděte do správy aplikací > ve vaší aplikaci IoT Central.

Pokud je příkaz úspěšný, zobrazí se výstup, který vypadá jako v následujícím příkladu:

Command group 'iot central device' is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus
{
  "hubIdentifier": "6bd4...bafa",
  "message": "Success! This device is now being failed over. You can check your device'’'s status using 'iot central device registration-info' command. The device will revert to its original hub at Tue, 18 May 2021 11:03:45 GMT. You can choose to failback earlier using device-manual-failback command. Learn more: https://aka.ms/iotc-device-test"
}

Další informace o příkazu rozhraní příkazového řádku najdete v příkazu az iot central device manual-failover.

Teď můžete zkontrolovat, jestli telemetrie ze zařízení stále dosahuje vaší aplikace IoT Central.

Tip

Ukázkový kód zařízení, který zpracovává převzetí služeb při selhání v různých programovacích jazycích, najdete v tématu Klienti s vysokou dostupností IoT Central.

Další kroky

Mezi navrhované další kroky patří: