Mappa telemetri vid ingress till IoT Central
Med datamappning kan du omvandla komplex enhetstelemetri till strukturerade data i IoT Central. För var och en av dina enheter kan du mappa en specifik JSON-sökväg i enhetens telemetrimeddelande till ett alias. Ett alias är ett eget namn för det mål som du mappar till. IoT Central använder mappningarna för att transformera telemetri på vägen in till IoT Central. Du kan använda den mappade telemetrin för att:
- Skapa enhetsmallar och enhetshanteringsupplevelser i IoT Central.
- Normalisera telemetri från olika enheter genom att mappa JSON-sökvägar på flera enheter till ett gemensamt alias.
- Exportera till mål utanför IoT Central.
Dricks
Om du vill generera en enhetsmall automatiskt från omodern telemetri kan du läsa Autogenerera en enhetsmall.
Följande video vägleder dig genom datamappningsprocessen:
Mappa telemetri för din enhet
En mappning använder ett JSONPath-uttryck för att identifiera värdet i ett inkommande telemetrimeddelande för att mappa till ett alias.
Ett JSONPath-uttryck börjar med $
tecknet, som refererar till rotelementet i meddelandet. $
Följs av en sekvens med underordnade element avgränsade med hakparenteser. Till exempel:
$["messages"]["tmp"]
$["opcua"]["payload"][0]["value"]
$["Messages"]["Payload"]["nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1"]["Value"]
IoT Central använder en delmängd av JSONPath-uttryckssyntaxen:
- Varje segment kan bara vara ett icke-negativt tal eller en sträng som omges av dubbla citattecken.
- Ett segment får inte innehålla omvänt snedstreck, hakparentes eller dubbla citattecken.
- En JSON-sökväg får inte överstiga 1 000 tecken.
Om du vill skapa en mappning i ditt IoT Central-program väljer du något av följande alternativ för att navigera till panelen Mappa data :
På valfri enhetssida väljer du Hantera enhetsmappningsdata>:
I vyn Rådata för enheten expanderar du alla telemetrimeddelanden, hovra muspekaren över en sökväg och välj Lägg till alias. Panelen Mappa data öppnas med JSONPath-uttrycket kopierat till fältet JSON-sökväg :
Till vänster på panelen Kartdata visas det senaste meddelandet från enheten. Hovra till muspekaren över valfri del av data och välj Lägg till alias. JSONPath-uttrycket kopieras till JSON-sökvägen. Lägg till ett aliasnamn med högst 64 tecken. Du kan inte använda aliaset för att referera till ett fält i ett komplext objekt som definierats i enhetsmallen.
Lägg till så många mappningar du behöver och välj sedan Spara:
För en viss enhet:
- Inga två mappningar kan ha samma JSON-sökväg.
- Inga två mappningar kan ha samma alias.
Dricks
Du kan behöva vänta i flera minuter på att enheten ska skicka ett telemetrimeddelande som ska visas i den vänstra panelen. Om det fortfarande inte finns några data i den vänstra panelen kan du manuellt ange ett JSONPath-uttryck i fältet JSON-sökväg .
Om du vill kontrollera att IoT Central mappar telemetrin går du till vyn Rådata för enheten och kontrollerar avsnittet _mappeddata
:
Om du inte ser dina mappade data efter att du har uppdaterat rådata flera gånger kontrollerar du att JSONPath-uttrycket som du använder matchar strukturen för telemetrimeddelandet.
För IoT Edge-enheter gäller datamappningen för telemetrin från alla IoT Edge-moduler och hubbar. Du kan inte använda mappningar för en specifik Azure IoT Edge-modul.
För enheter som har tilldelats en enhetsmall kan du inte mappa data för komponenter eller ärvda gränssnitt. Du kan dock mappa data från enheten innan du tilldelar dem till en enhetsmall.
Hantera mappningar
Om du vill visa, redigera eller ta bort mappningar går du till sidan Mappade alias . Välj en mappning för att redigera eller ta bort den. Du kan välja flera mappningar och ta bort dem samtidigt:
Som standard innehåller dataexporter från IoT Central mappade data. Om du vill undanta mappade data använder du en datatransformering i din dataexport.
Mappa omodern telemetri
Du kan mappa omodern telemetri, inklusive telemetri från odefinierade komponenter. Till exempel med tanke på telemetrin workingSet
som definierats i rotkomponenten och telemetrin temperature
som definierats i en termostatkomponent som visas i följande exempel:
{
"_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"
}
Du kan mappa den här telemetrin med hjälp av följande mappningsdefinitioner:
$["workingSet"] ws
$["temperature"] temp
Kommentar
Inkludera inte komponentnamnet i mappningsdefinitionen.
Resultatet av dessa mappningsregler ser ut som följande exempel:
{
"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"
}
Nu kan du använda de mappade aliasen för att visa telemetri på ett diagram eller en instrumentpanel. Du kan också använda de mappade aliasen när du exporterar telemetri.