Mapování telemetrie při příchozím přenosu dat do IoT Central
Mapování dat umožňuje transformovat složitou telemetrii zařízení na strukturovaná data uvnitř IoT Central. Pro každé zařízení můžete namapovat konkrétní cestu JSON ve zprávě telemetrie zařízení na alias. Alias je popisný název cíle, na který mapujete. IoT Central pomocí mapování transformuje telemetrii na cestě do IoT Central. Namapovanou telemetrii můžete použít k:
- Vytváření šablon zařízení a prostředí pro správu zařízení v IoT Central
- Normalizuje telemetrii z různých zařízení mapováním cest JSON na více zařízeních na běžný alias.
- Export do cílů mimo IoT Central
Tip
Pokud chcete automaticky vygenerovat šablonu zařízení z nemodelované telemetrie, přečtěte si téma Automatické generování šablony zařízení.
Následující video vás provede procesem mapování dat:
Mapování telemetrie pro vaše zařízení
Mapování používá výraz JSONPath k identifikaci hodnoty v příchozí zprávě telemetrie k namapování na alias.
Výraz JSONPath začíná znakem $
, který odkazuje na kořenový prvek zprávy. Následuje $
posloupnost podřízených prvků oddělených hranatými závorkami. Příklad:
$["messages"]["tmp"]
$["opcua"]["payload"][0]["value"]
$["Messages"]["Payload"]["nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1"]["Value"]
IoT Central používá podmnožinu syntaxe výrazů JSONPath:
- Každý segment může být pouze nezáporné číslo nebo řetězec uzavřený v uvozovkách.
- Segment nemůže obsahovat zpětné lomítko, hranaté závorky nebo dvojité uvozovky.
- Cesta JSON nesmí překročit 1 000 znaků.
Pokud chcete ve své aplikaci IoT Central vytvořit mapování, zvolte jednu z následujících možností a přejděte na panel Dat mapy:
Na libovolné stránce zařízení vyberte Spravovat data mapy zařízení>:
V zobrazení nezpracovaných dat pro vaše zařízení rozbalte libovolnou zprávu telemetrie, najeďte myší na cestu a vyberte Přidat alias. Otevře se panel Dat mapy s výrazem JSONPath zkopírovaným do pole cesty JSON:
Na levé straně datového panelu Mapy se zobrazí nejnovější zpráva ze zařízení. Najeďte myší na libovolnou část dat a vyberte Přidat alias. Výraz JSONPath se zkopíruje do cesty JSON. Přidejte název aliasu, který nesmí být delší než 64 znaků. Alias nemůžete použít k odkazu na pole v komplexním objektu definovaném v šabloně zařízení.
Přidejte tolik mapování, kolik potřebujete, a pak vyberte Uložit:
Pro dané zařízení:
- Žádné dvě mapování nesmí mít stejnou cestu JSON.
- Žádné dvě mapování nesmí mít stejný alias.
Tip
Možná budete muset několik minut počkat, než zařízení odešle zprávu telemetrie, která se zobrazí na levém panelu. Pokud na levém panelu stále nejsou žádná data, můžete do pole cesty JSON ručně zadat výraz JSONPath.
Pokud chcete ověřit, že IoT Central mapuje telemetrii, přejděte do zobrazení nezpracovaných dat pro vaše zařízení a zkontrolujte _mappeddata
část:
Pokud po aktualizaci nezpracovaných dat několikrát nevidíte mapovaná data , zkontrolujte, jestli výraz JSONPath, který používáte, odpovídá struktuře zprávy telemetrie.
U zařízení IoT Edge se mapování dat vztahuje na telemetrii ze všech modulů a centra IoT Edge. Mapování nemůžete použít na konkrétní modul Azure IoT Edge.
U zařízení přiřazených k šabloně zařízení nemůžete mapovat data pro komponenty ani zděděná rozhraní. Před přiřazením k šabloně zařízení ale můžete namapovat všechna data ze zařízení.
Správa mapování
Pokud chcete zobrazit, upravit nebo odstranit mapování, přejděte na stránku Mapped aliases (Mapped aliases ). Vyberte mapování, které chcete upravit nebo odstranit. Můžete vybrat více mapování a odstranit je současně:
Ve výchozím nastavení zahrnují exporty dat z IoT Central mapovaná data. Pokud chcete mapovaná data vyloučit, použijte v exportu dat transformaci dat.
Mapování nemodelované telemetrie
Můžete mapovat nemodelovanou telemetrii, včetně telemetrie z nemodelovaných komponent. Například s ohledem na workingSet
telemetrii definovanou v kořenové komponentě a temperature
telemetrii definovanou v termostatické komponentě znázorněné v následujícím příkladu:
{
"_unmodeleddata": {
"workingSet": 74
},
"_eventtype": "Telemetry",
"_timestamp": "2022-07-18T09:22:40.257Z"
}
{
"_unmodeleddata": {
"thermostat2": {
"__t": "c",
"temperature": 44
}
},
"_eventtype": "Telemetry",
"_timestamp": "2022-07-18T09:21:48.69Z"
}
Tuto telemetrii můžete mapovat pomocí následujících definic mapování:
$["workingSet"] ws
$["temperature"] temp
Poznámka:
Do definice mapování nezahrnujte název komponenty.
Výsledky těchto pravidel mapování vypadají jako následující příklady:
{
"telemetries": {
"workingSet": 84,
"_mappeddata": {
"ws": 84
}
}
}
{
"_unmodeleddata": {
"thermostat2": {
"__t": "c",
"temperature": 12
},
"_mappeddata": {
"thermostat2": {
"__t": "c",
"temp": 12
}
}
},
"_eventtype": "Telemetry",
"_timestamp": "2022-07-18T09:31:21.088Z"
}
Teď můžete pomocí mapovaných aliasů zobrazit telemetrii na grafu nebo řídicím panelu. Při exportu telemetrie můžete také použít mapované aliasy.