Différence de fonctionnement entre les deux plugins MQTT et MQTT2

J’ai récemment migré vers une Debian 11, en réinstallation complète.
J’en ai profité pour migrer vers Z2M et ZWAVEJS, le tout en MQTT avec le plugin officiel MQTT2.
Je me suis donc mis en tête de me séparer de l’ancien plugin MQTT qui n’est plus suivi depuis longtemps mais qui fait toujours le job.

Je n’ai pas vu de différence de comportement sauf sur un seul point.

J’ai des Hub Xiaomi DGNWG05LM qui tourne sous OpenWrt qui sont connecté via MQTT et je récupère l’action d’appui sur le bouton de ceux-ci pour déclencher des actions.

Avec l’ancien plugin (MQTT) le fonctionnement est normal :

  • J’appuie sur le bouton d’un hub
  • Dans MQTTExplorer je vois passer le changement de valeur de 0 à 1
  • Jeedom (via un scénario) détecte la modification de la valeur et demande au hub de faire une action
  • L’action se déclenche sur le hub

Lorsque je passe le hub avec le nouveau plugin (MQTT2) :

  • J’appuie sur le bouton d’un hub
  • Dans MQTTExplorer je vois passer le changement de valeur de 0 à 1
  • Jeedom (via un scénario) ne détecte pas la modification de la valeur
  • Rien ne se passe sur le hub …
    Enfin plus exactement au premier boot du Hub le fonctionnement et normal il déclenche l’action puis ensuite si j’appuie de nouveau sur le bouton plus rien ne se passe

J’ai tenté avec l’option « Répéter les valeurs identiques » mais du coup il ne s’arrête pas et fait l’action en boucle …

Je me suis dit vu que c’est toujours la même valeur qui est envoyé ça le gène j’ai donc pensé que je pouvais faire envoyé une autre valeur sur le payload mais bon ça rajoute du fonctionnement non standard.

Si vous avez des pistes, je suis preneur.

Plugin à jour, Jeedom 4.3.23 (pas encore envie de passer à 4.4, mais c’est prévu)


Plugin MQTT


Plugin MQTT2


Scénario


MQTTExplorer

Bonjour
Il faudrait donner la page de configuration entière dea deux plugins. Et la configuration mosquitto de mqttexplorer.

Salut,

Il manque un bout d’explication pcq je ne vois pas où est l’interaction avec jeedom (excepté l’envoi d’une info via mqtt depuis le hub):

Tu appuies sur un bouton du hub et ensuite quelque chose se passe ou pas sur le hub… que vient faire jeedom là dedans?

Modification du topic avec plus d’info.

Effectivement je n’ai pas assez expliqué le fonctionnement, j’ai rectifier le topic pour mieux expliquer (enfin j’espère).

Il faudrait aussi

  • une capture de mqtt explorer pour qu’on voit bien le topic (« action »?) en question
  • capture d’écran de l’écran principal de l’équipement mqtt2
  • capture de la commande « action » sur l’équipement d’origine mqtt

Modification faites.
Merci pour l’aide.

Salut

Utilisez vous le même mosquitto pour mqtt et mqtt2?

Oui le même (installé depuis MQTT2)

Salut,

Une raison spécifique d’avoir sélectionné QoS 2?

image

Non, mais assurance que le message ne soit délivré qu’une est une seule fois.

Faudrait les logs mqtt2 alors
Je ne vois rien de problématique dans la config

LogMQTT (Filtré) [Horaire différent]
On voit bien le passage à la valeur 1 puis à 0

