Technical

Entender MQTT: el lenguaje invisible del hogar conectado

Comprendre MQTT : le langage invisible de la maison connectée

Entender MQTT: el lenguaje invisible del hogar conectado

MQTT: el lenguaje invisible del hogar conectado

MQTT. Cuatro letras que aparecen muy pronto en cuanto uno se interesa seriamente por la domótica: en Zigbee2MQTT, en los ajustes de un controlador domótico, en la ficha técnica de una batería o de un inversor…

Sin embargo, su funcionamiento no resulta obvio cuando se descubre por primera vez. En lugar de una larga exposición técnica, veamos juntos qué es MQTT, para qué sirve concretamente en un hogar conectado y por qué se ha vuelto indispensable. Ya verás: el principio es, en el fondo, bastante sencillo.


¿Qué es MQTT?

MQTT (históricamente Message Queuing Telemetry Transport) es un protocolo de comunicación muy ligero, diseñado originalmente para permitir que máquinas y sensores intercambien pequeñas cantidades de información.

Su particularidad: los dispositivos no se comunican directamente entre sí. Lo hacen a través de un intermediario: el broker.

Se puede comparar con una central de correos. Un equipo le envía un mensaje indicando una dirección. El broker transmite ese mensaje a todos los que han solicitado recibir el correo que llega a esa dirección.

Esa dirección tiene un nombre: el topic.

Con estos tres conceptos, ya hemos comprendido lo esencial:

Publisher → Broker MQTT → Subscriber

  • el publisher publica una información;
  • el broker la recibe y la distribuye;
  • el subscriber se suscribe a las informaciones que le interesan.

El broker más extendido se llama Mosquitto. Libre y gratuito, funciona tanto en una Raspberry Pi como en un servidor domótico o un NAS. Algunas pasarelas incluso integran directamente su propio broker.

Un ejemplo muy sencillo

Tomemos como ejemplo un contador que mide el consumo eléctrico del hogar. Publica periódicamente la potencia medida en un topic:

hogar/energia/potencia → 742

El controlador domótico está suscrito a ese topic. En cuanto llega un nuevo valor, lo recibe casi de forma instantánea y puede mostrarlo, almacenarlo o utilizarlo en un escenario.

Y también funciona en sentido contrario: el controlador puede publicar un comando en un topic al que está suscrito un equipo.

MQTT sirve tanto para enviar información como para transmitir comandos.

Un lenguaje comprendido por la mayoría de los productos conectados

MQTT no pertenece a ninguna marca ni plataforma. Es un estándar abierto, y eso es lo que hace su fuerza.

La mayoría de los controladores domóticos saben conectarse a él: Home Assistant, Jeedom, openHAB, Domoticz, ioBroker, Homey, o herramientas como Node-RED. Cada uno tiene su propia interfaz y su propia lógica de escenarios, pero todos pueden leer y publicar mensajes MQTT.

Un equipo que publica sus datos en MQTT no está ligado a un software en particular. Puedes cambiar de controlador, o hacer convivir varios, sin tocar los equipos.

Zigbee2MQTT: el mejor ejemplo

El uso más conocido de MQTT en domótica es sin duda Zigbee2MQTT (a menudo abreviado Z2M). Y su nombre resume perfectamente su función.

Un dispositivo Zigbee no habla MQTT. Habla Zigbee con el coordinador de la red. Zigbee2MQTT hace de puente entre estos dos mundos:

Dispositivo Zigbee → Coordinador Zigbee → Zigbee2MQTT → Broker MQTT → Controlador domótico

Tomemos un contador de energía SEM-4-1-00. Transmite sus mediciones a la red Zigbee. Zigbee2MQTT las recoge y las publica en un topic del tipo zigbee2mqtt/contador_hogar, en forma de un pequeño mensaje que agrupa potencia, tensión, corriente o energía acumulada. El controlador domótico los recibe y puede utilizarlos de inmediato.

En sentido contrario, para encender el relé de un módulo SIN-4-1-21, el controlador publica un comando en zigbee2mqtt/calentador/set. MQTT lo transporta, y Zigbee2MQTT lo traduce y lo envía al módulo correspondiente.

Zigbee2MQTT puede funcionar en un servidor domótico, con una clave Zigbee. Pero también existen pasarelas que reúnen todo en una sola caja, como el Bridge NodOn Zigbee MQTT (B2M-4-1-00).

