Page 1 sur 1

Configuration de Mosquitto sur Raspberry pi

Publié : 11 avr. 2023, 21:23
par ybeco
Bonjour, j'ai un problème avec Mosquitto.
Merci pour le temps que vous prenez à aider les débutants en domotique comme moi.
Je viens tout fraîchement d'installer "Raspberry Pi OS" sur un Raspberry Pi 3

Code : Tout sélectionner

yonnel@raspberrypi:~ $ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
Puis j'ai installé Mosquitto version 2.0.11

Code : Tout sélectionner

sudo apt-get update
sudo apt-get install mosquitto
sudo apt-get install mosquitto-clients
Au démarrage, Mosquitto se lance automatiquement :

Code : Tout sélectionner

yonnel@raspberrypi:~ $ systemctl status mosquitto
● mosquitto.service - Mosquitto MQTT Broker
     Loaded: loaded (/lib/systemd/system/mosquitto.service; enabled; vendor pre>
     Active: active (running) since Tue 2023-04-11 20:30:07 CEST; 7min ago
       Docs: man:mosquitto.conf(5)
             man:mosquitto(8)
    Process: 2351 ExecStartPre=/bin/mkdir -m 740 -p /var/log/mosquitto (code=ex>
    Process: 2352 ExecStartPre=/bin/chown mosquitto /var/log/mosquitto (code=ex>
    Process: 2353 ExecStartPre=/bin/mkdir -m 740 -p /run/mosquitto (code=exited>
    Process: 2354 ExecStartPre=/bin/chown mosquitto /run/mosquitto (code=exited>
   Main PID: 2355 (mosquitto)
      Tasks: 1 (limit: 779)
        CPU: 457ms
     CGroup: /system.slice/mosquitto.service
             └─2355 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf

avril 11 20:30:07 raspberrypi systemd[1]: Starting Mosquitto MQTT Broker...
avril 11 20:30:07 raspberrypi systemd[1]: Started Mosquitto MQTT Broker.
Cependant, un Wemos essaye de lui envoyer des infos (un compteur d'essai) au 192.168.0.23:1883
Mais il n'y arrive pas :

Serial monitor de l'IDE Arduino :

Code : Tout sélectionner

Connecting to TIGO-2859
.......
WiFi connected
IP address Wemos: 
192.168.0.24
Attempting MQTT connection...failed, rc=-2 try again in 5 seconds
Mosquitto semble "écouter" les requêtes seulement en local...

Code : Tout sélectionner

yonnel@raspberrypi:~ $ sudo netstat -tlnp | grep mosquitto
tcp        0      0 127.0.0.1:1883          0.0.0.0:*               LISTEN      2355/mosquitto      
tcp6       0      0 ::1:1883                :::*                    LISTEN      2355/mosquitto      
Alors j'ai ajouté la ligne
--> listener 1883 192.168.0.23
dans /etc/mosquitto/mosquitto.conf

Code : Tout sélectionner

ssh:~ $ sudo nano /etc/mosquitto/mosquitto.conf

  GNU nano 5.4              /etc/mosquitto/mosquitto.conf *                     
# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example

pid_file /run/mosquitto/mosquitto.pid

persistence true
persistence_location /var/lib/mosquitto/

log_dest file /var/log/mosquitto/mosquitto.log

include_dir /etc/mosquitto/conf.d

listener 1883 192.168.0.23
Puis j'ai redémarré le Mosquitto à la main :

Code : Tout sélectionner

sudo systemctl restart mosquitto
Avec ça, le Wemos arrive à envoyer son message, celui-ci semble reçu, mais n'est pas accepté :

Serial monitor de l'IDE Arduino :

Code : Tout sélectionner

Connecting to TIGO-2859
.......
WiFi connected
IP address Wemos: 
192.168.0.24
Attempting MQTT connection...failed, rc=5 try again in 5 seconds
1/ Il faut que je trouve pourquoi il n'est pas accepté... Il semble que par défaut il n'y ait pas besoin d'identifiant et de mot de passe avec Mosquitto. Peut-être qu'il est bloqué par le routeur... Mais c'est louche parce que, si je ne me trompe pas, le code rc=5 signifie que la requête est refusée par Mosquitto...

Code du Wemos :

Code : Tout sélectionner

#include <ESP8266WiFi.h>
#include <PubSubClient.h>

const char* ssid = "TIGO-2859";
const char* password = "2NB144203536";
const char* mqtt_server = "192.168.0.23";

WiFiClient espClient;
PubSubClient client(espClient);

void setup() {
  Serial.begin(115200);
  setup_wifi();
  client.setServer(mqtt_server, 1883);
}

void setup_wifi() {
  delay(10);
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address Wemos: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  if (!client.connected()) {
    reconnect();
  }
  client.loop();

  for (int i = 100; i >= 0; i--) {
    String payload = String(i);
    client.publish("countdown", payload.c_str());
    delay(1000);
  }
}

void reconnect() {
  while (!client.connected()) {
    Serial.print("Attempting MQTT connection...");
    if (client.connect("ESP8266Client")) {
      Serial.println("connected");
    } else {
      Serial.print("failed, rc=");
      Serial.print(client.state());
      Serial.println(" try again in 5 seconds");
      delay(5000);
    }
  }
}
2/ Mosquitto ne démarre plus jamais tout seul au démarrage du Raspberry Pi après avoir ajouté la ligne :
listener 1883 192.168.0.23
dans le fichier :
/etc/mosquitto/mosquitto.conf

Quand je la commente, Mosquitto redémarre à nouveau au démarrage...

Aucun de ces problèmes n’apparaît dans les tutoriels que j'ai suivis, dont celui-ci :
https://www.youtube.com/watch?v=DBL26A3oBAk

Tout semble fonctionner directement... Moi, Je débute en domotique, mais ça fait 2 jours que je galère :roll: , juste pour obtenir le diagnostique ci-dessus...

Auriez-vous une idée d'où peuvent venir ces problèmes ?

Merci

Re: Configuration de Mosquitto sur Raspberry pi

Publié : 11 avr. 2023, 22:01
par Neutrino
Bonjour ybeco
Voici mon fichier mosquitto.conf qui fonctionne :

Code : Tout sélectionner

# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example

persistence true
persistence_location /var/lib/mosquitto/

log_dest file /var/log/mosquitto/mosquitto.log

include_dir /etc/mosquitto/conf.d

listener 1883

## Authentication ##
allow_anonymous true

Re: Configuration de Mosquitto sur Raspberry pi

Publié : 11 avr. 2023, 22:14
par Keros
Bonjour ybeco et bienvenu sur le forum :)

Je viens de déplacer ton sujet dans la section dédiée au MQTT.

Re: Configuration de Mosquitto sur Raspberry pi

Publié : 12 avr. 2023, 03:51
par ybeco
@Neutrino,

Ok, je vais essayer ça.

De mon côté, j'avais réussi en mettant un ID et un password avec la ligne suivante :

Code : Tout sélectionner

sudo mosquitto_passwd -c /etc/mosquitto/passwd ID
Et en ajoutant ceci dans /etc/mosquitto/mosquitto.conf :

Code : Tout sélectionner

allow_anonymous false 
password_file /etc/mosquitto/passwd
listener 1883 192.168.0.23
Cependant, Le serveur Mosquitto ne se lance plus au démarrage...

Je vais étudier ta solution.

Merci !


@Keros,

Merci !

Pas de soucis.
Merci pour l'aide que vous apportez aux néophytes !