[2024-05-19 09:33:55][DEBUG] : 16 : Client Jeedom received PUBLISH (d0, q0, r1, m0, 'lumiCh/state', ... (6 bytes))
[2024-05-19 09:33:55][DEBUG] : Message online sur lumiCh/state
[2024-05-19 09:33:55][INFO] : Message texte : online pour information : state sur : lumiCh
[2024-05-19 09:34:01][DEBUG] : 16 : Client Jeedom received PUBLISH (d0, q0, r0, m0, 'lumiCh/illuminance', ... (4 bytes))
[2024-05-19 09:34:01][DEBUG] : Message 1864 sur lumiCh/illuminance
[2024-05-19 09:34:01][INFO] : Message texte : 1864 pour information : illuminance sur : lumiCh
[2024-05-19 09:34:02][DEBUG] : 16 : Client Jeedom received PUBLISH (d0, q0, r0, m0, 'lumiCh/illuminance', ... (4 bytes))
[2024-05-19 09:34:02][DEBUG] : Message 1410 sur lumiCh/illuminance
[2024-05-19 09:34:02][INFO] : Message texte : 1410 pour information : illuminance sur : lumiCh
[2024-05-19 09:34:02][DEBUG] : 16 : Client Jeedom received PUBLISH (d0, q0, r0, m0, 'lumiCh/button/action', ... (1 bytes))
[2024-05-19 09:34:02][DEBUG] : Message 1 sur lumiCh/button/action
[2024-05-19 09:34:02][INFO] : Message texte : 1 pour information : action sur : lumiCh/button
[2024-05-19 09:34:03][DEBUG] : 16 : Client Jeedom received PUBLISH (d0, q0, r0, m0, 'lumiCh/illuminance', ... (4 bytes))
[2024-05-19 09:34:03][DEBUG] : Message 1588 sur lumiCh/illuminance
[2024-05-19 09:34:03][INFO] : Message texte : 1588 pour information : illuminance sur : lumiCh
[2024-05-19 09:34:03][DEBUG] : Message {"value":"1","humanName":"[Chambre Charlotte][lumiChbutton][action]","unite":"","name":"action","type":"info","subtype":"string"} sur jeedom/cmd/event/7345
[2024-05-19 09:34:03][INFO] : Message json : {"value":"1","humanName":"[Chambre Charlotte][lumiChbutton][action]","unite":"","name":"action","type":"info","subtype":"string"} pour information sur : jeedom/cmd/event/7345
[2024-05-19 09:34:03][INFO] : Message json : [Chambre Charlotte][lumiChbutton][action] pour information : humanName
[2024-05-19 09:34:03][DEBUG] : Message {"value":"0","humanName":"[Chambre Charlotte][lumiChbutton][action]","unite":"","name":"action","type":"info","subtype":"string"} sur jeedom/cmd/event/7345
[2024-05-19 09:34:03][INFO] : Message json : {"value":"0","humanName":"[Chambre Charlotte][lumiChbutton][action]","unite":"","name":"action","type":"info","subtype":"string"} pour information sur : jeedom/cmd/event/7345
[2024-05-19 09:34:03][INFO] : Message json : [Chambre Charlotte][lumiChbutton][action] pour information : humanName
[2024-05-19 09:34:03][DEBUG] : 16 : Client Jeedom received PUBLISH (d0, q2, r0, m53, 'lumiCh/light/set', ... (28 bytes))
[2024-05-19 09:34:03][DEBUG] : Message {"state":"ON", "timeout": 5} sur lumiCh/light/set
[2024-05-19 09:34:03][INFO] : Message json : {"state":"ON", "timeout": 5} pour information sur : lumiCh/light/set
[2024-05-19 09:34:04][DEBUG] : 16 : Client Jeedom received PUBLISH (d0, q0, r0, m0, 'lumiCh/light', ... (61 bytes))
[2024-05-19 09:34:04][DEBUG] : Message {"color":{"r":30,"g":30,"b":30},"brightness":30,"state":"ON"} sur lumiCh/light
[2024-05-19 09:34:04][INFO] : Message json : {"color":{"r":30,"g":30,"b":30},"brightness":30,"state":"ON"} pour information sur : lumiCh/light

Log MQTT2 (Filtré)

