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!