Tutorial: Parsear datos MQTT de Eelink con Node.js

Guía práctica para ingenieros IoT y de datos: un script Node.js que se conecta a MQTT, detecta JSON, Base64 y TLV Hex, y normaliza payloads en un esquema único para analítica, por Q2BSTUDIO.

9 sept 2025 • 4 min read • Q2BSTUDIO Team

Inteligencia-Artificial-

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.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat