Protocolos y datos

Datos IoT: marcas temporales, calidad y huecos

Define el dato de sensor IoT: identidad, unidades, hora de origen, calidad, límite de obsolescencia, desbordamiento, cortes y pruebas de puesta en servicio.

Una Gateway pierde el enlace ascendente a las 09:00 y lo recupera a las 12:00. Entonces reenvía las tres horas de lecturas que había guardado. Si la plataforma receptora conserva la marca temporal original de cada lectura, la gráfica rellena el hueco. Si asigna la hora de llegada, tres horas de energía caen en un solo intervalo de 15 minutos. Con una carga media de 40 kW, son 120 kWh en 15 minutos y el informe de demanda muestra un pico ficticio de 480 kW.

Todos los valores del ejemplo eran reales. Solo era incorrecta la hora, y el panel en directo no lo mostraba.

Cada observación debe responder cuatro preguntas: ¿qué propiedad se observó y dónde? ¿Cuándo se produjo esa condición? ¿Es válido y suficientemente reciente el valor para este uso? ¿Qué cadena de medida y procesamiento lo generó? La facturación, protección, funciones de seguridad e informes reglamentarios añaden sus propios requisitos de equipos, aprobación, incertidumbre y auditoría a lo que sigue.

Modelos de observación SSN y SensorThings

La ontología Semantic Sensor Network del W3C (SOSA/SSN) define una observación como el acto de observar, normalmente para estimar o determinar el valor de una propiedad de una entidad de interés. Trata por separado la propiedad, el resultado, el sensor, el procedimiento, el momento del fenómeno y el momento del resultado. También indica que estos dos momentos no tienen por qué coincidir.

La API SensorThings del OGC usa un modelo parecido para servicios web de sensores. Cada Observation pertenece a un Datastream y contiene resultado, momento del fenómeno, momento del resultado, calidad, periodo de validez y parámetros.

No es necesario adoptar ninguno de los dos modelos. Conserve el significado, momento de observación, calidad y procedencia en campos distintos, cualquiera que sea el esquema.

Registro mínimo de una observación

Campo o relaciónPregunta que respondeFallo si falta
Identidad de instalación, activo y punto¿Qué equipo y canal físicos lo produjeron?Se mezclan o comparan erróneamente valores de fuentes distintas
Propiedad observada¿Potencia activa, energía acumulada, temperatura o estado?Una cifra carece de significado técnico estable
Valor y unidad¿Qué magnitud y unidad se comunicaron?Se confunden W, kW y MW, o °C y °F, sin advertencia
Momento del fenómeno o del origen¿Cuándo se produjo la condición medida?Los datos antiguos almacenados parecen actuales
Momento del resultado o de ingesta¿Cuándo se produjo o recibió aquí el resultado?No se pueden diagnosticar el retraso y el reenvío
Calidad o estado¿El valor es bueno, incierto, incorrecto, obsoleto, sustituido o inexistente?Datos inválidos parecen fiables
Identidad del procedimiento y configuración¿Qué rango, escalado, firmware, calibración y cálculo se aplicaron?Un cambio de configuración parece un cambio físico
Secuencia o identidad estable de evento¿Se ha procesado ya esta observación?Los reintentos crean registros duplicados o doble recuento de energía

Este es un registro del acumulado de energía de un cuadro trifásico que informa en límites horarios de 15 minutos. Corresponde a la lectura de las 09:45 del corte anterior, entregada tras recuperarse el enlace:

JSON
{
  "site": "plant-02",
  "asset": "db-3-compressor-house",
  "point": "db-3/energy-active-total",
  "property": "active energy, cumulative register",
  "value": 184213.4,
  "unit": "kWh",
  "observed_at": "2026-09-14T09:45:00Z",
  "received_at": "2026-09-14T12:02:41Z",
  "quality": "good",
  "config_revision": "point-list r7",
  "sequence": 88412
}

Las dos horas difieren en 2 horas y 17 minutos. La diferencia revela al consumidor que la lectura estuvo retenida durante una interrupción y no representa la carga actual. El número de secuencia le permite descartar una segunda copia.

No todas las fuentes pueden rellenar cada campo. Documente cuáles no puede proporcionar cada una y no invente precisión. Por ejemplo, un sensor Zigbee de terceros informa de un valor sin marca temporal; la Gateway le asigna la hora de llegada. Etiquete esa hora como tal en la lista de puntos.

