Installer Mosquitto MQTT sur Raspberry Pi : le guide sécurisé pour Home Assistant et vos capteurs

Vous voulez relier des capteurs, Home Assistant et des ESP32 sans cloud ? Mosquitto transforme un Raspberry Pi en broker MQTT local. Ce guide l’installe, bloque les connexions anonymes et valide un échange réel.

Les 3 points clés

  • Mosquitto distribue les publications MQTT aux appareils abonnés.
  • Un compte dédié protège le broker.
  • Deux commandes testent la chaîne avant Home Assistant.

Résultat attendu

Votre Pi écoute MQTT sur le LAN, demande un identifiant et affiche un message de test. C’est une base fiable pour Home Assistant, Zigbee2MQTT, Node-RED et vos objets connectés.

Architecture MQTT entre ESP32, Raspberry Pi Mosquitto et Home Assistant
Les clients publient ou s’abonnent ; Mosquitto distribue les messages.

MQTT et Mosquitto : à quoi servent-ils ?

MQTT est un protocole léger organisé en sujets, par exemple maison/salon/temperature. Un capteur publie sa mesure ; Home Assistant s’y abonne. Mosquitto est le broker libre qui fait le lien. Un Pi 3, 4, 5 ou Zero 2 W sous Raspberry Pi OS convient.

Prérequis

Élément Conseil
Réseau Ethernet et réservation DHCP recommandés
Accès SSH ou terminal avec sudo
Sécurité Ne redirigez jamais le port 1883 depuis la box

Étape 1 — Mettre Raspberry Pi OS à jour

sudo apt update
sudo apt full-upgrade -y

Étape 2 — Installer Mosquitto et les clients de test

sudo apt install -y mosquitto mosquitto-clients
sudo systemctl enable --now mosquitto
systemctl is-active mosquitto

La réponse attendue est active. Sinon : sudo journalctl -u mosquitto -n 50 --no-pager.

Étape 3 — Créer un compte MQTT

Créez l’utilisateur maison avec un mot de passe long. -c crée le fichier : ne l’utilisez plus pour ajouter un autre compte.

sudo mosquitto_passwd -c /etc/mosquitto/passwd maison
sudo chown mosquitto:mosquitto /etc/mosquitto/passwd
sudo chmod 640 /etc/mosquitto/passwd

Étape 4 — Interdire l’anonyme et écouter le LAN

Créez un fichier de configuration séparé :

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

Ajoutez :

listener 1883
allow_anonymous false
password_file /etc/mosquitto/passwd
persistence true
persistence_location /var/lib/mosquitto/

Appliquez puis contrôlez :

sudo systemctl restart mosquitto
sudo systemctl status mosquitto --no-pager

Le port 1883 n’est pas chiffré : gardez-le sur le LAN. Pour l’accès distant, utilisez un VPN plutôt qu’une ouverture de port.

Étape 5 — Tester un message

Dans le premier terminal :

mosquitto_sub -h 127.0.0.1 -u maison -P 'VOTRE_MOT_DE_PASSE' -t 'maison/test' -v

Dans le second :

mosquitto_pub -h 127.0.0.1 -u maison -P 'VOTRE_MOT_DE_PASSE' -t 'maison/test' -m 'Bonjour depuis le Raspberry Pi'

Le premier affiche maison/test Bonjour depuis le Raspberry Pi. Depuis un autre appareil, remplacez 127.0.0.1 par l’IP LAN du Pi.

Checklist pour tester Mosquitto et les messages MQTT
Service actif, authentification, message reçu et réseau privé : les contrôles essentiels.

Vidéo : voir l’installation en pratique

Connecter Home Assistant ou un ESP32

Dans Home Assistant, ajoutez l’intégration MQTT, saisissez l’IP du Pi, le port 1883 et le compte maison. Dans un ESP32, utilisez les mêmes paramètres. Préférez des sujets clairs : maison/cuisine/temperature.

Dépannage

  • Connection refused : vérifiez l’IP, le statut et sudo ss -ltnp | grep 1883.
  • Not authorized : contrôlez le compte puis réinitialisez avec sudo mosquitto_passwd /etc/mosquitto/passwd maison.
  • Client distant muet : testez d’abord en local, puis avec l’IP LAN, jamais l’IP publique.
  • Service en échec : lisez journalctl -u mosquitto et vérifiez la configuration ajoutée.

Variantes et limites

Pour isoler les usages, créez un compte par appareil et des ACL. TLS chiffre MQTT mais impose la gestion des certificats. Home Assistant OS propose aussi un module MQTT, pratique si le Pi lui est dédié.

Questions fréquentes

Faut-il un Pi puissant ?

Non. Un Pi 3 ou Zero 2 W suffit généralement pour quelques automatismes.

Dois-je ouvrir MQTT sur Internet ?

Non. Gardez MQTT sur le LAN et passez par un VPN à distance.

Comment vérifier l’activation au démarrage ?

systemctl is-enabled mosquitto doit répondre enabled.

Sources officielles


Vincent Vandegans — Passionné de Raspberry Pi, Linux et projets maker, Vincent partage des guides pratiques pour construire une maison connectée fiable et compréhensible.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *