[RESOLU] Problème de connexion mqtt avec sonoff

Bonjour,

J’ai un petit soucis avec mes Sonoff Dual qui vient d’arriver aujourd’hui après 2 mois d’utilisation quotidienne pour piloter mes radiateurs sans problème
Je les avais configuré sur Gladys en MQTT et HTTP

Dans la console de l’interface Tasmota je vois :
18:56:40 MQT: Connect failed to “MonIP”:1883, rc -2. Retry in 10 sec

Je n’avais rien changé depuis un bon moment dans ma configuration et aujourd’hui je ne peux plus les piloter via MQTT ni recevoir leurs états.
Je peux cependant les piloter par HTTP et recevoir leurs états

Je vois aujourd’hui que tous mes Sonoff clignote en bleu
Les 5 Tasmota de l’appartement sont dans le même état, ils sont cependant bien connecté au wifi
Dans la documentation il semble que cela signifie qu’ils ne sont pas connecté au Wifi et/ou MQTT

La configuration des Tasmota n’ont pas changé et celle de Gladys non plus

Cependant je n’ai pas d’idée d’où cela peut venir
Est-ce que quelqu’un aurait une idée ?

En vous remerciant

Edit : J’ai changé toutes mes scènes et mes affichages du dashboard pour passer en HTTP. Cela fonctionne mais il semble y avoir un problème avec MQTT
J’ai désactivé le MQTT sur les Tasmota pour qu’ils arrêtent de clignoter en bleu

Tu avais mis quoi dans les paramètres du mqtt ?

Je ne l’avais pas changé depuis son installation :
Côté gladys :
Utiliser un broker dans un conteneur Docker : Activé
mqtt://localhost
Id et mot de passe

Côté Tasmota :

Bon, j’ai le même problème depuis quelques heures, juste après une commande ‘apt upgrade’ et un reboot via SSH qui a installé, je pense, un nouveau rpi-firmware entre autres.
Plus aucun Tasmota ne répond…
Hasard?

Faites un docker ps -a s’il vous plait :slight_smile:

Voici :

CONTAINER ID   IMAGE                                COMMAND                  CREATED       STATUS       PORTS      NAMES
9e9a56caf879   eclipse-mosquitto:latest             "/docker-entrypoint.…"   5 hours ago   Up 2 hours              eclipse-mosquitto
0087650424a3   containrrr/watchtower:armhf-latest   "/watchtower --clean…"   3 weeks ago   Up 2 hours   8080/tcp   watchtower
7959384793d9   gladysassistant/gladys:v4-arm        "docker-entrypoint.s…"   4 weeks ago   Up 2 hours              gladys

Et la console de Tasmota dit:

01:02:54 MQT: Attempting connection...
01:02:54 MQT: Connect failed to 192.168.1.55:1883, rc -2. Retry in 10 sec
01:02:55 QPC: Reset
01:03:07 MQT: Attempting connection...
01:03:07 MQT: Connect failed to 192.168.1.55:1883, rc -2. Retry in 20 sec
01:03:28 MQT: Attempting connection...
01:03:28 MQT: Connect failed to 192.168.1.55

L’adresse du broker est bonne ?

Que raconte mosquitto ? => docker logs eclipse-mosquitto

1612550948: mosquitto version 2.0.7 starting
1612550948: Config loaded from /mosquitto/config/mosquitto.conf.
1612550948: Starting in local only mode. Connections will only be possible from clients running on this machine.
1612550948: Create a configuration file which defines a listener to allow remote access.
1612550948: Opening ipv4 listen socket on port 1883.
1612550948: Opening ipv6 listen socket on port 1883.
1612550948: mosquitto version 2.0.7 running
1612561344: mosquitto version 2.0.7 terminating
1612561486: mosquitto version 2.0.7 starting
1612561486: Config loaded from /mosquitto/config/mosquitto.conf.
1612561486: Starting in local only mode. Connections will only be possible from clients running on this machine.
1612561486: Create a configuration file which defines a listener to allow remote access.
1612561486: Opening ipv4 listen socket on port 1883.
1612561486: Opening ipv6 listen socket on port 1883.
1612561486: mosquitto version 2.0.7 running
1612562801: mosquitto version 2.0.7 terminating
1612562937: mosquitto version 2.0.7 starting
1612562937: Config loaded from /mosquitto/config/mosquitto.conf.
1612562937: Starting in local only mode. Connections will only be possible from clients running on this machine.
1612562937: Create a configuration file which defines a listener to allow remote access.
1612562937: Opening ipv4 listen socket on port 1883.
1612562937: Opening ipv6 listen socket on port 1883.
1612562937: mosquitto version 2.0.7 running