Diseñar el punto

Defina primero la medida

Empiece por el mensurando: la magnitud que pretende medir. «Temperatura» es insuficiente si la decisión depende de la temperatura del aire en un lugar concreto, la superficie de una tubería, un líquido o una media de varias salas.

Anote el rango, incertidumbre requerida en todo él, tiempo de respuesta y condiciones de instalación. Anote la decisión, alarma o cálculo que utiliza el valor. Después, qué ocurre si este es erróneo, falta o llega tarde. La última respuesta determinará el límite de obsolescencia y el comportamiento de la alarma.

La precisión nominal de un componente no define el rendimiento de toda la cadena instalada. La política de trazabilidad metrológica de NIST trata la trazabilidad como una propiedad del resultado de medida. Una cadena documentada de calibraciones la respalda y cada calibración contribuye a la incertidumbre. Un instrumento calibrado no vuelve automáticamente trazables todos los resultados posteriores. Para electricidad, la guía de contadores de alta precisión distingue la clase del contador, la incertidumbre de la cadena completa y la aprobación legal. Para una RTD, la calculadora Pt100 y Pt1000 muestra la curva normalizada y el límite de tolerancia de cada clase. Añada los efectos del transmisor, cableado y montaje.

Conserve la trazabilidad del escalado y las conversiones

Un registro bruto o entrada analógica puede necesitar decodificación con signo, orden de palabras, relación de TC o TT, escalado lineal o curva no lineal antes de convertirse en un valor técnico. Guarde los parámetros o la revisión de configuración que se aplicó. Un orden de palabras erróneo puede producir un número plausible: decodifique a mano un valor bruto. La guía de puesta en servicio Modbus incluye un ejemplo.

Para un punto calculado, conserve también la identidad de las entradas, fórmula y revisión, y unidades antes y después de la conversión. Registre cómo se alinean las horas y qué hace la fórmula con una entrada incorrecta, ausente u obsoleta. Marque cualquier sustitución, limitación o intervención manual en el resultado.

No sustituya un valor incorrecto por cero. Cero es una lectura válida para un motor parado o depósito vacío; lleva a una decisión operativa distinta de «desconocido».

Separe la hora de observación de la de llegada

Una lectura lleva la hora a la que se produjo la condición y la hora a la que la recibió cada sistema. Se separan cuando los datos se almacenan y reenvían. Marcas temporales de telemetría, hora de origen y de llegada explica qué hora conservar, UTC y horario de verano, y cómo probar el reenvío en la instalación.

Las garantías de transporte terminan en cada tramo

MQTT 5.0 define tres niveles de calidad de servicio entre un emisor y un receptor: como máximo una vez, al menos una vez y exactamente una vez. También admite caducidad de mensajes y estado de sesión. La guía MQTT sobre TLS trata identidad del bróker, autenticación de clientes y acceso a temas.

Nada de ello demuestra que la lectura física sea correcta ni que cada muestra se haya convertido en mensaje. Tampoco demuestra que la carga útil tenga punto, unidad y marca temporal correctos, que el siguiente tramo de integración conserve las mismas garantías o que el consumidor guarde el mensaje una sola vez. Un mensaje retenido es el último publicado en su tema y puede tener horas o días.

Dé a cada observación una identidad estable. Para un punto de contador, suelen bastar la identidad del punto y la hora de observación. Haga idempotentes las escrituras para que un lote reintentado no se cuente dos veces. Pruebe el corte y reenvío en la instalación. No deduzca el comportamiento solo por el nombre de un protocolo.

Haga visibles la calidad y la vigencia

El consumidor debe distinguir un valor actual de uno tardío, obsoleto, sustituido o ausente. Mapee deliberadamente los estados de calidad de cada fuente a los suyos. Telemetría obsoleta, ausente e inválida describe esos estados, cómo elegir el límite de obsolescencia y cómo mostrarlo junto al valor.

Agregue a partir de pruebas brutas

Cada magnitud necesita su propia función de agregación. La potencia media durante un intervalo, demanda máxima, último estado conocido, número de alarmas y diferencia de un acumulado son cosas distintas. Registre límites del intervalo y zona horaria. Indique si cada intervalo se etiqueta por su inicio o final, regla mínima de integridad y cómo revisan los datos tardíos un intervalo ya cerrado. Marque cada resultado como medido, agregado, estimado o sustituido.