[2024-05-19 08:13:37][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"illuminance":2158}}
[2024-05-19 08:17:15][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"illuminance":1102}}
[2024-05-19 08:17:16][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"button":{"action":0}}}
[2024-05-19 08:17:16][DEBUG] : Message reçu sans prise en charge par un plugin : {"jeedom":{"cmd":{"event":{"7345":{"value":"1","humanName":"[Chambre Charlotte][lumiChbutton][action]","unite":"","name":"action","type":"info","subtype":"string"}}}}}
[2024-05-19 08:17:16][DEBUG] : Message reçu sans prise en charge par un plugin : {"jeedom":{"cmd":{"event":{"7345":{"value":"1","humanName":"[Chambre Charlotte][lumiChbutton][action]","unite":"","name":"action","type":"info","subtype":"string"}}}}}
[2024-05-19 08:17:17][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"illuminance":1873}}
[2024-05-19 08:17:18][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"illuminance":2103}}
[2024-05-19 08:17:42][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"state":"online","illuminance":2122,"light":{"state":"OFF"},"audio":{"play":{"url":"STOP","name":"STOP"},"volume":"50"},"button":{"action":0}}}
[2024-05-19 08:17:42][DEBUG] : Message reçu sans prise en charge par un plugin : {"homeassistant":{"light":{"lumi_light":{"config":{"name":"Lumi Light","uniq_id":"lumi_light","schema":"json","rgb":true,"brightness":true,"stat_t":"lumiCh\/light","cmd_t":"lumiCh\/light\/set","device":{"identifiers":["xiaomi_gateway"],"name":"Xiaomi_Gateway","sw_version":"1.0","model":"Xiaomi Gateway","manufacturer":"Xiaomi"}}}},"sensor":{"lumi_illuminance":{"config":{"name":"Lumi Illuminance","uniq_id":"lumi_illuminance","dev_cla":"illuminance","unit_of_meas":"lx","stat_t":"lumiCh\/illuminance","device":{"identifiers":["xiaomi_gateway"],"name":"Xiaomi_Gateway","sw_version":"1.0","model":"Xiaomi Gateway","manufacturer":"Xiaomi"}}},"lumi_button":{"action":{"config":{"name":"Lumi Button Action","unique_id":"lumi_button","icon":"mdi:gesture-double-tap","json_attributes_topic":"lumiCh\/button\/action","state_topic":"lumiCh\/button\/action","device":{"identifiers":["xiaomi_gateway"],"name":"Xiaomi_Gateway","sw_version":"1.0","model":"Xiaomi Gateway","manufacturer":"Xiaomi"}}}}},"device_automation":{"lumi_button":{"action_1":{"config":{"automation_type":"trigger","topic":"lumiCh\/button\/action","type":"button_short_press","subtype":"Button","payload":1,"device":{"identifiers":["xiaomi_gateway"],"name":"Xiaomi_Gateway","sw_version":"1.0","model":"Xiaomi Gateway","manufacturer":"Xiaomi"}}},"action_2":{"config":{"automation_type":"trigger","topic":"lumiCh\/button\/action","type":"button_double_press","subtype":"Button","payload":2,"device":{"identifiers":["xiaomi_gateway"],"name":"Xiaomi_Gateway","sw_version":"1.0","model":"Xiaomi Gateway","manufacturer":"Xiaomi"}}},"action_3":{"config":{"automation_type":"trigger","topic":"lumiCh\/button\/action","type":"button_triple_press","subtype":"Button","payload":3,"device":{"identifiers":["xiaomi_gateway"],"name":"Xiaomi_Gateway","sw_version":"1.0","model":"Xiaomi Gateway","manufacturer":"Xiaomi"}}}}}}}
[2024-05-19 08:18:49][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"illuminance":1955}}
[2024-05-19 08:18:50][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"illuminance":1196}}
[2024-05-19 08:18:51][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"button":{"action":0}}}
[2024-05-19 08:18:51][DEBUG] : Message reçu sans prise en charge par un plugin : {"jeedom":{"cmd":{"event":{"7345":{"value":"1","humanName":"[Chambre Charlotte][lumiChbutton][action]","unite":"","name":"action","type":"info","subtype":"string"}}}}}
[2024-05-19 08:18:51][DEBUG] : Message reçu sans prise en charge par un plugin : {"jeedom":{"cmd":{"event":{"7345":{"value":"1","humanName":"[Chambre Charlotte][lumiChbutton][action]","unite":"","name":"action","type":"info","subtype":"string"}}}}}
[2024-05-19 08:18:51][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"illuminance":1061}}
[2024-05-19 08:18:52][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"illuminance":1163}}
[2024-05-19 08:18:54][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"illuminance":1989}}
[2024-05-19 08:18:55][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"illuminance":2108}}
[2024-05-19 08:19:32][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"illuminance":1247}}
[2024-05-19 08:19:33][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"button":{"action":0}}}
[2024-05-19 08:19:33][DEBUG] : Message reçu sans prise en charge par un plugin : {"jeedom":{"cmd":{"event":{"7345":{"value":"1","humanName":"[Chambre Charlotte][lumiChbutton][action]","unite":"","name":"action","type":"info","subtype":"string"}}}}}
[2024-05-19 08:19:33][DEBUG] : Message reçu sans prise en charge par un plugin : {"jeedom":{"cmd":{"event":{"7345":{"value":"1","humanName":"[Chambre Charlotte][lumiChbutton][action]","unite":"","name":"action","type":"info","subtype":"string"}}}}}
[2024-05-19 08:19:34][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"illuminance":1175}}
[2024-05-19 08:19:36][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"button":{"action":0}}}
[2024-05-19 08:19:37][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"illuminance":1204}}
[2024-05-19 08:19:38][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"button":{"action":0}}}
[2024-05-19 08:19:38][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"illuminance":1111}}
[2024-05-19 08:19:40][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"illuminance":1058}}
[2024-05-19 08:19:40][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"illuminance":1129}}
[2024-05-19 08:19:41][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"button":{"action":0}}}
[2024-05-19 08:19:41][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"illuminance":1911}}
[2024-05-19 08:19:43][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"illuminance":2132}}
[2024-05-19 08:20:07][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"illuminance":2078}}
[2024-05-19 08:20:07][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"illuminance":1798,"button":{"action":1}}}
[2024-05-19 08:20:08][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"button":{"action":0}}}
[2024-05-19 08:20:08][DEBUG] : Message reçu sans prise en charge par un plugin : {"jeedom":{"cmd":{"event":{"4696":{"value":8791,"humanName":"[Autres][LastCommunication][D\u00e9tecteur fum\u00e9e]","unite":"s","name":"D\u00e9tecteur fum\u00e9e","type":"info","subtype":"numeric"},"4730":{"value":7,"humanName":"[Autres][LastCommunication][An\u00e9mom\u00e8tre]","unite":"s","name":"An\u00e9mom\u00e8tre","type":"info","subtype":"numeric"},"4731":{"value":77,"humanName":"[Autres][LastCommunication][Thermom\u00e8tre Ext]","unite":"s","name":"Thermom\u00e8tre Ext","type":"info","subtype":"numeric"},"4851":{"value":1642,"humanName":"[Autres][LastCommunication][Capteur luminosit\u00e9]","unite":"s","name":"Capteur luminosit\u00e9","type":"info","subtype":"numeric"},"4852":{"value":2659,"humanName":"[Autres][LastCommunication][Capteur store banne]","unite":"s","name":"Capteur store banne","type":"info","subtype":"numeric"},"6571":{"value":613,"humanName":"[Autres][LastCommunication][Ouverture Porte Entr\u00e9e]","unite":"s","name":"Ouverture Porte Entr\u00e9e","type":"info","subtype":"numeric"},"7345":{"value":"1","humanName":"[Chambre Charlotte][lumiChbutton][action]","unite":"","name":"action","type":"info","subtype":"string"},"9761":{"value":"1","humanName":"[Chambre Charlotte][Hub Xiaomi 05 CH][action]","unite":"","name":"action","type":"info","subtype":"string"}}}}}
[2024-05-19 08:20:08][DEBUG] : Message reçu sans prise en charge par un plugin : {"jeedom":{"cmd":{"event":{"4696":{"value":8791,"humanName":"[Autres][LastCommunication][D\u00e9tecteur fum\u00e9e]","unite":"s","name":"D\u00e9tecteur fum\u00e9e","type":"info","subtype":"numeric"},"4730":{"value":7,"humanName":"[Autres][LastCommunication][An\u00e9mom\u00e8tre]","unite":"s","name":"An\u00e9mom\u00e8tre","type":"info","subtype":"numeric"},"4731":{"value":77,"humanName":"[Autres][LastCommunication][Thermom\u00e8tre Ext]","unite":"s","name":"Thermom\u00e8tre Ext","type":"info","subtype":"numeric"},"4851":{"value":1642,"humanName":"[Autres][LastCommunication][Capteur luminosit\u00e9]","unite":"s","name":"Capteur luminosit\u00e9","type":"info","subtype":"numeric"},"4852":{"value":2659,"humanName":"[Autres][LastCommunication][Capteur store banne]","unite":"s","name":"Capteur store banne","type":"info","subtype":"numeric"},"6571":{"value":613,"humanName":"[Autres][LastCommunication][Ouverture Porte Entr\u00e9e]","unite":"s","name":"Ouverture Porte Entr\u00e9e","type":"info","subtype":"numeric"},"7345":{"value":"1","humanName":"[Chambre Charlotte][lumiChbutton][action]","unite":"","name":"action","type":"info","subtype":"string"},"9761":{"value":"1","humanName":"[Chambre Charlotte][Hub Xiaomi 05 CH][action]","unite":"","name":"action","type":"info","subtype":"string"}}}}}
[2024-05-19 08:20:08][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"illuminance":1593}}
[2024-05-19 08:20:10][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"illuminance":1486}}
[2024-05-19 08:20:11][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"button":{"action":0},"illuminance":1374}}
[2024-05-19 08:20:13][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"illuminance":1016}}
[2024-05-19 08:20:14][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"button":{"action":0}}}
[2024-05-19 08:20:14][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"illuminance":1088}}
[2024-05-19 08:20:16][DEBUG] : Message reçu sans prise en charge par un plugin : {"lumiCh":{"illuminance":2118}}

