Si vous avez suivi notre tutoriel de création d’une machine virtuelle Home Assistant sur NAS Synology, vous avez probablement déjà envie d’aller plus loin. Ça tombe bien, nous aussi. Nous allons donc voir aujourd’hui comment installer un broker Mosquitto MQTT sur un NAS Synology.
Il existe plusieurs solutions et d’autres brokers MQTT, mais chez Les Alexiens on aime la simplicité et l’efficacité, et nous n’allons pas nous lancer dans l’installation d’une machine virtuelle ou dans l’utilisation de Docker, car il existe une solution tout simple : un paquet Mosquitto MQTT tout prêt disponible sur la communauté Synology.
[toc]Mosquitto MQTT : un broker sur votre NAS Synology
Pré-requis
Évidemment, il vous faut un NAS de l’entreprise taïwanaise. La bonne nouvelle c’est que, cette fois, pas besoin d’avoir une bête de course, il ne s’agit que d’un simple petit paquet qui ne demandera ni conteneur, ni machine virtuelle et qui fonctionne sur le système d’exploitation DSM. Une solution qui intéressera donc tous les propriétaires de Synology DiskStation !
Si vous n’avez pas de NAS, vous pouvez installer un broker MQTT sur Raspberry Pi :
Si vous ne savez toujours pas quel NAS domotique choisir, nous vous recommandons de lire notre dossier et notamment ces modèles :
Un broker MQTT , c’est quoi ?
Bon, c’est bien beau tout ça, mais c’est quoi MQTT ? C’est très simple, c’est un protocole « publish / suscribe » permettant aux appareils « edge of network » de publier vers un « broker« .
Quoi ? Ça n’est pas clair ? C’est vrai. Simplifions.
En fait, ça n’est pas si compliqué, cela veut juste dire que votre broker va publier des topics auxquels des clients vont pouvoir s’abonner. Chaque client peut souscrire à différents topics et y publier des messages que le broker MQTT va relayer à tous les clients abonnés aux topics. On parle de protocole bidirectionnel.
Concrètement, si notre client est un thermomètre connecté, il va transmettre la température qu’il relève dans la maison à son broker MQTT sur un topic appelé /temperature auquel sont abonnés divers clients MQTT tels qu’une chaudière ou une application (Jeedom, Home Assistant, Homey…). L’application et/ou la chaudière pourront alors utiliser cette information afin d’activer un scénario domotique. Votre chauffage pourra s’allumer ou s’éteindre, même s’il n’utilise pas le même protocole que le thermomètre. Mieux encore, quand il s’allumera, il notifiera le broker qui, à son tour, informera les autres clients. La boucle est bouclée !
Installer Mosquitto MQTT sur Synology
Certes, Mosquitto n’est pas le seul broker, mais c’est le plus utilisé et la communauté des utilisateurs de NAS Synology a publié un super paquet que nous aurions bien tort de ne pas utiliser.
En effet, son processus n’occupe en moyenne que 1.8 Mo de RAM ! Autant dire que ça n’est pas lui qui va faire fumer votre NAS… Inutile, donc, d’alourdir notre machine avec une énième VM ou d’utiliser un conteneur Docker (à moins que vous n’utilisiez Docker pour d’autres choses évidemment).
Passons à l’installation proprement dite :
-
- Ajouter la source : pour cela, il faut ajouter Synocommunity comme source si vous ne l’utilisez pas déjà.
Centre de paquets > Communauté > Sources de paquet > Ajouter
- Renseignez l’adresse sur paquet :
https://packages.synocommunity.com
- Installez le paquet : Mosquitto MQTT
Centre de paquets > Communauté > Mosquitto MQTT
- Stoppez Mosquitto MQTT : si le paquet est lancé, stoppez le.
- Connectez-vous en SSH : activez le service SSH sur votre NAS et utilisez une console telle que Windows PowerShell (Windows 10 ou 11), PuTTY, ou Terminal sur macOS.
ssh [email protected] -p 22 (adresse IP du NAS et port)
- Passez en root :
sudo -i : entrez votre mot de passe admin
- Recherchez l'emplacement du fichier de configuration :
find / -name mosquitto.conf
- Ouvrez le dossier le dossier /mosquitto/var dans @appstore :
cd /volume1/@appstore/mosquitto/var
- Editez le fichier de configuration de Mosquitto avec un éditeur tel que vim en appuyant sur « i » :
vim mosquitto.conf
- Recherchez les lignes, effacez les # et remplacez par :
Ligne 650 : allow_anonymous false Ligne 668 : password_file /volume1/@appstore/mosquitto/var/fichier_mot_de_passe (remplacez par le nom de votre choix)
- Quittez vim et enregistrez avec la commande :
:q ou :quit
- Créez maintenant le fichier de mot de passe renseigné précédemment :
vim fichier_mot_de_passe (le nom choisi plus haut)
- Saisissez la commande suivante pour ajouter un utilisateur (remplacez les termes bien entendu) :
utilisateur:motdepasse
- Recherchez le fichier mosquitto_passwd :
find / -name mosquitto_passwd
- Par sécurité, il vaut mieux chiffrer le fichier mosquitto_passwd en saisissant son adresse repérée ci-dessus. Vous devriez avoir quelque chose comme :
../bin/mosquitto_passwd -U fichier_mot_de_passe
- C’est terminé : vous pouvez retourner dans DSM et relancer le paquet Mosquitto MQTT
../bin/mosquitto_passwd -U fichier_mot_de_passe
- Ajouter la source : pour cela, il faut ajouter Synocommunity comme source si vous ne l’utilisez pas déjà.
Utiliser un client MQTT
Pour finir, nous allons voir si notre broker fonctionne bien à l’aide d’un client MQTT gratuit qui va nous permettre de lire les topics, mais également d’en publier, et éventuellement d’intervenir sur certains paramètres si besoin. Notre préférence va à MQTT Explorer, mais il en existe d’autres. Disponible pour PC et Mac, ce programme va nous être très utile dans nos prochains tutoriels.
- Installez le client MQTT Explorer
- Renseignez l’adresse IP de votre NAS dans « Host »,
- Laissez le port 1883
- Saisissez vos identifiants dans ‘Username’ et ‘Password’ (ceux choisis pour Mosquitto, pas ceux de votre NAS).
En quelques secondes, vous découvrez l’interface de MQTT. Bon, pour l’instant, elle n’a pas grand intérêt vide, mais voici à quoi elle ressemblera après nos prochains tutoriels de domotique DIY.
Pour les propriétaires de Homey Pro, vous pouvez très rapidement lier votre broker à vos box domotique en suivant notre tutoriel dédié :
Pour les autres, nous verrons prochainement comment lier ce broker Mosquitto MQTT à Home Assistant, puis comment installer Zigbee2MQTT, et bien plus encore… Restez connecté !
Bonjour,
Il y a pas mal de chose qui ne fonctionne pas :
Le find -name mosquitto.conf ne le trouve que sur le path /volume1/@appdata/mosquitto (pas sur @appstore…)
Néanmoins après avoir changé la config sur @appdata et créer le fichier de password comme indiqué j’ai relancer le package Mosquitto et il semble être running… mais impossible de me connecter dessus avec MQTT Explorer (avec username et password) … j’obtiens que des connect ECONNREFUSER 192.xxx.xxx.xxx:1883
Pour quoi ?
Bonjour,
Effectivement, l’article date de mai 2022 et Synology a modifié pas mal de choses sur DSM depuis, d’où le changement d’emplacement et de nomenclature. Pour le reste, ça fonctionne toujours chez moi et je n’ai pas été confronté à cette erreur. Difficile vous répondre avec aussi peu d’informations sur votre configuration. Notez, enfin, que nous ne sommes qu’une équipe de passionnés bénévoles, nous n’avons pas le temps de mettre à jour tous les articles à chaque changement, mais vous trouverez probablement réponse à vos problèmes sur le forum officiel de Home Assistant.
Bonne journée 🙂
hello funmsa
ici pareil, je peux bien suivre le tuto et tout semble fonctionner parfaitement, mais aussi ECONNREFUSER 192.xxx.xxx.xxx:1883 dans l’explorer. dommage 🙁
salutations
Bonjour,
merci pour votre tuto, mais je ne comprend pas l’étape 15.
que faut il faire?
merci.
Bonjour,
Il vous faut taper la commande ../bin/mosquitto_passwd -U fichier_mot_de_passe. A personnaliser si le chemin est différent du nôtre qui ressemblait à : /volume1/@appstore/mosquitto/bin
Bonne soirée 🙂
Je réponds à mon propre commentaire, l’adresse du fichier conf à changé mais elle est indiquée lors de l’installation du package : /var/packages/mosquitto/var/mosquitto.conf
Bonjour !
J’ai suivi ce tuto, mais est-ce que la version 2.0 de mosquitto l’a rendu obsolète ou n’ai-je pas compris une étape ? Toujours est-il que ça ne fonctionne pas !
Mon fichier conf n’est pas dans « var » mais à la racine, et il est vide. J’ai tenté de rajouter les lignes dedans et de suivre le tuto jusqu’à la fin malgré tout, et il m’est impossible de me connecter au serveur mqtt.
Félicitations pour vos articles, ça m’aide (bien souvent) et je n’ai pas besoin de commenter d’habitude (parce que d’habitude ça fonctionne)
Bonjour,
Le broker fonctionne toujours chez moi avec cette config, mais je vais contrôler ça car Synology a en effet modifié quelques petites choses depuis le tuto. 😉
Bon week-end
Bonjour,
tout d’abord merci pour vos tutos ça m’éclairci beaucoup sur la domotique.
Étant novice sur Home Assistant, je réalise des tests, j’ai suivi votre tuto pour intégrer Zigbee2MQTT mais je n’y arrive pas.
En utilisant Mosquitto Broker directement dans HA ou par le biais de mon NAS Syno en externe.
Deux questions :
-avec MQTT Explorer comment peut-on être sûr qu’il soit opérationnel sur le NAS ? Car en changeant enlevant le mdp de la configuration, j’obtiens les mêmes valeurs.
https://imagizer.imageshack.com/img923/8707/QvrUiU.jpg
https://imagizer.imageshack.com/img922/6968/1tvtib.jpg
Et quand je lance le module Zigbee2MQTT avec mes paramètres de configuration comme indiqué dans votre tuto :
https://imagizer.imageshack.com/img924/1404/D5OScL.jpg
J’obtiens ce message d’erreur au lancement du module
https://imagizer.imageshack.com/img923/5231/xR5MOv.jpg
Si vous avez une idée, je suis preneur ?
Merci
Cordialement Pierre
Bonjour,
Tout d’abord, merci pour le retour, c’est toujours encourageant. 🙂
Concernant votre broker, s’il fonctionne bien, vous verrez le nombre de messages augmenter assez rapidement dans MQTT Explorer, mais vous devriez aussi y voir une ligne zigbee2mqtt… Ce qui n’est pas le cas sur votre capture. Le broker ne semble donc pas lié à Home Assistant via l’intégration MQTT (Paramètres > Intégration > Ajouter une intégration > MQTT).
Pour ce qui est de votre log d’erreur, il indique ne pas pouvoir se connecter à votre adaptateur ZigBee, c’est donc de ce côté qu’il faut chercher.
Quel dongle utilisez-vous ? Si vous faites tourner HA sur Synology VMM, votre contrôleur USB virtuel doit être en USB 2.0, le 3.0 posant souvent problème. C’est aussi souvent le cas sur Raspberry Pi.
Votre configuration z2m m’interpelle également, en particulier le « home assistant : false » alors qu’il devrait être sur « true ». Tout comme « socat ». Essayez de modifier ces paramètres.
Mon fichier configuration.yaml dans zigbee2mqtt pourrait vous aider :
Zigbee2mqtt est parfois récalcitrant, mais son utilisation vaut le coup ! 😉
Bon courage ! 🙂
Merci pour votre retour,
En fait, je me suis mélangé les pinceaux, car :
concernant le broker MQTT j’ai voulu tester les deux formules :
-sur mon NAS (j’héberge aussi sur VM HA) mais ça n’a pas fonctionné
-directement via HomeAssisant
J’utilise le même Dongle Sonoff 3.0 que décrit dans votre tuto.
J’ai passé sur ma VM le port d’USB 3.0 vers USB 2.0 c’est ok
J’ai repris ta configuration en changeant les ident et mdp et l’adresse du serveur (peut-être rajouter l’information d’où les trouver 😉 )
Par contre, on ne peut pas utiliser en même temps Zigbee Home Automation et Zigbee2MQTT ?
En tout cas l’apparaige fonctionne bien et c’est plus rapide en effet.
Je vais ressayer d’installer Mosquitto MQTT sur mon NAS directe.
Si ça marche, c’est parfait ! 😉 Non, impossible d’utiliser ZHA et Z2M sur le même dongle, mais rien n’empêche de le faire sur deux dongles différents. Par contre, il faut alors modifier les canaux ZigBee afin d’éviter les interférences.
Pour le dongle Sonoff, il peut être utile de préciser l’adaptateur :
Pour Mosquitto, s’il tourne bien sous Home Assistant, autant le laisser à moins d’en avoir besoin par ailleurs… Personnellement, je m’en sers pour d’autres systèmes domotiques (notamment Homey Pro, le Z-Wave, etc.), donc si ma VM Home Assistant est à l’arrêt pour une raison ou une autre, les autres clients doivent pouvoir continuer d’utiliser MQTT. Si MQTT ne sert qu’à Z2M et HA, ça n’est pas forcément bien utile à moins d’externaliser aussi Z2M, mais c’est un autre chantier. 😉
Merci pour votre retour.
Juste pour bien comprendre :
En externalisant sur ma VM via mon NAS, Mosquitto a fonctionné bien, mais je n’arrivais pas à intégrer mes appareils dans HA… en fait, je les trouvais dans le module Zigbee2MQTT, j’arrivais bien à les appairer, mais impossible de les affilier avec une pièce par exemple le salon.
Je ne trouve pas dans les intégrations la liste. Comment peut-on le faire ? Car le module Mosquitto est externalisé.
Merci à vous
Difficile de vous répondre sans voir le log d’erreurs… Vous pouvez le trouver dans Paramètres > Système > Journaux > Zigbee2MQTT (en haut à droite).
A première vue, cela ressemble tout de même à un problème de découverte MQTT.
Si le log confirme, je vous conseille de :
1- Reconfigurer MQTT dans Paramètres > Appareils et services : veillez à bien renseigner le nouveau serveur MQTT ainsi que les nouveaux identifiants. Vous devriez ensuite y voir un certain nombre d’appareils et d’entités.
2- Redémarrer le module complémentaire Zigbee2MQTT.
Si la découverte échoue toujours, essayez d’ajouter ces quelques lignes au fichier /config/zigbee2mqtt/configuration.yaml :
Pensez bien à redémarrer le module z2m après chaque modification. De même, un reboot de Home Assistant peut parfois s’avérer nécessaire.
Bonne chance ! 😁
Bonjour,
Merci pour vos tutos c’est top
Malheureusement je ne parviens pas à lier le broker Mosquitto à Home Assistant,
Pouvez vous me donner la marche à suivre?
Un grand merci pour votre beau boulot
Bonjour,
Merci pour le retour ! 🙂
J’avais justement dans l’idée de faire un court tuto sur le sujet, mais c’est relativement simple. Il suffit d’installer l’intégration MQTT. Personnellement, je me suis contenté de renseigner l’IP locale de mon broker, le port 1883 et mes identifiants au moment de la configuration et tout remonte parfaitement, mais il est possible d’effectuer une configuration plus avancée comme expliqué ici.
Bonne journée