Compartir vía


Asignación de telemetría en la entrada a IoT Central

La asignación de datos permite transformar datos complejos de telemetría de dispositivos en datos estructurados dentro de IoT Central. Para cada uno de los dispositivos, puede asignar una ruta de acceso JSON específica en el mensaje de telemetría del dispositivo a un alias. Un alias es un nombre descriptivo para el destino al que se va a asignar. IoT Central usa las asignaciones para transformar la telemetría en el camino a IoT Central. Puede usar la telemetría asignada para:

  • Cree plantillas de dispositivo y experiencias de administración de dispositivos en IoT Central.
  • Normalice la telemetría de distintos dispositivos mediante la asignación de rutas JSON en varios dispositivos a un alias común.
  • Exporte a destinos fuera de IoT Central.

Sugerencia

Si quiere generar automáticamente una plantilla de dispositivo a partir de datos de telemetría sin modelos, consulte Generar automáticamente una plantilla de dispositivo.

Diagrama que resume el proceso de asignación de IoT Central.

En el siguiente vídeo se ofrece un tutorial sobre el proceso de asignación de datos:

Asignación de telemetría para el dispositivo

Una asignación usa una expresión JSONPath para identificar el valor de un mensaje de telemetría entrante para asignarlo a un alias.

Una expresión JSONPath comienza con el carácter $, que hace referencia al elemento raíz del mensaje. $ va seguido de una secuencia de elementos secundarios separados por corchetes. Por ejemplo:

$["messages"]["tmp"]

$["opcua"]["payload"][0]["value"]

$["Messages"]["Payload"]["nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1"]["Value"]

IoT Central usa un subconjunto de la sintaxis de expresión JSONPath:

  • Cada segmento solo puede ser un número no negativo o una cadena entre comillas dobles.
  • Un segmento no puede contener barras diagonales inversas, corchetes ni comillas dobles.
  • Una ruta de acceso JSON no puede superar los 1000 caracteres.

Para crear una asignación en la aplicación de IoT Central, elija una de las siguientes opciones para ir al panel Asignar datos:

  • En cualquier página del dispositivo, seleccione Administrar dispositivo y Asignar datos

    Captura de pantalla que muestra el elemento de menú **Asignar datos**.

  • En la vista Datos sin procesar del dispositivo, expanda cualquier mensaje de telemetría, mantenga el puntero del mouse sobre una ruta de acceso y seleccione Agregar alias. El panel Asignar datos se abre con la expresión JSONPath copiada en el campo Ruta de acceso JSON:

    Captura de pantalla que muestra la opción **Agregar alias** en la vista **Datos sin procesar**.

En el lado izquierdo del panel Asignar datos se muestra el mensaje más reciente del dispositivo. Mantenga el puntero del mouse sobre cualquier parte de los datos y seleccione Agregar alias. La expresión JSONPath se copia en la ruta de acceso JSON. Agregue un nombre de alias que no tenga más de 64 caracteres. No puede usar el alias para hacer referencia a un campo de un objeto complejo definido en la plantilla de dispositivo.

Agregue tantas asignaciones como necesite y, después, seleccione Guardar.

Captura de pantalla de la vista **Asignar datos** que muestra la ruta de acceso JSON y el alias.

Para un dispositivo determinado:

  • No puede haber dos asignaciones con la misma ruta de acceso JSON.
  • No puede haber dos asignaciones con el mismo alias.

Sugerencia

Es posible que tenga que esperar varios minutos para que el dispositivo envíe un mensaje de telemetría para mostrarlo en el panel izquierdo. Si todavía no hay datos en el panel izquierdo, puede escribir manualmente una expresión JSONPath en el campo Ruta de acceso JSON.

Para comprobar que IoT Central está asignando la telemetría, vaya a la vista Datos sin procesar del dispositivo y compruebe la sección _mappeddata:

Captura de pantalla que muestra la sección de datos asignados en un mensaje de la vista **Datos sin procesar**.

Si no ve los datos asignados después de actualizar los datos sin procesar varias veces, compruebe que la expresión JSONPath que usa coincida con la estructura del mensaje de telemetría.

En los dispositivos IoT Edge, la asignación de datos se aplica a la telemetría de todos los módulos de IoT Edge y al centro. No se pueden aplicar asignaciones a un módulo específico de Azure IoT Edge.

En el caso de los dispositivos asignados a una plantilla de dispositivo, no se pueden asignar datos para componentes o interfaces heredadas. Sin embargo, puede asignar los datos del dispositivo antes de asignarlos a una plantilla de dispositivo.

Administración de asignaciones

Para ver, editar o eliminar asignaciones, vaya a la página Alias asignados. Seleccione una asignación para editarla o eliminarla. Puede seleccionar varias asignaciones y eliminarlas al mismo tiempo:

Captura de pantalla que muestra la vista de **Alias asignados** con los botones de edición y eliminación.

De forma predeterminada, las exportaciones de datos de IoT Central incluyen datos asignados. Para excluir los datos asignados, use una transformación de datos en la exportación de datos.

Asignación de telemetría sin modelos

Puede asignar telemetría sin modelos, incluida la telemetría de componentes no modelados. Por ejemplo, dada la telemetría workingSet definida en el componente raíz y la telemetría temperature definida en un componente termostato que se muestra en el ejemplo siguiente:

{
  "_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"
}

Puede asignar esta telemetría mediante las siguientes definiciones de asignación:

  • $["workingSet"] ws
  • $["temperature"] temp

Nota:

No incluya el nombre del componente en la definición de asignación.

Los resultados de estas reglas de asignación son similares a los ejemplos siguientes:

{
  "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"
}

Ahora puede usar los alias asignados para mostrar la telemetría en un gráfico o panel. También puede usar los alias asignados al exportar la telemetría.