Pas super intéressant, non?
Sauf si cela vient du ‘local only mode’…

Le log de Gladys au moment de l’exécution du Apt upgrade:

npm ERR! errno 1
npm ERR! gladys-server@ start:prod: `cross-env NODE_ENV=production node index.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the gladys-server@ start:prod script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2021-02-05T21_42_24_248Z-debug.log

> gladys-server@ start:prod /src/server
> cross-env NODE_ENV=production node index.js

Initialising OpenZWave 1.6.1051 binary addon for Node.JS.
        OpenZWave Security API is ENABLED
        ZWave device db    : /usr/local/etc/openzwave
        User settings path : /src/server/services/zwave/node_modules/openzwave-shared/build/Release/../../
        Option Overrides : --Logging false --ConsoleOutput false --SaveConfiguration true
2021-02-05T22:45:08+0100 <info> service.startAll.js:30 () Service example was manually stopped, so it is ignored at startup
2021-02-05T22:45:08+0100 <info> service.startAll.js:30 () Service philips-hue was manually stopped, so it is ignored at startup
2021-02-05T22:45:08+0100 <info> service.startAll.js:30 () Service xiaomi was manually stopped, so it is ignored at startup
2021-02-05T22:45:08+0100 <info> service.startAll.js:30 () Service zwave was manually stopped, so it is ignored at startup
2021-02-05T22:45:08+0100 <info> service.startAll.js:30 () Service ewelink was manually stopped, so it is ignored at startup
2021-02-05T22:45:08+0100 <info> service.startAll.js:30 () Service tp-link was manually stopped, so it is ignored at startup
2021-02-05T22:45:08+0100 <info> index.js:13 (Object.start) Starting usb service
2021-02-05T22:45:09+0100 <info> connect.js:38 (MqttClient.<anonymous>) Connected to MQTT server mqtt://localhost
2021-02-05T22:45:09+0100 <info> subscribe.js:12 (MqttHandler.subscribe) Subscribing to MQTT topic gladys/master/#
2021-02-05T22:45:09+0100 <info> index.js:20 (Object.start) Starting Open Weather service
2021-02-05T22:45:09+0100 <info> index.js:19 (Object.start) Starting telegram service
2021-02-05T22:45:09+0100 <info> index.js:15 (Object.start) Starting Bluetooth service
2021-02-05T22:45:10+0100 <info> subscribe.js:12 (MqttHandler.subscribe) Subscribing to MQTT topic stat/+/+
2021-02-05T22:45:10+0100 <info> subscribe.js:12 (MqttHandler.subscribe) Subscribing to MQTT topic tele/+/+
2021-02-05T22:45:10+0100 <info> index.js:63 (Server.<anonymous>) Server listening on port 80 
2021-02-05T22:54:48+0100 <info> unsubscribe.js:10 (MqttHandler.unsubscribe) Unsubscribing to MQTT topic stat/+/+
2021-02-05T22:54:48+0100 <info> unsubscribe.js:10 (MqttHandler.unsubscribe) Unsubscribing to MQTT topic tele/+/+
2021-02-05T22:54:50+0100 <info> subscribe.js:12 (MqttHandler.subscribe) Subscribing to MQTT topic stat/+/+
2021-02-05T22:54:50+0100 <info> subscribe.js:12 (MqttHandler.subscribe) Subscribing to MQTT topic tele/+/+
2021-02-05T22:59:56+0100 <info> unsubscribe.js:10 (MqttHandler.unsubscribe) Unsubscribing to MQTT topic tele/+/+
2021-02-05T22:59:56+0100 <info> subscribe.js:12 (MqttHandler.subscribe) Subscribing to MQTT topic tele/+/+
2021-02-05T23:00:58+0100 <info> unsubscribe.js:10 (MqttHandler.unsubscribe) Unsubscribing to MQTT topic stat/+/+
2021-02-05T23:00:58+0100 <info> unsubscribe.js:10 (MqttHandler.unsubscribe) Unsubscribing to MQTT topic tele/+/+
2021-02-05T23:01:05+0100 <info> subscribe.js:12 (MqttHandler.subscribe) Subscribing to MQTT topic stat/+/+
2021-02-05T23:01:05+0100 <info> subscribe.js:12 (MqttHandler.subscribe) Subscribing to MQTT topic tele/+/+
2021-02-05T23:02:00+0100 <info> unsubscribe.js:10 (MqttHandler.unsubscribe) Unsubscribing to MQTT topic tele/+/+
2021-02-05T23:02:00+0100 <info> subscribe.js:12 (MqttHandler.subscribe) Subscribing to MQTT topic tele/+/+
2021-02-05T23:06:41+0100 <warn> connect.js:60 (MqttClient.<anonymous>) Disconnected from MQTT server
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! gladys-server@ start:prod: `cross-env NODE_ENV=production node index.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the gladys-server@ start:prod script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2021-02-05T22_06_41_570Z-debug.log

