Instalación y configuración MQTT, Guía Detallada

Esta guía minuciosa te conducirá a través de la instalación y configuración de MQTT, el broker Mosquitto, Home Assistant y un ejemplo en ESPHome, todo en el sólido entorno de CasaOS.

Antes de sumergirnos en los detalles, echemos un vistazo. Estamos a punto de construir un sistema de comunicación IoT. Utilizaremos MQTT con Mosquitto como nuestro broker y Home Assistant para la gestión centralizada, todo orquestado con el soporte potente de CasaOS. Está probado en el sistema operativo Debian 12, pero no deberías tener problemas en cualquier otro sistema, aunque es posible que debas hacer algo de un modo diferente.

Instalación de Mosquitto con CasaOS

Asumimos que ya tenemos instalado, configurado y corriendo en nuestra máquina CasaOS, si no es tú caso, revisa esta entrada en mi blog para poder hacerlo.

En el navegador accede a tu instalación de CasaOS, algo como http://192.168.1.10.

Una vez allí, entra en el App Store, en la tienda oficial no tenemos disponible Mosquitto, por lo que vamos a instalar una nueva tienda que si nos lo ofrece.

Para ello, haz click en el enlace Añadir + de la parte superior derecha del App Store,

copia esta URL y confirma que quieres añadirla:

https://github.com/mr-manuel/CasaOS-HomeAutomation-AppStore/archive/refs/tags/latest.zip

Aquí puedes ver todas las tiendas no oficiales disponibles en la documentación de CasaOS.

Ahora que tenemos instalada esta nueva tienda, ya puedes buscar Mosquitto e instalarlo.

Magia de CasaOS… ya la tenemos:

Desde nuestro terminal vamos a ver los contenedores docker que tenemos corriendo, con el comando:

docker ps -a

y el resultado debe ser algo como esto:

CONTAINER ID   IMAGE                    COMMAND                  CREATED              STATUS            PORTS                                       NAMES
aed54212b362   eclipse-mosquitto:2.0.16 "/docker-entrypoint.…"   About a minute ago   Up About a minute 0.0.0.0:1883->1883/tcp, :::1883->1883/tcp   mosquitto

El siguiente paso es crear un usuario en Mosquitto y establezcamos una contraseña (cambia ‘usuario’ por el nombre que quieras):

docker exec -it mosquitto mosquitto_passwd -c /etc/passwd mqttuser

Este comando te pedirá que introduzcas la contraseña dos veces para confirmarla. El archivo /etc/mosquitto/passwd contendrá el usuario y la contraseña encriptada. Puedes añadir más usuarios con el mismo comando, pero usando la opción -b en lugar de -c. Por ejemplo, para añadir un usuario llamado mqttadmin con la contraseña mqttadmin, puedes usar el siguiente comando:

docker exec -it mosquitto mosquitto_passwd -b /etc/passwd mqttadmin mqttadmin

Después de crear los usuarios, debes modificar el archivo de configuración de Mosquitto para indicarle que use el archivo de contraseñas y que no permita el acceso anónimo. Para ello, puedes editar el archivo /etc/mosquitto/conf.d/default.conf:

docker exec -it mosquitto vi /mosquitto/config/default.conf

y añadir las siguientes líneas:

password_file /etc/passwd
allow_anonymous false

Configuración de Mosquitto desde el Terminal

Abre el archivo de configuración:

nano /ruta/a/tu/archivo/mosquitto.conf

Ajusta las configuraciones según tus necesidades, habilitando la autenticación:

allow_anonymous false
password_file /mosquitto/config/password_file

Configuración de MQTT en Home Assistant (contenedor sin supervisor)

Asumimos que ya tenemos instalado, configurado y corriendo en nuestra máquina Home Assistant, si no es tú caso, revisa esta entrada en mi blog para poder hacerlo.

Accedemos desde el navegador a nuestro Home Assistant, , algo como http://192.168.1.10:8123

En el menú lateral, vamos a Ajustes > Dispositivos y servicios, y nos aseguramos que estamos en la pestaña Integraciones.

Añadimos una nueva integración:

en la modal que se abre, buscamos «MQTT»

hacemos click en MQTT > MQTT, y ya estamos en la pantalla de configuración.

Vamos a completar los campos:

  • Broker: 192.168.1.10
  • Puerto: 1883
  • Nombre de usuario: mqttuser
  • Contraseña: [la que hayas elegido]

enviamos y ya tenemos la configuración creada.

Probando MQTT

Vamos a comprobar que está funcionando correctamente.

Para ello accedemos a nuestra integración MQTT en Home Assistant, aquí vamos a seleccionar CONFIGURAR de la entrada que acabamos de crear.

Primero configuramos la escucha y escribimos en el campo Topic de la escucha topic/test y hacemos click en EMPEZAR A ESCUCHAR.

y vamos a realizar la prueba desde la parte de Publicar, para ello tenemos que definir el mismo Topic que estamos esperando escuchar topic/test y en el campo Payload, escribimos algo, por ejemplo ‘primer test de prueba’ y hacemos click en PUBLICAR.

Y si hemos hecho todo bien, debemos recibir el mensaje como se muestra en esta imagen.

Bien! ya está configurado y funcionando, podemos pasar al siguiente paso, ESPHome.

Código de Ejemplo con ESPHome

Asumimos que ya tenemos instalado, configurado y corriendo en nuestra máquina ESPHome, si no es tú caso, revisa esta entrada en mi blog para poder hacerlo.

Completemos la ecuación, configurando un dispositivo con ESPhome.

En el ejemplo vamos a utilizar

pip install esphome

Luego, crea un nuevo proyecto ESPhome con:

esphome create nombre_del_proyecto

Edita el archivo nombre_del_proyecto.yaml con tu configuración:

esphome:
  name: tu_dispositivo
  platform: ESP8266
  board: nodemcuv2

wifi:
  ssid: "TuWiFi"
  password: "TuContraseñaWiFi"

mqtt:
  broker: IP_DE_TU_CASAOS
  username: TUCONTRASEÑAMQTT
  password: TUPASSWORDMQTT

Guarda y compila con:

esphome nombre_del_proyecto.yaml run

¡Y así, colega, estamos listos para adentrarnos en el fascinante universo del IoT! Ajusta estos pasos según tus necesidades específicas y explora las amplias posibilidades que ofrece este conjunto de tecnologías. ¡Que el código te guíe con destreza en Debian 12!