
MQTT — protocolo de mensajería IoT
La columna vertebral de mensajería de publicación/suscripción del IoT moderno. Cómo encaja MQTT en el hogar inteligente y la automatización de edificios junto a KNX, DALI y Home Assistant.
¿Qué es MQTT?
MQTT (Message Queuing Telemetry Transport) es un protocolo de mensajería de publicación/suscripción ligero, diseñado originalmente para enlaces por satélite en la década de 1990 (IBM/Eurotech). Hoy es el protocolo dominante para la comunicación dispositivo-servidor en el IoT — desde sensores ESP8266 hasta PLC industriales.
A diferencia de KNX (basado en bus) o Modbus (maestro/esclavo), MQTT utiliza un modelo de broker: los dispositivos publican mensajes en topics de un broker central (p. ej. Mosquitto), y cualquier suscriptor que escuche ese topic recibe el mensaje. Sin comunicación directa entre dispositivos.
Conceptos clave:
- Broker: Servidor central que enruta todos los mensajes (Mosquitto, HiveMQ, EMQX). En hogar inteligente = se ejecuta en el servidor HA o en una Pi separada.
- Topic: Ruta de texto jerárquica, p. ej.
home/livingroom/light/state - Publicación: Un dispositivo envía un mensaje a un topic
- Suscripción: Un cliente escucha un topic y recibe todos los mensajes publicados en él
- Mensaje retenido: El broker almacena el último valor — los nuevos suscriptores lo reciben de inmediato
- QoS 0/1/2: Como máximo una vez / Al menos una vez / Exactamente una vez — garantía de entrega
Especificación de MQTT
| Parámetro | Valor |
|---|---|
| Estándar | ISO/IEC 20922 (MQTT 3.1.1), MQTT 5.0 |
| Transporte | TCP/IP (puerto 1883) o TLS (puerto 8883) |
| Topología | Estrella (centrada en el broker) |
| Dirección | Publicación/suscripción bidireccional |
| Carga útil | Cualquier binario/texto — normalmente JSON o valor simple |
| Separador de topic | / (barra), p. ej. home/floor1/room2/temp |
| Comodín (un nivel) | + (más), p. ej. home/+/light |
| Comodín (multinivel) | # (almohadilla), p. ej. home/# |
| QoS 0 | Enviar y olvidar — sin garantía de entrega |
| QoS 1 | Al menos una vez — el receptor confirma (puede duplicar) |
| QoS 2 | Exactamente una vez — protocolo de enlace de 4 pasos |
| Mensajes retenidos | El broker almacena el último mensaje por topic |
| Mensaje Will | Lo envía el broker si un cliente se desconecta de forma inesperada |
| Autenticación | Usuario/contraseña, certificados TLS |
| Puerto (sin cifrar) | 1883 |
| Puerto (TLS) | 8883 |
MQTT en el hogar inteligente — el ecosistema
MQTT es el lenguaje común del hogar inteligente DIY y semiprofesional. Varios grandes proyectos lo usan como capa de transporte:
Zigbee2MQTT
zigbee2mqtt.ioTraduce los telegramas de radio Zigbee a MQTT. Conecta un coordinador Zigbee (CC2530, SkyConnect) a HA, ejecuta Zigbee2MQTT y más de 2500 dispositivos Zigbee aparecen como topics MQTT. No hace falta el hub Philips Hue.
Tasmota / ESPHome
tasmota.github.ioFirmware de código abierto para módulos ESP8266/ESP32. Flashea un relé Sonoff económico con Tasmota y se convierte en un interruptor inteligente que publica en MQTT. ESPHome es nativo de HA.
Integración MQTT de Home Assistant
home-assistant.ioHA puede publicar y suscribirse a cualquier topic MQTT. Configuración mediante YAML o interfaz. MQTT Discovery crea automáticamente entidades de HA cuando un dispositivo se anuncia a través de un topic específico.
Node-RED
nodered.orgProgramación visual basada en flujos que se suscribe a topics MQTT, aplica lógica y publica en otros topics o endpoints KNX/HTTP. A menudo se usa junto a HA para enrutamiento complejo.
WirenBoard
wirenboard.comEste controlador ruso para carril DIN usa MQTT como protocolo principal. WirenBoard publica todas las lecturas de los sensores y acepta control mediante topics MQTT. Funciona con HA y Node-RED.
Ejemplos de estructura de topics
Ejemplo de árbol de topics MQTT (hogar inteligente)
home/
├── livingroom/
│ ├── light/state → "ON" / "OFF"
│ ├── light/brightness → "75" (0-100%)
│ ├── light/color_temp_k → "3000"
│ ├── temperature → "21.5"
│ └── occupancy → "true" / "false"
├── kitchen/
│ ├── light/state → "ON"
│ └── humidity → "45"
├── bedroom/
│ ├── blind/position → "75" (0=open, 100=closed)
│ └── thermostat/setpoint → "20.5"
└── panel/
├── meter/power_w → "1247"
└── meter/energy_kwh → "1852.3"MQTT frente a KNX — cuándo usar cada uno
| Aspecto | MQTT | KNX TP |
|---|---|---|
| Infraestructura | Red IP (Ethernet/Wi-Fi) | Cable de bus TP dedicado |
| Fiabilidad | Depende de la red y del tiempo de actividad del broker | Determinista, el bus siempre está activo |
| Latencia | Milisegundos (IP) + ida y vuelta al broker | <50 ms (telegrama de bus directo) |
| Escalabilidad | Ilimitada (escalado horizontal) | 255 direcciones por línea, máx. 15 líneas |
| Complejidad de instalación | Baja (broker + publicación/suscripción) | Alta (programación ETS, direccionamiento) |
| Coste de hardware | Bajo (ESP8266 = 2 €) | Alto (actuador KNX = 50–200 €+) |
| Certificación | No requerida | Certificado KNX + licencia ETS |
| Funciona sin servidor | ❌ El broker debe estar en ejecución | ✅ El bus local funciona sin servidor |
| Mejor caso de uso | Datos de sensores, integración IoT, DIY flexible | Control crítico para la seguridad, edificio comercial |
| Usuario típico | Maker, integrador de HA, desarrollador IoT | Ingeniero eléctrico, especialista en DALI/KNX |
La respuesta sincera: En una instalación premium bien diseñada, KNX se encarga del control del hardware (conmutación, regulación, persianas) y MQTT/IP se encarga de la agregación de datos de sensores y las integraciones de software (monitorización de energía, presencia, clima). Son complementarios — no competidores.
Opciones de integración KNX + MQTT
Home Assistant (integraciones KNX + MQTT)
Tanto la integración de KNX como la de MQTT se ejecutan en HA. Las automatizaciones pueden leer los valores de los sensores MQTT y activar los actuadores KNX — o viceversa. Sin hardware adicional.
knx-mqtt-bridge (código abierto)
Servicio Node.js independiente que conecta las direcciones de grupo KNX con los topics MQTT de forma bidireccional. Cada GA de KNX se asigna a un topic MQTT. Se ejecuta en Pi o Docker.
Nodos Node-RED KNX + MQTT
node-red-contrib-knx + nodos MQTT. Programación visual por flujos: topic MQTT → transformación → telegrama KNX. Ideal para el enrutamiento condicional complejo.
Pasarela WirenBoard WB-MGW
La pasarela WirenBoard puede traducir entre dispositivos RS-485/Modbus y MQTT. Después HA lee MQTT y publica en KNX. Habitual en Europa del Este.
Arquitectura KNX + MQTT diseñada para tu proyecto
Integramos redes de sensores MQTT con cuadros de control KNX — Zigbee2MQTT, contadores de energía, sensores HVAC — todo unificado en un solo sistema.
Solicitar presupuesto →