Instalación de Mosquitto MQTT Broker en Raspberry Pi (Buster)

Vamos a dividir el tutorial por pasos dentro de la misma página de forma que así os sea más fácil localizar una parte concreta del tutorial:

Descarga del software necesario

Una vez tenemos instalado raspbian y domoticz, tal y como se explicó en el tutorial anterior: la instalación de domoticz desde cero, vamos a ver como instalar MQTT en nuestra Raspberry Pi desde cero… Debéis tener en cuenta que raspbian y domoticz nunca vienen automáticamente con MQTT cuando se instalan, este paso debe realizarse obligatoriamente para poder comunicar la raspberry con los distintos dispositivos que hayamos flasheado y se conectan por MQTT.

Este tutorial lo vamos a realizar con la nueva raspberry pi 4 pero es válido para versiones anteriores.

Muy importante disponer de puTTY para poder seguir este tutorial. Recuerda que se puede descargar aquí https://www.putty.org/

Comprobación de nuestra versión de Raspbian

Abrimos el puTTY y ponemos la IP de nuestra raspberry, y el puerto 22, como podemos ver en la siguiente captura.

Recuerda que el usuario por defecto es pi y la contraseña (password) es raspberry salvo que la cambiaras tal y como te recomendamos en el tutorial sobre la instalación de domoticz desde cero.

Lo primero que vamos a comprobar es nuestro modelo de Raspbian.

Para ello escribimos lo siguiente:

lsb_release -a

Nos fijamos en que nuestra versión sea la Buster.

Preparamos nuestra raspberry para la instalación de MQTT

Vamos a acceder al repositorio importando la llave. Para pegar texto en la consola podremos hacerlo clicando con el botón derecho del ratón. Para ello redactamos:

wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key

sudo apt-key add mosquitto-repo.gpg.key

cd /etc/apt/sources.list.d/

Seleccionamos el repositorio para nuestra versión de Raspbian. En nuestro caso sería la versión Buster. Copia y pega SOLO la linea que corresponda a tu Raspbian:

sudo wget http://repo.mosquitto.org/debian/mosquitto-wheezy.list
sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list
sudo wget http://repo.mosquitto.org/debian/mosquitto-stretch.list
sudo wget http://repo.mosquitto.org/debian/mosquitto-buster.list

Actualiza la base de datos:

sudo apt-get update

Cargamos MQTT en nuestra raspberry

Pasamos a instalar mosquitto. Introducimos:

sudo apt install mosquitto mosquitto-clients

Aprovechamos para introducir un comando para que MQTT se inicie automáticamente cuando nuestra raspberry se reincie:

sudo systemctl enable mosquitto

Nos aseguramos de que MQTT funciona y activamos/detenemos el servicio

Para estar seguros de que hemos instalado correctamente MQTT vamos a ejecutar una prueba.

Primero nos aseguramos de que el servicio está operativo y para ello y por si no lo está, iniciamos MQTT copiando y pegando el siguiente comando:

sudo systemctl start mosquitto

Vamos ahora a probar si MQTT funciona correctamente. Para ello introducimos el siguiente comando:

sudo systemctl status mosquitto

Debería aparecernos active (running)

Clicamos sobre «control + c» para salir de esa pantalla. 

Ahora abrimos otra consola con puTTY y mantenemos dos consolas a la vez. De este modo utilizaremos una consola para enviar información y veremos, si todo se ha instalado correctamente, como la otra consola recibe esa información.

Introducimos el siguiente comando para que la primera consola reciba informacion:

mosquitto_sub -h localhost -t "#" -v

Y ahora vamos a utilizar la segunda consola para enviar información y ver si la primera consola recibe esa información:

mosquitto_pub -h localhost -t "domotuto.com/prueba funcionamiento mqtt" -m "funciona"

Deberíamos ver la siguiente situación en nuestras consolas:

Si quisiéramos detener el servicio MQTT lanzaríamos la siguiente linea:

sudo systemctl stop mosquitto

Posibles errores en MQTT

Antes de continuar, o si tienes problemas con MQTT, comprueba lo siguiente:

Comprobamos desde puTTY nuestra instalacion MQTT introduciendo la siguiente línea:

sudo cat /etc/mosquitto/conf.d/default.conf

Si devuelve un mensaje del tipo:

“cat: /etc/mosquitto/conf.d/default.conf: No such file or directory”

Significa que necesitas crear ese fichero de configuración básica, para ello puedes usar la siguiente línea en Putty:

sudo nano /etc/mosquitto/conf.d/default.conf

Y pegar las 2 líneas siguientes teniendo en cuenta lo siguiente respecto al true/false (Si utilizas contraseñas en mqtt es «false». Si no utilizas contraseñas es «true»). Dejamos el ejemplo con «true»:

listener 1883
allow_anonymous true

CTRL+X para salir, escribir “y” para guardar los cambios y otro intro mas y listo.

Para cualquier duda o consulta tienes disponible el grupo de telegram «Domoticz a lo Spain» para entrar, ponerte cómodo y participar cuanto quieras.

Clica aquí para entrar en él

Cualquier duda, sugerencia o comentario será bien recibida en la web!

Configurar usuario y contraseña

¿Queréis proteger vuestro servidor mqtt? Os lo contamos en la siguiente entrada configurar password en mqtt

Cargar MQTT en nuestro domoticz

Para que nuestro dispositivo flasheado sea funcional en domoticz es imprescindible tener instalado en domoticz MQTT. 

Una vez hemos comprobado que MQTT funciona correctamente desde puTTY con doble consola tal y como hemos explicado, pasamos a cargar el MQTT en domoticz.

Para ello, sigue el tutorial «Cargamos MQTT en nuestro domoticz«.

Cómo establecer USER y PASS a MQTT

Para cualquier duda o consulta tienes disponible el grupo de telegram «Domoticz a lo Spain» para entrar, ponerte cómodo y participar cuanto quieras.

Clica aquí para entrar en él

Cualquier duda, sugerencia o comentario será bien recibida en la web!