Conectado a la red local por Ethernet y alimentado por USB-C o PoE, integra el coordinador Zigbee, la pasarela Zigbee–MQTT y su propio broker MQTT seguro, todo ello configurable desde una interfaz web. Los equipos Zigbee quedan entonces accesibles en MQTT para cualquier controlador compatible, sin servidor adicional.

El camino de una información Zigbee hacia MQTT

El broker es el cartero, no el cerebro

El broker desempeña un papel central. Pero no hay que confundirlo con el controlador domótico.

El broker no decide nada. No sabe si una batería debe cargarse, si un calentador debe arrancar o si una lámpara debe encenderse. Su trabajo consiste en recibir y distribuir mensajes.

Es el controlador domótico, con sus escenarios y automatizaciones, quien aprovecha esa información para tomar decisiones.

Es precisamente esta separación de roles lo que hace interesante a MQTT.

MQTT no se limita al Zigbee

Este es probablemente el punto que genera más confusión: MQTT no es un protocolo Zigbee. Zigbee2MQTT es solo una de sus aplicaciones.

Muchos equipos Wi-Fi o Ethernet saben publicar directamente en MQTT: módulos basados en ESP32 (Tasmota, ESPHome), microinversores a través de pasarelas como OpenDTU, ciertas baterías domésticas como Zendure, puntos de carga, estaciones meteorológicas…

En mi instalación, por ejemplo, parte de la información de mi batería Zendure y de mis microinversores llega por MQTT, junto a los datos Zigbee.

Estos equipos provienen de fabricantes diferentes, utilizan tecnologías distintas y a veces no tienen nada en común. Sin embargo, su información circula por el mismo entorno.

Un verdadero bus de datos

En un hogar equipado con paneles fotovoltaicos, el controlador domótico necesita conocer en todo momento:

  • la producción fotovoltaica;
  • el consumo real del hogar;
  • la importación desde la red;
  • la inyección del excedente;
  • la potencia de carga o descarga de las baterías;
  • el consumo del calentador de agua.

Algunos datos provienen del Zigbee a través de Zigbee2MQTT, otros directamente de MQTT, otros de integraciones propias del controlador. Y sin embargo, este los reúne para obtener una visión coherente del hogar.

Un punto importante a recordar: no todo necesita pasar por MQTT para que MQTT sea útil. Es simplemente uno de los medios para hacer circular la información entre los distintos componentes del sistema.

Un ejemplo concreto: el calentador de agua fotovoltaico

Cuando los paneles producen más de lo que consume el hogar, el excedente va a la red. El controlador domótico lo sabe gracias a las mediciones de los contadores SEM-4-1-00. Puede entonces decidir enviar ese excedente al calentador de agua, controlado por un SIN-4-1-21.

Producción fotovoltaica → Medición de flujos → MQTT → Controlador domótico → Escenario → Calentador / baterías / otros usos

Es exactamente lo que funciona en mi instalación a diario, con Home Assistant como controlador. Pero el mismo principio funciona con cualquier controlador compatible MQTT.

MQTT no decide calentar el agua. Transporta parte de la información necesaria para esa decisión. El controlador sigue siendo el director de orquesta.

Para ir más lejos: Controlar un calentador de agua con el SIN-4-1-21: transformar el excedente solar en agua caliente

Una información publicada una vez, utilizada en todas partes

Esta es una de las grandes ventajas de MQTT: un equipo publica una información una sola vez, y varios sistemas pueden suscribirse a ella.

Tomemos como ejemplo la potencia fotovoltaica instantánea:

  • el controlador domótico la muestra en su panel de control;
  • una pantalla puede mostrarla en una matriz LED;
  • un EMS la usa para decidir cargar una batería;
  • otro programa la registra en una base de datos.

El productor de la información no necesita conocer todos esos sistemas. Publica su dato, y quienes lo necesitan se suscriben.

Esto es lo que se llama una arquitectura Publish / Subscribe. Y es sin duda el concepto más importante para entender MQTT.

Una información publicada una vez, utilizada en todas partes – arquitectura Publish/Subscribe

Del hogar al edificio

El principio de MQTT no cambia con el tamaño de la instalación. Lo que funciona en una vivienda funciona también en un edificio de oficinas, una escuela o un hotel.

En el ámbito del edificio, el controlador domótico se llama BMS (Building Management System), y también sabe comunicarse en MQTT.

