Сопоставление данных телеметрии при входе в IoT Central
Сопоставление данных позволяет преобразовать сложные данные телеметрии устройства в структурированные данные в IoT Central. Для каждого устройства можно сопоставить определенный путь JSON в сообщении телеметрии устройства с псевдонимом. Псевдоним — это понятное имя целевого объекта, с который вы сопоставляете. IoT Central использует сопоставления для преобразования телеметрии на пути к IoT Central. Вы можете использовать сопоставленную телеметрию для следующих способов:
- Создание шаблонов устройств и возможностей управления устройствами в IoT Central.
- Нормализация телеметрии с разных устройств путем сопоставления путей JSON на нескольких устройствах с общим псевдонимом.
- Экспорт в места назначения за пределами IoT Central.
Совет
Если вы хотите автоматически создать шаблон устройства из немоделированного телеметрии, см. статью "Автоматическое создание шаблона устройства".
В следующем видео показано, как выполнить сопоставление данных.
Сопоставление данных телеметрии для устройства
Сопоставление использует выражение JSONPath для идентификации значения во входящем сообщении телеметрии для сопоставления с псевдонимом.
Выражение JSONPath начинается с символа $
, который ссылается на корневой элемент сообщения. За $
ним следует последовательность дочерних элементов, разделенных квадратными скобками. Например:
$["messages"]["tmp"]
$["opcua"]["payload"][0]["value"]
$["Messages"]["Payload"]["nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1"]["Value"]
IoT Central использует подмножество синтаксиса выражения JSONPath:
- Каждый сегмент может быть только не отрицательное число или строка, заключенная в двойные кавычки.
- Сегмент не может содержать обратную косую черту, квадратную скобку или двойные кавычки.
- Путь JSON не может превышать 1000 символов.
Чтобы создать сопоставление в приложении IoT Central, выберите один из следующих вариантов, чтобы перейти на панель данных Map:
На любой странице устройства выберите "Управление данными карты устройств>":
В представлении необработанных данных для устройства разверните любое сообщение телеметрии, наведите указатель мыши на путь и выберите "Добавить псевдоним". Откроется панель данных карты с выражением JSONPath, скопированным в поле пути JSON:
В левой части панели данных карты отображается последнее сообщение с устройства. Наведите указатель мыши на любую часть данных и выберите "Добавить псевдоним". Выражение JSONPath копируется в путь JSON. Добавьте имя псевдонима не более 64 символов. Псевдоним нельзя использовать для ссылки на поле в сложном объекте, определенном в шаблоне устройства.
Добавьте столько сопоставлений, сколько вам нужно, а затем нажмите кнопку "Сохранить".
Для данного устройства:
- Два сопоставления не могут иметь одинаковый путь JSON.
- Два сопоставления не могут иметь одинаковый псевдоним.
Совет
Может потребоваться подождать несколько минут, чтобы устройство отправляло сообщение телеметрии, отображаемое на левой панели. Если данных на левой панели еще нет, можно вручную ввести выражение JSONPath в поле пути JSON.
Чтобы убедиться, что IoT Central сопоставляет данные телеметрии, перейдите в представление необработанных данных для устройства и проверьте _mappeddata
раздел:
Если вы не видите сопоставленные данные после обновления необработанных данных несколько раз, убедитесь, что выражение JSONPath, которое вы используете, соответствует структуре сообщения телеметрии.
Для устройств IoT Edge сопоставление данных применяется к телеметрии всех модулей и концентраторов IoT Edge. Нельзя применять сопоставления к определенному модулю Azure IoT Edge.
Для устройств, назначенных шаблону устройства, невозможно сопоставить данные для компонентов или унаследованных интерфейсов. Однако вы можете сопоставить любые данные с устройства, прежде чем назначить его шаблону устройства.
Управление сопоставлениями
Чтобы просмотреть, изменить или удалить сопоставления, перейдите на страницу сопоставленных псевдонимов . Выберите сопоставление, чтобы изменить или удалить его. Вы можете выбрать несколько сопоставлений и удалить их одновременно:
По умолчанию экспорт данных из IoT Central включает сопоставленные данные. Чтобы исключить сопоставленные данные, используйте преобразование данных в экспорте данных.
Сопоставление немоделированных данных телеметрии
Вы можете сопоставить немоделированные данные телеметрии, включая данные телеметрии из немоделированных компонентов. Например, учитывая workingSet
телеметрию, определенную в корневом компоненте, и temperature
телеметрию, определенную в компоненте термостата, показанном в следующем примере:
{
"_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"
}
Эту телеметрию можно сопоставить с помощью следующих определений сопоставления:
$["workingSet"] ws
$["temperature"] temp
Примечание.
Не включайте имя компонента в определение сопоставления.
Результаты этих правил сопоставления выглядят следующим образом:
{
"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"
}
Теперь можно использовать сопоставленные псевдонимы для отображения телеметрии на диаграмме или панели мониторинга. При экспорте телеметрии можно также использовать сопоставленные псевдонимы.