Nunca calcule la media de un acumulado de energía. Reste las lecturas en los límites del intervalo. Tampoco sume lecturas de potencia instantánea sin multiplicar cada una por el tiempo que representa.

Tanto el desbordamiento como el reinicio de un contador producen una diferencia negativa, pero requieren tratamientos distintos. Considere un acumulado de Wh de 32 bits que vuelve a cero tras 4.294.967.295. Con una media de 40 kW tarda unos 12 años en llegar; pocos sistemas prueban ese caso antes de que ocurra.

A las 23:45 el registro marca 4.294.960.296 Wh. A las 00:00 marca 3.000 Wh. Si hubo desbordamiento, la energía del intervalo es (4.294.967.296 − 4.294.960.296) + 3.000 = 10.000 Wh. Son 10 kWh en 15 minutos y una demanda media de 40 kW:

Ahora se sustituye el contador. Su última lectura era 1.250.400 Wh y la primera del nuevo, 3 Wh. La misma fórmula de desbordamiento da 4.293.716.899 Wh, unos 4,3 GWh en 15 minutos.

Acepte un desbordamiento solo si la energía implícita es físicamente posible en el intervalo. Una alimentación de 100 kW puede entregar como máximo 25 kWh en 15 minutos. Un resultado mayor indica un reinicio: cierre ese intervalo como incompleto, empiece una nueva referencia y registre el evento. En un monitor eléctrico ZEM-6x como ZEM-65, Edge muestra el punto de desbordamiento del registro, en kWh, como ajuste de solo lectura. Los registros de kWh por fase son escribibles, de modo que un técnico puede preestablecerlos. Registre cada preajuste como reinicio.

Conserve el acumulado junto a los valores por intervalo. Tras un hueco de telemetría, su diferencia recupera la energía total del periodo, pero no el perfil de potencia dentro del hueco.

Muestreo, informes y actualización del panel

«Datos cada minuto» puede significar cinco cosas: que el sensor toma una muestra cada minuto; que el contador toma muestras rápidas y calcula una media de un minuto; que el dispositivo publica su último valor una vez al minuto; que la plataforma almacena una agregación de un minuto; o que el panel se actualiza cada minuto aunque el punto cambie a otra frecuencia. Especifique cada frecuencia relevante en la lista de puntos.

Los sensores Zigbee de EpiSensor muestran esta diferencia: pueden informar en límites de minutos del reloj, a una frecuencia fija en segundos o ante cambios.

La frecuencia tiene un coste. Un punto que informa cada 10 s produce 8.640 mensajes al día; cada 60 s, 1.440. Mil puntos que informan una vez por minuto producen 1,44 millones de puntos diarios antes de filtrar. En sensores de batería, cada informe también consume tiempo de radio y batería. Compruebe a qué intervalo de informe corresponde la duración de batería de la ficha técnica.

UsoIntervalo habitualPruebas que conservar
Reparto energético y facturaciónPeriodo de liquidación o tarifa, normalmente 15 o 30 min, además del acumuladoLímites, integridad, reinicios del registro y estimaciones
Tendencia operativa1 min para potencia; de 5 a 15 min para temperatura ambienteFrecuencia de origen, agregación y visualización
AlarmaRetraso de detección más límite de obsolescencia dentro del tiempo de respuesta permitidoUmbral, persistencia, banda muerta, límite de obsolescencia y retraso de aviso
Gestión de demandaBastante menor que la ventana de demanda, por ejemplo 1 min en una ventana de 15 o 30 min, para poder actuarDefinición de ventana, frecuencia de actualización, lógica de umbral y pruebas de órdenes
Monitorización de estadoTendencias de corriente o temperatura cada minuto para degradación lenta. Los espectros de vibración necesitan muestreo de kHz con instrumento dedicadoAncho de banda del sensor, método de muestreo, cálculo de características y referencia
Calidad de suministro, protección o seguridadInstrumentos y métodos cualificados para esa función, como IEC 61000-4-30 para calidad eléctricaNorma aplicable, configuración del instrumento, momento del evento y pruebas de aceptación

Para conocer qué pueden revelar corriente y potencia sobre el estado de los equipos, consulte monitorización de estado con datos eléctricos.

Pruebas de puesta en servicio que revelan datos incorrectos