> gladys-server@ start:prod /src/server
> cross-env NODE_ENV=production node index.js

Initialising OpenZWave 1.6.1051 binary addon for Node.JS.
        OpenZWave Security API is ENABLED
        ZWave device db    : /usr/local/etc/openzwave
        User settings path : /src/server/services/zwave/node_modules/openzwave-shared/build/Release/../../
        Option Overrides : --Logging false --ConsoleOutput false --SaveConfiguration true
2021-02-05T23:09:18+0100 <info> service.startAll.js:30 () Service example was manually stopped, so it is ignored at startup
2021-02-05T23:09:18+0100 <info> service.startAll.js:30 () Service xiaomi was manually stopped, so it is ignored at startup
2021-02-05T23:09:18+0100 <info> service.startAll.js:30 () Service zwave was manually stopped, so it is ignored at startup
2021-02-05T23:09:18+0100 <info> service.startAll.js:30 () Service ewelink was manually stopped, so it is ignored at startup
2021-02-05T23:09:18+0100 <info> service.startAll.js:30 () Service tp-link was manually stopped, so it is ignored at startup
2021-02-05T23:09:18+0100 <info> service.startAll.js:30 () Service philips-hue was manually stopped, so it is ignored at startup
2021-02-05T23:09:18+0100 <info> index.js:13 (Object.start) Starting usb service
2021-02-05T23:09:19+0100 <info> index.js:19 (Object.start) Starting telegram service
2021-02-05T23:09:19+0100 <info> connect.js:38 (MqttClient.<anonymous>) Connected to MQTT server mqtt://localhost
2021-02-05T23:09:19+0100 <info> subscribe.js:12 (MqttHandler.subscribe) Subscribing to MQTT topic gladys/master/#
2021-02-05T23:09:19+0100 <info> index.js:20 (Object.start) Starting Open Weather service
2021-02-05T23:09:19+0100 <info> index.js:15 (Object.start) Starting Bluetooth service
2021-02-05T23:09:20+0100 <info> subscribe.js:12 (MqttHandler.subscribe) Subscribing to MQTT topic stat/+/+
2021-02-05T23:09:20+0100 <info> subscribe.js:12 (MqttHandler.subscribe) Subscribing to MQTT topic tele/+/+
2021-02-05T23:09:20+0100 <info> index.js:63 (Server.<anonymous>) Server listening on port 80 

Bon, j’ai trouvé une solution mais il y a quelque chose de pas normal.
J’ai installé le broker mosquitto externe (hors docker) et désactivé celui de Gladys.
Tout refonctionne (les périphériques mqtt ne fonctionnaient plus non plus) !
Mais il serait intéressant de savoir si c’est de ma faute ou si ça risque d’arriver à d’autres !
Je peux fournir tous les logs que vous désirez, si vous voulez investiguer :wink:

Bah c’est clairement ça, tout ce qui se connecte depuis une autre machine est refusé.

A mon avis c’est une nouvelle option par défaut.

EDIT:

