MQTT (Message Queuing Telemetry Transport) es un protocolo de mensajería ligero. Está diseñado para la comunicación máquina a máquina (M2M) y el Internet de las Cosas.
IBM lo creó en 1999 para conectar tuberías de petróleo vía satélite. Hoy es el estándar de facto de la telemetría IoT por su eficiencia, fiabilidad y bajo consumo de ancho de banda. Opera sobre TCP/IP y usa un modelo de publicación/suscripción que desacopla por completo a quien emite los datos de quien los recibe.
El modelo publicación/suscripción
A diferencia de la comunicación cliente-servidor tradicional, MQTT funciona mediante un broker central que gestiona todos los mensajes. Los dispositivos publican datos en topics (temas) organizados de forma jerárquica, como nave/sensor01/temperatura. Cualquier cliente suscrito a ese tema recibe el dato al instante y de forma automática.
Así, un sensor publica una lectura una sola vez y varios sistemas la reciben a la vez:
- El panel de Grafana.
- El sistema de alertas.
- La base de datos InfluxDB.
- Home Assistant.
El sensor nunca sabe quién consume sus datos. Además, el broker gestiona niveles de calidad de servicio (QoS) para garantizar la entrega de mensajes críticos en redes inestables.
Ventajas para telemetría IoT
MQTT destaca por su ligereza extrema. Un mensaje puede pesar apenas unos bytes, ideal para dispositivos con pocos recursos y conexiones lentas o intermitentes.
Sus tres niveles de calidad de servicio (QoS 0, 1 y 2) equilibran velocidad y fiabilidad según la importancia del dato. Otras dos funciones refuerzan la robustez:
- Última voluntad: detecta de forma automática cuándo un dispositivo se desconecta de manera inesperada.
- Mensajes retenidos: garantizan que un nuevo suscriptor reciba siempre el último valor conocido de cada sensor.
Todo ello con una huella mínima de procesador y memoria.
Cómo lo usamos en SMedialab IoT
MQTT es el sistema nervioso que conecta todos los componentes de nuestras instalaciones IoT. Cada sensor, inversor y dispositivo publica sus lecturas en nuestro broker, basado en Mosquitto. Cada servicio se suscribe solo a los datos que necesita:
- Home Assistant los usa para automatizaciones.
- InfluxDB los almacena como históricos.
- Grafana los visualiza en paneles en tiempo real.
- Node-RED los procesa para lógica de negocio a medida.
Usamos topics estructurados por cliente, instalación y dispositivo. Así gestionamos muchas instalaciones desde una infraestructura centralizada, manteniendo el aislamiento de datos entre clientes.
Esta ficha es informativa. Si quieres ver cómo lo aplicamos a tu proyecto, consulta el servicio de domótica e IoT y la mensajería IoT con MQTT.