Ejecute cada prueba en la ruta completa, del sensor a la plataforma receptora. Anote el resultado esperado antes de hacerla.

  1. Vincule cada punto mostrado con el dispositivo físico, canal y etiqueta del activo.
  2. Aplique al menos dos valores conocidos, uno distinto de cero, y compruebe todas las conversiones. En un canal con TC, compare la corriente en Edge y en la plataforma con una pinza amperimétrica calibrada sobre el mismo conductor.
  3. Compruebe polaridad, convención de signo para importación y exportación, y asociación de fases. Un TC invertido da potencia de importación negativa en esa fase. Corríjalo en el TC o con el ajuste de dirección por fase del contador y anote qué cambió.
  4. Compare los relojes de origen y recepción. Después retenga datos durante un periodo conocido y compruebe que las dos marcas temporales siguen diferenciadas.
  5. Desconecte o invalide la fuente. La aplicación debe mostrar «incorrecto» o «no disponible», no cero.
  6. Detenga las actualizaciones sin borrar el último valor. El punto debe pasar a obsoleto al llegar al límite acordado.
  7. Corte la conexión de salida durante un periodo fijo, por ejemplo 30 minutos. Observe el crecimiento de la cola. Reconecte y compruebe el orden, marcas temporales e integridad del reenvío en el receptor.
  8. Reproduzca un registro o reintente una entrega. Un consumidor idempotente no debe contarlo dos veces.
  9. Reinicie cada capa por turno: sensor, Gateway, bróker y plataforma. Compruebe que se recuperan identidad, configuración, reloj y entrega.
  10. Compare un intervalo cerrado con las lecturas de origen, incluyendo un límite de intervalo, valor ausente y reinicio del contador.
  11. Cambie una revisión de rango o fórmula aprobada. El cambio debe aparecer en la trazabilidad y no alterar el significado de los datos anteriores.
  12. Compare las medidas importantes con una referencia independiente bajo carga representativa.

El acta de aceptación identifica el equipo, configuración, referencia, hora de prueba, resultado esperado y observado, y la persona que lo aprobó.

Fallos observados en instalaciones

SíntomaCausa probableCómo detectarlo
Potencia de importación negativa en una faseTC invertido o instalado en otra faseSigno de la potencia de cada fase frente a una carga conocida y factor de potencia muy distinto del esperado
Valores 1.000 veces mayores o menoresW comunicados como kW o falta un factor de escalaComparación con pantalla del contador o pinza amperimétrica durante la puesta en servicio
Valores enormes o casi nulos tras cambiar el mapa de registrosOrden de palabras o tipo de datos erróneoDecodificar a mano un registro bruto
Falta una hora en marzo y se duplica en octubreIntervalos identificados por hora localContar los periodos por día local: 92, 96 o 100
Un hueco seguido de muchas lecturas con la misma horaDatos reenviados fechados al llegarHora de recepción menos hora de observación para cada lectura
Lecturas con fechas de años pasados o futurosReloj del dispositivo o Gateway sin ajustar tras un corteHora de observación fuera de una ventana plausible respecto a la de recepción
Línea plana en el último valorLa fuente se detuvo y la pantalla retiene el valorEstado de obsolescencia y antigüedad de la última observación
Salto de energía de varios GWh en un intervaloReinicio de contador interpretado como desbordamientoLímite de energía máxima posible en el intervalo

Supervisar la calidad de datos durante la operación

La puesta en servicio demuestra un estado en un día. Durante la operación hay que detectar cuándo cambia. Para cada punto, compare observaciones esperadas y recibidas y vigile la antigüedad de la última válida. Cuente lecturas tardías, fuera de orden, duplicadas, incorrectas, inciertas, sustituidas y fuera de rango. Vigile el desfase del reloj, profundidad de la cola y antigüedad del elemento más antiguo. Registre cambios rechazados de esquema, unidad o identidad, y concilie los totales de intervalos con el acumulado.

Active alertas con umbrales adecuados al uso: por ejemplo, observación más antigua que el límite de obsolescencia, elemento más antiguo de la cola con más de una hora o desfase del reloj superior a 5 s para datos de un minuto.

Defina el denominador antes de citar disponibilidad. «99,9 % de disponibilidad de datos» carece de significado sin fijar puntos esperados, calendario de informes, exclusiones, regla de calidad y tratamiento de datos tardíos. Para un punto que informa cada minuto, un 99,9 % durante 30 días aún permite 43 lecturas ausentes.