Log Scénario

------------------------------------
[2024-05-19 06:55:28][SCENARIO] -- Start : Scenario execute automatiquement sur evenement venant de : [Chambre Charlotte][lumiChbutton][action] (0).
[2024-05-19 06:55:28][SCENARIO] - Exécution du sous-élément de type [action] : action
[2024-05-19 06:55:28][SCENARIO] Exécution d'un bloc élément : 1242
[2024-05-19 06:55:28][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Chambre Charlotte][lumiChbutton][action]# == '1' || #[Chambre Charlotte][Hub Xiaomi 05 CH][action]# == 1
[2024-05-19 06:55:28][SCENARIO] Evaluation de la condition : [0 == '1' || 2 == 1] = Faux
[2024-05-19 06:55:28][SCENARIO] - Exécution du sous-élément de type [action] : else
[2024-05-19 06:55:28][SCENARIO] Pause de 1 seconde(s)
[2024-05-19 06:55:29][SCENARIO] Fin correcte du scénario
------------------------------------
[2024-05-19 08:20:08][SCENARIO] -- Start : Scenario execute automatiquement sur evenement venant de : [Chambre Charlotte][Hub Xiaomi 05 CH][action] (1).
[2024-05-19 08:20:08][SCENARIO] - Exécution du sous-élément de type [action] : action
[2024-05-19 08:20:08][SCENARIO] Exécution d'un bloc élément : 1242
[2024-05-19 08:20:08][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Chambre Charlotte][Hub Xiaomi 05 CH][action]# == 1
[2024-05-19 08:20:08][SCENARIO] Evaluation de la condition : [1 == 1] = Vrai
[2024-05-19 08:20:08][SCENARIO] - Exécution du sous-élément de type [action] : then
[2024-05-19 08:20:08][SCENARIO] Pause de 1 seconde(s)
[2024-05-19 08:20:09][SCENARIO] Exécution d'un bloc élément : 1326
[2024-05-19 08:20:09][SCENARIO] Fin correcte du scénario

MQTTexplorer

J’ai tenté de faire un petit trick, car je pensais qu’il ne réagiser pas vue que la valeur revenait toujours à 0.
Du coup j’ai mis en fin de scénario un commande qui fait passer la valeur à 2 pour qu’au prochain appui il voit la valeur changer de 2 à 1.
Ça fonctionne mais en boucle et toute les 5 minutes il doit republier la valeur 0 et donc relance le scénario …

J’ai donc fini par modifier le fonctionnement direct du Hub pour faire l’action directement sur le hub sans passé par MQTT.
Je garde quand même MQTT pour faire d’autres action dessus.