Pour ma domotique, j’utilise principalement MQTT pour la communication entre les sondes, actuateurs, services et serveur.
MQTT est un protocole de messagerie fonctionnement par publication / souscription. Tous les clients se connectent au serveur (le broker) pour publier des messages ou souscrire afin de recevoir les messages ou les deux à la fois.
Installation de Mosquitto
Actuellement, je fonctionne avec Ubuntu 18.10 dans un container sous Proxmox PVE.
Le tuto est établi sur Ubuntu 18.10, mais il devrait parfaitement être applicable également sur des versions supérieures.
Commençons par le début, un update/upgrade
sudo apt update && apt upgrade
Installation de Mosquitto
sudo apt install mosquitto
En l’état, vous avez un Mosquitto parfaitement fonctionnel, mais sans la moindre sécurité.
Placez-vous dans le dossier de Mosquitto. Par défaut /etc/mosquitto
cd /etc/mosquitto
Créer le fichier d’authentification et le premier utilisateur. Après la commande, il vous sera demandé de renseigner un mot de passe.
Configuration de Mosquitto
sudo mosquitto_passwd -c passwordfile VOTRE_PREMIER_UTILISATEUR
Attention ! Le paramètre -c permet de créer le passwordfile si vous l’utilisez par la suite le fichier sera écrasé, et donc tous les utilisateurs perdus.
Créer un autre utilisateur.
sudo mosquitto_passwd passwordfile UTILISATEUR_SUIVANT
Modifiez le fichier de configuration de Mosquitto afin de limiter son accès aux utilisateurs avec un compte. (Positionnez-vous dans /etc/mosquitto)
sudo nano mosquitto.conf
Ajoutez ces deux lignes en fin de fichier et sauvegardez.
allow_anonymous false
password_file /etc/mosquitto/passwordfile
Voilà ! Il est possible d’aller plus loin avec Mosquitto et par exemple, restreindre un utilisateur en lecture ou de restreindre la publication à un seul topic, … Pour cela, penchez-vous sur les ACL. Il est également possible de chiffrer les communications avec le broker et d’y installer un certificat SSL.
Vous pouvez maintenant créer un petit capteur communicant en MQTT
Sources :