ISO/IEC 25012 ofrece un modelo general de calidad de datos estructurados. Define 15 características, repartidas entre una perspectiva intrínseca y otra dependiente del sistema; ISO la revisó y confirmó por última vez en 2025. Aporta el vocabulario, pero el proyecto todavía debe convertir las características pertinentes en requisitos medibles.

Datos de sensores con EpiSensor

Los dispositivos EpiSensor, como los monitores eléctricos ZEM y sensores de temperatura y humedad ZHT, informan por Zigbee a una Gateway ZGW-20. La Gateway ejecuta EpiSensor Edge, que conserva historial local (30 días por defecto), ejecuta cálculos y reglas, y reenvía datos a otras plataformas.

Las lecturas de dispositivos Zigbee EpiSensor llegan a Edge con una marca temporal por punto de datos, que Edge conserva. En cambio, a los valores de dispositivos Zigbee de terceros Edge les asigna la hora de llegada del reloj de la Gateway. Edge descarta un punto cuya marca temporal es inválida y registra una advertencia.

Edge calcula la calidad de cada sensor en ventanas de 15 minutos. Para un sensor con horario fijo, la calidad es el porcentaje de puntos esperados. Uno que informa cada minuto espera 15 puntos; si llegan 13, la calidad es del 87 %. Para sensores que informan al cambiar, o menos de una vez cada 15 minutos, Edge comunica el número de puntos recibidos. Compruebe el tipo de calidad antes de comparar dos sensores.

Si falla un destino admitido, Edge traslada a una cola en disco los datos no entregados. Algunas integraciones gestionan su propia política de reintentos, así que consulte su guía. Edge comprueba el destino cada minuto y reproduce la cola cuando vuelve. Las lecturas conservan sus marcas temporales originales y no vuelven a ejecutar cálculos ni automatizaciones locales. Para MQTT, Edge da por completada la entrega cuando el bróker confirma la publicación. Un lote puede llegar dos veces si el destino lo recibió antes de que Edge registrase la finalización: el receptor debe descartar duplicados. Los datos pendientes no tienen límite de antigüedad, por lo que una interrupción larga hace crecer la cola. Dimensione el espacio libre de la Gateway para el corte máximo previsto.

Dentro de Edge, cada lectura lleva ID de sensor, ID de exportación formado por el número de serie del dispositivo y el ID de sensor, marca temporal y valor. La unidad, escalado y calidad proceden de la configuración del dispositivo. Acuerde en la lista de puntos cómo los obtiene la plataforma receptora. Defina también qué capa aplica el escalado, cómo se traduce la calidad de Edge al modelo de la plataforma y qué hacen alarmas y control cuando una entrada queda obsoleta.

Una vez fijada la lista de puntos, siga con la arquitectura de almacenamiento de datos IoT para elegir dónde se ubica cada almacén.

Preguntas frecuentes

¿Qué debe contener un registro de datos de sensor IoT?

Necesita identidad de instalación, activo y punto, propiedad observada, valor y unidad, hora a la que se produjo la condición, hora de recepción y estado de calidad. La facturación, el reparto por subcontadores y la liquidación de respuesta a la demanda también necesitan la revisión de escalado, calibración y cálculo que generó el valor.

¿En qué se diferencian la marca temporal de origen y la de ingesta?

La de origen indica cuándo se produjo la condición medida. La de ingesta indica cuándo recibió o guardó el registro otro sistema. Se separan durante almacenamiento, reintentos y errores de reloj. Sustituir la hora de origen por la de ingesta hace que datos antiguos parezcan actuales.

¿QoS de MQTT garantiza datos de sensores completos?

No. QoS de MQTT cubre la entrega entre un emisor y un receptor. No demuestra que el sensor midiera correctamente ni que cada muestra se convirtiera en mensaje. Tampoco que la siguiente aplicación lo guardase una sola vez o que la carga útil tenga unidad y marca temporal correctas.

¿Cómo se elige el intervalo de informes IoT?

Parta del cambio más rápido que la aplicación debe detectar y del periodo de liquidación o cálculo. Compruebe después el retraso de detección permitido, capacidad de dispositivos y red, y almacenamiento. Muestreo, cálculo, publicación y actualización del panel son frecuencias distintas; defina cada una deliberadamente.

¿Cero equivale a un dato ausente u obsoleto?

No. Cero puede ser una medida válida. Ausente significa que no llegó ningún valor en un intervalo esperado. Obsoleto significa que el último valor supera el límite de vigencia para ese uso. Guarde y muestre los tres estados por separado.