Après un peu de lecture et d’expérimentation de mon côté , j’ai réussi à reproduire.
Il y’a peu une nouvelle option a vue le jour. Bon en fait elle existait déjà mais le comportement par défaut a changer.

Par défaut les conteneurs mosquitto n’écoute que sur localhost.

Pour modifier ce comportement il faut ajouter ça dans la conf mosquitto

listener 1883
1 « J'aime »

Pour confirmer avant d’allez plus loin, est ce que l’un de vous deux peux executer cette commande:

grep -qF -- "listener 1883" /var/lib/gladysassistant/mosquitto/mosquitto.conf || sudo echo "listener 1883" >> /var/lib/gladysassistant/mosquitto/mosquitto.conf

Puis redémarrer

@GBoulvin dans ton cas il faudra stopper ton mosquitto installé manuellement

Alors…
La commande me renvoie systématiquement un “Permission non accordée”. Je l’ai donc ajouté manuellement.
Mais en plus, je n’arrive plus à désactiver le mosquitto installé :crazy_face:
Toujours est-il que ça fonctionne, mais je ne sais pas comment (c’est la philosophie de Gladys, non ? :stuck_out_tongue: )

Bon, finalement, j’ai réussi à désactiver mon “second” broker et exécuter la commande proposée.
Voici ce que le log issu de docker dit :

1612709888: mosquitto version 2.0.7 starting
1612709888: Config loaded from /mosquitto/config/mosquitto.conf.
1612709888: Opening ipv4 listen socket on port 1883.
1612709888: Opening ipv6 listen socket on port 1883.
1612709888: mosquitto version 2.0.7 running
1612710037: mosquitto version 2.0.7 terminating
1612710038: mosquitto version 2.0.7 starting
1612710038: Config loaded from /mosquitto/config/mosquitto.conf.
1612710038: Opening ipv4 listen socket on port 1883.
1612710038: Opening ipv6 listen socket on port 1883.
1612710038: mosquitto version 2.0.7 running
1612710090: mosquitto version 2.0.7 terminating
1612710157: mosquitto version 2.0.7 starting
1612710157: Config loaded from /mosquitto/config/mosquitto.conf.
1612710157: Opening ipv4 listen socket on port 1883.
1612710157: Opening ipv6 listen socket on port 1883.
1612710157: mosquitto version 2.0.7 running

Super !
Mais en fait, ça ne fonctionne pas. Malgré plusieurs reboot, aucun accès à mes périphériques mqtt :cry:
Et pourtant :


Une autre idée ?

Salut, ça aurait été bien de faire un nouveau sujet sur ton soucis, parce que là depuis hier ça dénature un peu le [tutoriel]…

1 « J'aime »

Ton mosquitto crash en boucle.

Peux tu me donner le contenu du fichier suivant ?
/var/lib/gladysassistant/mosquitto/mosquitto.conf

Voici :

allow_anonymous false
connection_messages false
password_file /mosquitto/config/mosquitto.passwd
listener 1883

Est-ce qu’à terme, cela pose un problème que j’utilise eclipse-mosquitto en tant que service hors de Docker ou je peux sans souci laisser ça comme ça?
Est-ce possible que j’aie une latence qui n’existait pas avant ou suis-je parano?

Bonjour à tous, j’ai les mêmes symptômes: aucune config ou paramètre supplémentaire sur une installation qui marchait bien et plus de comm mqtt sur les radiateurs sonoff. Je suis en Gladys 4.0.8 sur une rasp installée via l’image Gladys Assistant.

Suivant les conseils ci-dessus.
Je me suis connecté en ssh sur la rasp
En utilisant vi, j’ai ajouté “listener 1883” au fichier /var/lib/gladysassistant/mosquitto/mosquitto.conf
J’ai ensuite redémarré ma rasp

Dans Gladys Assistant, j’ai dû reconfigurer mon service mqtt.

Tout refonctionne comme avant. :slight_smile:

merci

2 « J'aime »

Pour information, le problème a été réglé avec Gladys v4.1.0.

@AlexTrovato a codé une routine qui met à jour automatiquement le fichier de conf + bloque la version du container a mosquitto 2.0 pour éviter tout problème à l’avenir.