Installer le message broker Mosquitto dans un container Docker pour openHAB3

Quel est l'interêt de faire ça ?
Cela concerne bien entenu ceux qui ont installé openHAB 3 via un cotainer Docker.
C'est juste une synthèse de la manière à opérer et à ensuite référencer cela sous openHAB et peut-être que cela dépannera certains... car il y a certains pièges...


1. Récupération de l'image sous Docker HUB :

https://hub.docker.com/_/eclipse-mosquitto

Faire un pull :
docker pull eclipse-mosquitto


2. Démarrer le container :
docker run -it --name mosquitto -p 1883:1883 eclipse-mosquitto 

 

Personnelement je préfère utiliser le Docker-compose (via Portainer c'est trop pratique !)
Voici donc mon docker compose :

version: '2.4'

services:
app:
container_name: mosquitto
image: eclipse-mosquitto:latest
restart: unless-stopped
ports:
- 1883:1883
- 9001:9001
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /mosquitto/data:/mosquitto/data
- /mosquitto/log:/mosquitto/log

(pour info, le port 1883 est crucial, le 9001 est optionnel car c'est pour une utilisation de MQTT via des WebSockets)
Bon jusque là rien de particulier et de bien difficile.
Mais il manque quelque chose de crucial !

3. La mise à jour du fichier de conf


Faites :

sudo docker exec -it mosquitto /bin/sh


Et à présent éditez le fichier de conf :

/ # vi /mosquitto/config/mosquitto.conf


A la fin ajoutez ceci :

allow_anonymous true
listener 1883
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log

 

A présent on quitte cet env. on revient sur notre terminal pour faire un Arrêt/Relance de notre container.

docker stop mosquitto

docker start mosquitto

 

Notre Broker Mosquitto est prêt !
On va à présent le configurer dans openHAB.

4. La configuration dans openHAB

 

a- En premier il faut installer le binding MQTT dans openHAB 3
Aller dans "Paramètres" puis "Add-ons" à droite. Puis cliquer sur "Bindings".
Cliquez dans le "+" en bas à droite de l'écran pour ajouter un Binding.
Dans la liste chercher "MQTT Binding" et l'installer.

b- Le Binding étant installé il faut à présent crééer l'objet Things de type MQTT Broker.
Donc on va dans Thnigs et on clique en bas à droite sur "+" pour ajouter un objet de type MQTT Binding.

Il apparait une liste d'ajout manuels et sélectionner "MQTT Broker" de type Bridge.

Souvenez vous que le port de communication de MQTT que nous avons définis dans docker est le 1883.
Il est utilisé par défaut donc inutile de le définir dans openHAB, il vous faut juste définir votre IP de serveur et c'est tout.

Votre Broker MQTT est pêt ! Pour en être sûr le voyant vert de status ONLIVE s'affiche pour votre Things MQTT Broker.

mqtt