MQTT (Message Queuing Telemetry Transport) es un protocolo de mensajería ligero diseñado para la comunicación máquina a máquina (M2M) y el Internet de las Cosas. Creado por IBM en 1999 para conectar tuberías de petróleo vía satélite, se ha convertido en 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 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 jerárquicamente, como nave/sensor01/temperatura, y cualquier cliente suscrito a ese tema recibe el dato automáticamente y al instante. 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 y Home Assistant, sin que el sensor sepa quién consume sus datos. El broker gestiona además 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, perfecto para dispositivos con pocos recursos y conexiones lentas o intermitentes. Soporta tres niveles de calidad de servicio (QoS 0, 1 y 2) para equilibrar velocidad y fiabilidad según la importancia del dato. El mecanismo de última voluntad detecta automáticamente cuándo un dispositivo se desconecta de forma inesperada, y los 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), y 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 y Node-RED los procesa para lógica de negocio a medida. Usamos topics estructurados por cliente, instalación y dispositivo, lo que nos permite gestionar 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.