Accueil » Domotique » guides domotiques » Comment installer MQTT sur VM Debian Synology ?
guides domotiques

Comment installer MQTT sur VM Debian Synology ?

comment-installer-mqtt-mosquitto-vm-debian-synology

Si vous ne connaissez pas encore MQTT, voilà une bonne occasion de combler ce manque. Il s’agit effectivement d’un service si utile quand on choisit de faire de la domotique DIY qu’il serait dommage de ne pas en profiter, d’autant que l’installation et l’utilisation et on ne peut plus simple.

Finalement, le plus gros problème de MQTT c’est la première approche. En effet, quand on fait quelques recherches on trouve rapidement des explications, mais qui sont parfois assez complexes et cela peut vite décourager de se lancer. Pourtant, quand c’est expliqué de manière simple, le principe de MQTT est assez simple à comprendre.

mqtt-raspberry-pi-guide

Comment installer MQTT sur Raspberry Pi avec Mosquitto

Qui dit Do It Yourself dans la maison connectée, dit bien souvent Raspberry Pi. Vous le savez, au domo-lab, nous sommes friands de projets connectés autour du nano ordinateur. C’est pourquoi j’ai voulu vous parler de MQTT (Message Queuing Telemetry…


Je ne vais pas réexpliquer l’ensemble de ce qu’est MQTT, puisque je l’ai déjà fait dans un autre guide pour le mettre en oeuvre sur un Raspberry Pi. Rapidement, il s’agit d’un protocole de communication qui utilise le réseau IP de la maison comme support (Ethernet ou Wi-Fi), qui se veut très très léger et par conséquent fiable et rapide. De plus, ce protocole qui semble basique de prime abord cache très bien son jeu puisqu’il dispose de QoS ainsi que d’une hiérarchisation intelligente. En bref, on ne parle pas de serveur mais de broker MQTT, et on publie avec des clients sur ce broker dans des topics. Pour les explications simples, complètes et détaillées, je vous invite à consulter cet article.

Passons à présent au sujet principal : Comment installer MQTT sur une machine virtuelle Synology ?

Pourquoi installer MQTT sur une VM ?

La question est pertinente, je dis juste avant que MQTT est très léger, alors pourquoi dédier une VM spécifiquement à ce service ? En effet, un Raspberry Pi peut tout à fait faire l’affaire, mais j’aime hiérarchiser les choses, tout comme le protocole aime le faire, j’aime bien dissocier les usages. D’autant qu’une machine virtuelle ne coûte rien, encore plus pour ce type de serveur puisque le minimum de ressources allouées sera nécessaire. Toutefois, vous pouvez mutualiser cet usage avec d’autres. J’ai par exemple dans mon installation domotique une VM qui se nomme “services” et qui héberge uniquement des outils pour la maison connectée. Sachez enfin que MQTT peut aussi être installé sur le même OS que celui qui héberge votre serveur domotique (Jeedom ou Home Assistant). Mais comme je le dis plus haut, j’aime bien dissocier les choses.

Enfin, gros atout de la VM, cela ne consomme pas plus d’énergie puisque votre NAS est déjà constamment alimenté et surtout vous avez la sécurisation continue de vos données, puisque le NAS dispose de cette faculté à faire de la redondance de ses disques via le RAID, en plus du fait que vous pouvez effectuer régulièrement des images (snapshots) de vos serveurs virtuels afin de pouvoir les restaurer en deux clics en cas de problème.

Temps nécessaire : 40 minutes

Il faudra compter environ 30 à 40 minutes pour cette installation, le plus long étant finalement l’installation de Debian, car l’installation du serveur MQTT en lui-même ne prend pas plus de 2 minutes. Astuce pour la prochaine fois, profitez de ce guide pour installer une Debian à jour et dupliquez-la avant de passer à l’installation de MQTT. Vous aurez alors toujours une Debian clean prête à installer n’importe quoi sans avoir à refaire cette longue phase d’installation d’OS.

  1. Créer une nouvelle VM sur Synology Virtuel Manager

    Créez une nouvelle Machine Virtuelle (linux) et attribuez lui une configuration light. Pas besoin d’une foudre de guerre pour faire tourner MQTT, c’est tout l’avantage.
    mqtt-vm-synology-nas-creation

  2. Choisir une image de Debian pour démarrer l’installation au boot de la VM

    Terminer la création de la VM en choisissant une version de Debian à y installer. L’installation démarrera au premier boot et vous n’aurez plus qu’à suivre les différentes étapes d’installation. Pas utile d’installer la couche graphique sur votre Debian, les performances n’en seront que meilleures !
    iso-boot-vm-synology-nas

  3. Installer Mosquitto sur la VM

    Une fois la machine virtuelle demarrée, connectez-vous dessus en SSH, à l’aide de Putty (windows) ou le terminal (Mac OS / Linux), puis lancez l’installation du paquet MQTT à l’aide de la ligne de commande suivante :

    sudo apt-get install mosquitto

  4. Vérifier le bon fonctionnement de mosquitto

    Si l’installation s’est déroulée sans erreur, votre broker MQTT est normalement opérationnel, mais vous pouvez toutefois jouer la commande de vérification suivante pour confirmer :

    systemctl status mosquitto

  5. Tester la connexion avec le nouveau broker MQTT

    L’installation de MQTT est on ne peut plus simple comme nous avez pu le constater. Il ne reste plus qu’à initier la première connexion au serveur pour le tester. Pour cela, je vous conseille le très bon logiciel MQTT explorer, qui est un client très pratique pour découvrir et suivre les différents topics de votre maison connectée.

    Les paramètres de connexion sont simples également. Par défaut, vous n’avez qu’à disposer de l’adresse IP de votre VM. Le port par défaut est toujours 1883 et il n’y a pas d’authentification par défaut.
    connexion-mqtt-broker-settings

  6. Visualiser les différents topics de la maison

    Une fois connecté, si vous avez déjà des objets configurés pour dialoguer avec votre serveur (broker) MQTT, vous commencez déjà à les voir apparaître.
    broker-mqtt-serveur-topics-mqtt-explorer

  7. Créer un topic de test

    Maintenant, créez un nouveau topic de test pour commencer à remonter l’état d’un périphérique dans MQTT.
    Pour cela utiliser le champ “topic” dans la partie droite de la fenêtre de MQTT Explorer et définissez votre premier topic :
    Labo/test/device/etat/
    Et publiez-le pour le créer :
    creation-topic-mqtt-explorer-mosquitto-vm-synology

  8. Visualiser le topic créé

    Vous visualisez alors instantanément votre nouveau topic
    mqtt-explorer-visualiser-arborescence-topics

    Votre serveur MQTT est maintenant prêt pour recueillir les états de tous les péripheriques de votre maison connectée.

Pour aller plus loin

Ajoutez des identifiants à votre serveur MQTT

Même si ce n’est pas obligatoire car votre serveur MQTT reste sur votre réseau local, il est toutefois possible d’ajouter une authentification si vous le désirez. Pour ce faire, créez simplement un nouvel utilisateur à l’aide de la commande ci-dessous pour créer l’utilisateur dans le fichier passwd :

sudo mosquitto_passwd -c /etc/mosquitto/passwd user

Si vous désirez renforcer la sécurité de votre nouveau broker MQTT vous pouvez également éditer le fichier /etc/mosquitto/mosquitto.conf et y ajouter les lignes suivantes :

allow_anonymous false
password_file /etc/mosquitto/passwd

Cela aura pour but d’interdir l’accès au serveur aux anonymes et autoriser uniquement votre utilisateur identifié.

Il sera nécessaire de redémarrer MQTT pour prendre en compte les changements. Pour cela, vous devez utiliser la commande suivante :

systemctl restart mosquitto

Fixez l’adresse de votre VM dans votre routeur DHCP

Afin que l’adresse IP de votre nouveau serveur MQTT ne change jamais, il est nécessaire de créer une réservation de cette adresse IP dans votre routeur. Pour cela, que ce soit un switch, ou plus communément votre box internet qui porte le DHCP de votre réseau, la technique est toujours la même quelque soit le périphérique. Il faut simplement se rendre dans les paramètres, onglet DHCP, recherchez le bail en cours de votre serveur et créez une réservation.

Conclusion

Vous savez à présent comment mettre en oeuvre un serveur MQTT au sein de votre maison connectée. A vous les projets domotiques DIY ou l’étape suivante qui est l’installation d’une passerelle Zigbee2MQTT (qui peut d’ailleurs elle aussi être hébergée sur votre VM services).

Enfin, il restera à implémenter votre broker MQTT sous la domotique Jeedom ou Home Assistant pour commencer à faire de la domotique efficace avec ce protocole léger et rapide.

Domo-blog a fait le choix de ne pas polluer votre lecture avec de la publicité. Vous trouverez cependant des liens affiliés vers les produits recommandés dans le contenu. Cela ne perturbe en rien votre experience de lecture et permet de financer le blog.
Vous pouvez également soutenir le blog en m'offrant un café sur Ko-Fi.


discord

Restez connecté aux nouveautés domotiques, inscrivez-vous à notre newsletter

A propos de cet auteur

Aurélien Brunet

Chef de projet informatique, anciennement informaticien spécialisé dans l'IT industrielle, le réseau et les bases de données. Un peu geek à mes heures perdues, je me suis mis à la domotique en 2012 pour sécuriser mon domicile.
Depuis, je teste, j’installe, je code, j’améliore mon installation et surtout, je partage avec vous mon expertise via ce blog et mon podcast Domotique Chronique pour améliorer votre quotidien dans la maison connectée !

1 Comment

Cliquez ici pour poster un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

construction et domotique
promos domotique
Choix box domotique
promos domotique

Pourquoi installer MQTT sur une VM ?

La question est pertinente, je dis juste avant que MQTT est très léger, alors pourquoi dédier une VM spécifiquement à

Pour aller plus loin

Ajoutez des identifiants à votre serveur MQTT

Conclusion

Vous savez à présent comment mettre en oeuvre un serveur MQTT au sein de votre maison connectée. A vous les

  • Pourquoi installer MQTT sur une VM ?
  • Pour aller plus loin
  • Conclusion