POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

Tutorial: Parsear datos MQTT de Eelink con Node.js

De uplinks crudos a JSON analizable: normalización de payloads MQTT con Node.js

Publicado el 09/09/2025

Introducción para ingenieros IoT, ingenieros de datos y cualquier persona que quiera transformar uplinks crudos de dispositivos en JSON listo para analítica. En este tutorial aprenderá a crear un script en Node.js que se suscribe a mensajes MQTT, detecta automáticamente codificaciones comunes de payload como JSON, Base64 y un ejemplo de Hex TLV, y las normaliza en un único esquema para almacenamiento, alertas o streaming. Este contenido ha sido preparado por Q2BSTUDIO, empresa de desarrollo de software y aplicaciones a medida, especialistas en inteligencia artificial, ciberseguridad y servicios cloud aws y azure.

Requisitos y configuración previa: Node.js 18 instalado. Un broker MQTT accesible localmente o en la nube. Instalar dependencias con los comandos npm init -y y npm install mqtt dotenv yargs. Crear un archivo .env con variables como MQTT_URL=mqtts://broker.example.com:8883 MQTT_USERNAME=tu-usuario MQTT_PASSWORD=tu-password MQTT_TOPIC=devices/+/up El topic devices/+/up suscribe a todos los dispositivos usando el comodín de un nivel. Ajuste según su esquema de topics.

Ejemplos de topics y payloads: Ejemplo de payload JSON típico con campos deviceId ELK-123456 ts 2025-09-08T06:01:22Z gnss con lat 22.543096 lon 114.057865 speedKph 48.3 heading 180 batteryPct 87 status con valores IGN_ON y MOVING. Ejemplo de payload Hex TLV de demostración donde cada campo sigue Tag 1 byte Len 1 byte Value N bytes con contenidos como 01 07 454C4B2D313233343536 para deviceId ASCII ELK-123456, 02 04 66A29C16 para timestamp epoch uint32 big endian, 03 04 0135E0F0 para lat en i32 dividido entre 1e6, 04 04 044DA4A1 para lon i32 /1e6, 05 02 01E5 para velocidad en 0.1 kph y 06 01 57 para nivel de batería en porcentaje. Reemplace el ejemplo TLV por la especificación oficial de su dispositivo en producción.

Estrategia de parseo y normalización: El script detecta el formato entrante y convierte a un esquema consistente. Detecciones principales: JSON cuando el payload comienza con llave izquierda o corchete izquierdo. Base64 cuando una cadena decodificada desde base64 produce JSON válido o un TLV válido. Hex TLV cuando la carga es una cadena hex pura de longitud par y los tags coinciden con su mapeo. Si no se detecta ninguno de estos formatos se guarda el contenido en un campo _raw para auditoría. El objeto normalizado incluye campos como sourceTopic rawFormat deviceId ts lat lon speedKph heading batteryPct statusFlags con subcampos ignOn moving tamper y opcionalmente _raw.

Resumen del script: el script en Node.js usa los paquetes mqtt dotenv y yargs. Se conecta al broker, se suscribe al topic configurado y para cada mensaje aplica la lógica de detección y decodificación. Las entradas se validan y se limpian antes de serializarse como una línea JSON por mensaje. Opcionalmente se guardan en un fichero NDJSON para ingestión por pipelines. Recomendaciones de implementación: no use validación de certificados deshabilitada en producción. Para alto rendimiento, evite escrituras síncronas en el handler de mensajes y prefiera colas o batch writes. Para evitar duplicados en una base de datos deduplique por deviceId y ts.

Comandos de ejemplo para ejecutar: node parse-eelink-mqtt.js --save out.ndjson o pasando opciones completas por línea de comandos como node parse-eelink-mqtt.js --broker mqtts://broker.example.com:8883 --username alice --password secret --topic devices/+/up --save out.ndjson --insecure Use la opción insecure solo en pruebas.

Salida de ejemplo y uso: por cada mensaje el script emite una línea JSON normalizada que puede consumirse directamente por motores de analítica, brokers o bases de datos. Un registro típico contiene sourceTopic devices/ELK-123456/up rawFormat json deviceId ELK-123456 ts en formato ISO lat lon speedKph heading batteryPct y statusFlags con ignOn y moving cuando proceda. Para payloads TLV el rawFormat será hex|tlv y los campos numéricos se convertirán a unidades legibles como kph o grados.

Limitaciones y siguientes pasos: reemplace el decodificador TLV de ejemplo con la especificación oficial de sus dispositivos. Aumente el rendimiento usando colas, batch writes y mecanismos asíncronos. Implemente métricas y trazas para detectar errores de decodificación. Considere integrar las salidas normalizadas con soluciones de inteligencia de negocio y dashboards como Power BI para visualizar rutas, telemetría y alertas en tiempo real.

Sobre Q2BSTUDIO: somos una empresa de desarrollo de software a medida y aplicaciones a medida especializada en soluciones a medida para empresas. Ofrecemos servicios de inteligencia artificial y ia para empresas, agentes IA, ciberseguridad y pentesting, y servicios cloud aws y azure. Si necesita una solución de software a medida para integrar ingestión y normalización de datos IoT o construir pipelines de analítica, podemos ayudarle con desarrollo, seguridad y despliegue en la nube. Conozca nuestras capacidades en desarrollo de aplicaciones y software a medida en servicios de software a medida y descubra nuestras propuestas de inteligencia artificial en soluciones de inteligencia artificial para empresas.

Palabras clave incorporadas naturalmente para SEO: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi. Contacte con Q2BSTUDIO para diseñar e implementar una solución completa que lleve sus uplinks IoT desde el dispositivo hasta sus cuadros de mando y sistemas de negocio.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio