JMQTT et Shelly

Tags: #<Tag:0x00007fa7be81b100>

Bonjours à tous,

Je rencontre une difficulté à intégrer mon module shelly à jeedom avec le plugin Jmqtt.
J’ai suivi à la lettre ce tuto : https://forum.jeedom.com/viewtopic.php?t=41109
Arrivé au point N° 5 quand je clique sur inclusion, jeedom ne remonte jamais et si j’active/désactive mon shelly aucune commande ne remonte.
Dans les logs je n’ai aucune erreur.
Dans l’onglet santé je suis en OK partout, dans la configuration du plugin le daemon est en OK.

Voici les logs du brocker

[2021-03-27 13:37:15][INFO] : active le mode d'inclusion automatique
[2021-03-27 13:37:15][INFO] : arrête le démon
[2021-03-27 13:37:16][INFO] : démarre le démon
[2021-03-27 13:37:16][DEBUG] : daemon starts, pid is 25976
[2021-03-27 13:37:16][DEBUG] : status cmd id: 747, topic:
[2021-03-27 13:37:16][INFO] : Connect to mosquitto: Host=localhost, Port=1883, Id=jeedom
[2021-03-27 13:37:16][DEBUG] : broker msg: Client jeedom sending CONNECT
[2021-03-27 13:37:16][DEBUG] : broker msg: Client jeedom sending SUBSCRIBE (Mid: 1, Topic: #, QoS: 1, Options: 0x00)
[2021-03-27 13:37:16][DEBUG] : Subscribe to topic "#" with Qos=1
[2021-03-27 13:37:16][INFO] : No need to subscribe to the API topic "jeedom/api"
[2021-03-27 13:37:16][DEBUG] : broker msg: Client jeedom received CONNACK (0)
[2021-03-27 13:37:16][DEBUG] : broker msg: connection response is Connection Accepted.
[2021-03-27 13:37:16][DEBUG] : broker msg: Client jeedom sending PUBLISH (d0, q1, r1, m2, 'jeedom/status', ... (6 bytes))
[2021-03-27 13:37:16][DEBUG] : broker msg: Client jeedom received SUBACK
[2021-03-27 13:37:16][DEBUG] : broker msg: topic subscription accepted, mid=1
[2021-03-27 13:37:16][DEBUG] : broker msg: Client jeedom received PUBLISH (d0, q1, r1, m1, 'jeedom/status', ... (7 bytes))
[2021-03-27 13:37:16][DEBUG] : broker msg: Client jeedom sending PUBACK (m1, rc0)
[2021-03-27 13:37:16][DEBUG] : Payload offline for topic jeedom/status
[2021-03-27 13:37:16][INFO] : -> shelly|status offline
[2021-03-27 13:37:16][DEBUG] : broker msg: Client jeedom received PUBLISH (d0, q1, r0, m2, 'jeedom/status', ... (6 bytes))
[2021-03-27 13:37:16][DEBUG] : broker msg: Client jeedom sending PUBACK (m2, rc0)
[2021-03-27 13:37:16][DEBUG] : Payload online for topic jeedom/status
[2021-03-27 13:37:16][INFO] : -> shelly|status online
[2021-03-27 13:37:16][DEBUG] : broker msg: Client jeedom received PUBACK (Mid: 2, RC:0)
[2021-03-27 13:38:16][DEBUG] : broker msg: Client jeedom sending PINGREQ
[2021-03-27 13:38:16][DEBUG] : broker msg: Client jeedom received PINGRESP
[2021-03-27 13:39:02][INFO] : désactive le mode d'inclusion automatique
[2021-03-27 13:39:02][INFO] : arrête le démon
[2021-03-27 13:39:03][INFO] : démarre le démon
[2021-03-27 13:39:03][DEBUG] : daemon starts, pid is 27300
[2021-03-27 13:39:03][DEBUG] : status cmd id: 747, topic:
[2021-03-27 13:39:03][INFO] : Connect to mosquitto: Host=localhost, Port=1883, Id=jeedom
[2021-03-27 13:39:03][DEBUG] : broker msg: Client jeedom sending CONNECT
[2021-03-27 13:39:03][INFO] : Equipment shelly: subscribes to "jeedom/#" with Qos=1
[2021-03-27 13:39:03][DEBUG] : broker msg: Client jeedom sending SUBSCRIBE (Mid: 1, Topic: jeedom/#, QoS: 1, Options: 0x00)
[2021-03-27 13:39:03][INFO] : Subscribes to the API topic "jeedom/api"
[2021-03-27 13:39:03][DEBUG] : broker msg: Client jeedom sending SUBSCRIBE (Mid: 2, Topic: jeedom/api, QoS: 1, Options: 0x00)
[2021-03-27 13:39:03][DEBUG] : broker msg: Client jeedom received CONNACK (0)
[2021-03-27 13:39:03][DEBUG] : broker msg: connection response is Connection Accepted.
[2021-03-27 13:39:03][DEBUG] : broker msg: Client jeedom sending PUBLISH (d0, q1, r1, m3, 'jeedom/status', ... (6 bytes))
[2021-03-27 13:39:03][DEBUG] : broker msg: Client jeedom received SUBACK
[2021-03-27 13:39:03][DEBUG] : broker msg: topic subscription accepted, mid=1
[2021-03-27 13:39:03][DEBUG] : broker msg: Client jeedom received PUBLISH (d0, q1, r1, m1, 'jeedom/status', ... (7 bytes))
[2021-03-27 13:39:03][DEBUG] : broker msg: Client jeedom sending PUBACK (m1, rc0)
[2021-03-27 13:39:03][DEBUG] : Payload offline for topic jeedom/status
[2021-03-27 13:39:04][INFO] : -> shelly|status offline
[2021-03-27 13:39:04][DEBUG] : broker msg: Client jeedom received SUBACK
[2021-03-27 13:39:04][DEBUG] : broker msg: topic subscription accepted, mid=2
[2021-03-27 13:39:04][DEBUG] : broker msg: Client jeedom received PUBLISH (d0, q1, r0, m2, 'jeedom/status', ... (6 bytes))
[2021-03-27 13:39:04][DEBUG] : broker msg: Client jeedom sending PUBACK (m2, rc0)
[2021-03-27 13:39:04][DEBUG] : Payload online for topic jeedom/status
[2021-03-27 13:39:04][INFO] : -> shelly|status online
[2021-03-27 13:39:04][DEBUG] : broker msg: Client jeedom received PUBACK (Mid: 3, RC:0)

Et dans les logs de shelly je retrouve :

3825707126 mgos_mqtt_conn.c:471    MQTT0 connecting to 192.168.1.197:1883
3825718575 mgos_mqtt_conn.c:229    MQTT0 TCP connect error (-9)
3825723180 mgos_mqtt_conn.c:256    MQTT0 Disconnect
3825728676 mgos_mqtt_conn.c:549    MQTT0 connecting after 61917 ms

Je suis un petit peu perdu.

Merci de votre aide

Bonjour,
Commencez par installer MQTT Explorer, ainsi vous attaquerez directement mosquitto.
Si cela fonctionne mosquitto est OK, bien mettre les bons paramètres dans le plugin …
Pourrais je avoir le type de Shelly ? ça pourrais aider :wink:

1 J'aime

MQTT Explorer est un plugin de jeedom ?

C’est un shelly 1.

Dans la config du brocker j’ai tous laissé en l’état.
Si je change l’IP de mosquitto par l’ip de jeedom (192.168.1.197) cela ne fonctionne pas. Seul 127.0.0.1 semble fonctionner

image
image

MQTT Explorer est un logiciel pour se connecter sur un brocker MQTT il permet d’exporer, plublier, … il s’installe sur votre PC. c’est assez pratique pour déboguer et trouver des topics publiés qui ne sont pas dans la documentation …
Autres avantage si il se connecte votre serveur mosquitto fonctionne, ensuite vous pouvez voir si c’est le plugin qui ne va pas mais en étant sure de mosquitto.

1 J'aime

Pour ce qui est du paramétrage moi j’ai mis l’adresse IP du RPI (la même que jeedom) , l’identifiant de connexion j’ai ‹ Jeedom_01 › (Jeedom_01 est celui de prod) l’identifiant doit être unique.
Puis j’ai été piégé par des valeur par défaut grisées que je laissais ainsi alors à votre place je mettrais bien le ‹ # ›, ensuite vous sauvegardez.
avec ‹ # › va écouter tous les topics de mosquitto.

Edit :
Je n’utilise pas sans compte utilisateur ni mot de passe, mais je ne vois pas en quoi cela peut être bloquant.

Si à la ligne « IP de Mosquitto : » je lui indique l’ip de jeedom (qui devrait être la même du coup ?)
Le démon ne se lance plus.

J’ai l’impression que mosquitto écoute uniquement sur 127.0.0.1

[2021-03-27 15:48:34][DEBUG] : daemon starts, pid is 8710
[2021-03-27 15:48:34][DEBUG] : status cmd id: 747, topic: 
[2021-03-27 15:48:34][INFO] : Connect to mosquitto: Host=192.168.1.197, Port=1883, Id=jeedom
[2021-03-27 15:48:34][INFO] : Equipment shelly: subscribes to "jeedom/#" with Qos=1
[2021-03-27 15:48:34][WARNING] : exception thrown by MQTT client: The client is not currently connected.
[2021-03-27 15:48:34][INFO] : relance le démon dans 15s

C’est une installation sur une VM. Mais normalement ça ne change rien.

As-tu installé les 2 PR du plugin ?

ou sinon le dernier fork :

une connection sur mosquito avec un autre client que le plugin donne quoi ?
oui moi j’utilise la même mais je ne suis pas virtualisé

1 J'aime

Je n’avais pas vu qu’il y avait un plugin shelly disponible.

J’ai donc choisi la solution de facilité et j’ai pris le plugin.

Merci à tous de votre aide