Es para este tipo de proyectos para el que fue concebido el Bridge NodOn Zigbee MQTT (B2M-4-1-00). Cada bridge gestiona hasta unos sesenta equipos Zigbee, y se instalan tantos bridges como sea necesario para cubrir uno o varios edificios.

Tres modos permiten adaptarse a la arquitectura existente:

  • Standalone: cada bridge lleva su propio broker, y el BMS se conecta a él;
  • Multi-bridge: un bridge central actúa como broker y agrupa los datos de los bridges «satélites»;
  • Broker externo: todos los bridges se conectan al broker ya presente en el lado del BMS.

En todos los casos, encontramos las tres mismas nociones: publishers, broker y subscribers.

Interfaz del servicio broker MQTT del Bridge NodOn – configuración de los modos
Del hogar al edificio: 3 arquitecturas MQTT con el Bridge NodOn

Por qué MQTT es tan popular en domótica

MQTT reúne cuatro cualidades especialmente adaptadas al hogar conectado:

  • Ligero: los mensajes intercambiados son muy pequeños.
  • Rápido: una información se transmite casi de forma instantánea.
  • Universal: controladores domóticos, BMS, ESP32, Raspberry Pi, pasarelas, software… muchos sistemas saben hablar MQTT.
  • Local: cuando un equipo ofrece comunicación MQTT local, sus datos pueden circular sin pasar sistemáticamente por la nube del fabricante.

Este último punto es esencial: una instalación que funciona en local sigue siendo operativa incluso cuando la conexión a Internet o el servicio de un fabricante falla.

De la Smart Home a la Smart Resilience

Un hogar verdaderamente inteligente no debería ser una simple acumulación de objetos conectados y aplicaciones móviles. Debería hacer dialogar sus equipos, aprovechar sus propios datos y garantizar el máximo de funciones esenciales en local.

En este enfoque, cada componente tiene su papel:

  • el controlador domótico es el cerebro;
  • Zigbee, Wi-Fi y los demás protocolos conectan los equipos;
  • MQTT permite a estos componentes intercambiar su información de forma sencilla;
  • los escenarios aprovechan esos datos para optimizar el hogar, especialmente su consumo energético.

Es lo que me gusta englobar bajo una noción más amplia: la Smart Resilience. Un hogar conectado, sí, pero sobre todo un hogar coherente, interoperable y tan local como sea posible.

En definitiva, MQTT no es tan complicado

Si estás descubriendo MQTT, no es necesario empezar por sus sutilezas técnicas. Recuerda simplemente esta imagen: un dispositivo publica una información en un topic, el broker la distribuye, y los dispositivos interesados se suscriben.

Las nociones de QoS, mensajes retained, discovery o seguridad vendrán después. No son indispensables para entender el principio.

Una vez comprendido este mecanismo, muchas cosas se vuelven más claras cuando se observa lo que ocurre detrás de Home Assistant, Zigbee2MQTT o cualquier controlador compatible MQTT.

MQTT no es ni el cerebro, ni los ojos, ni los brazos de mi hogar. Es su sistema de mensajería. Y sin hacer ruido, permite que todo este pequeño mundo se comunique.


Para recordar

✔ MQTT se basa en tres nociones: publisher, broker y topic
✔ El broker distribuye los mensajes; el controlador domótico toma las decisiones
✔ Zigbee2MQTT hace de puente entre la red Zigbee y MQTT
✔ Una información publicada una vez puede ser utilizada por varios sistemas simultáneamente
✔ El Bridge NodOn B2M-4-1-00 reúne coordinador Zigbee, pasarela y broker en una sola caja
✔ MQTT favorece una instalación local, abierta e interoperable

Productos utilizados

En la misma serie


eHome Labs eHome Labs

Apasionado de la domótica desde hace más de 20 años, Pascal Stephany hace evolucionar su instalación al ritmo de sus experimentos. Cada automatización se prueba en condiciones reales antes de adoptarse en el día a día, lo que convierte su hogar en un verdadero laboratorio a escala real.

Este enfoque le permite afinar permanentemente la estrategia energética del hogar y aprovechar al máximo las posibilidades que ofrecen Home Assistant y las soluciones Zigbee NodOn.

Pascal STEPHANY
Product Manager NodOn

Puede que le interese

Piloter un chauffe-eau avec le SIN-4-1-21 : transformer le surplus solaire en eau chaude

Dejar un comentario

Este sitio está protegido por hCaptcha y se aplican la Política de privacidad de hCaptcha y los Términos del servicio.