Retour d'état ves interrupteur virtuel+mqtt+esp8266

Bonjour à tous.

Petit pb concernant le MQTT.

J’ai réalisé le petit montage proposé ici : https://projetsdiy.fr/jeedom-publier-mqtt-commandes-virtuelles-iot-esp8266-esp32-interrupteur-poussoir-dimmer/

Tout fonctionne dans Jeedom et dans arduino(esp8266) externe à jeedom . Le pb concerne le retour de l’état de la led vers le virtuel jeedom(on/off) flux bleu du tuto.

Côté arduino je publie le topic ‹ Interrupteur_renvoi_MQTT/switch/act › l’état(0 ou 1) de la led vers le broker (externe à jeedom).
Je souscris à ce topic depuis mon laptop pour vérifier l’envoi des états au broker ==> c’est ok.

Je ne sais pas comment m’abonner à ce topic avec le plugin jeedom jMQTT pour mettre à jour l’état du virtuel.

Je lis dans le tuto : « Pour actualiser l’état du bouton virtuel, on utilisera simplement l’API interne de jeedom » + l’ID de l’état virtuel.

Dois-je ajouter l’équipement ‹ esp8266 › au jMQTT et ensuite ajouter cette commande info (url ci-dessous)?
J’ai essayé cela, mais je tourne en rond. Je suis plus à l’aise avec les commandes cli ‹ Mosquitto_pub › et et ‹ Mosquitto_sub ›…

Mon url du retour d’état virtuel :
https://06XXXXXX.dns1.jeedom.com/core/api/jeeApi.php?plugin=virtual&apikey=********XA6&type=virtual&id=#3593#&value=#value#

Pouvez-vous m’aider ?

Bonsoir,
Je ne me suis pas plongé dans votre tuto mais pourquoi utiliser vous mqtt puis une api ?
Faite tout avec mqtt ou tout avec l’api ce sera plus simple.
Avec votre Esp il se connecte à votre serveur MQTT il s’abonne à un topic il peux donc publier sans aucun souci. Il ne vous restera plus qu’a écouter ce topic côté jeedom ou autre.

Merci ‹ PanoLyon › pour ta réponse.

Ce tuto me sert à me familiariser avec mqtt que je découvre depuis peu et de me replonger dans le code arduino abandonné depuis plusieurs années.

C’est côté jeedom que j’ai un problème avec le plugin jMQTT, je ne sais pas comment souscrire à la publication de l’état led (0 ou 1) que j’envoie depuis l’esp vers le broker. J’ai un doute concernant l’explication du retour d’état vers l’interrupteur virtuel (flux bleu) ou plutôt c’est moi qui ne comprend pas bien les explications.
Ce qui m’importe pour l’instant c’est de conserver un interrupteur virtuel dans jeedom.

Je remonte les états de la led (esp) dans le topic ‹ Interrupteur_renvoi_MQTT/switch/act ›.
Pouvez-me dire comment gérer cela dans le plugin jMQTT pour mettre à jour le widget du virtuel ?
Dois-je ajouter un autre équipement pour gérer ce topic ? Ce n’est pas clair pour moi.

L’autre équipement présent sert à la plublication des états on/off vers le broker pour piloter la led dans arduino c’est le topic ‹ Interrupteur_renvoi_MQTT/switch/set ›, mais là pas de pb.

Peut-être que si j’exprime mon besoin autrement, vous pourriez m’aider à résoudre ce petit problème dans Jeedom.

J’ai donc créé un interrupteur virtuel (on/off) dans Jeedom pour allumer ou éteindre une led câblée à un esp8266-wifi (micro-contrôleur arduino) . Je peux aussi commander cette led en local avec un bouton-poussoir extérieure à Jeedom.

La possibilité d’allumer la led depuis son bouton-poussoir me génère une incohérence d’état dans l’interrupteur virtuel Jeedom. Par ex si led allumée par bp arduino ⇒ état éteind sur inter virtuel.

Donc pour résoudre ce problème, le tuto propose une solution pour avoir la cohérence entre les 2 interrupteurs. C’est de renseigner l’état de la led dans la valeur du retour d’état url de l’interrupteur Jeedom.

J’ai testé cette url dans un onglet vierge de mon navigateur on forçant une valeur à 0 ou 1 ⇒

j’ai bien l’état qui change en fonction de sa valeur.

Je dois donc écrire 1 ou 0 dans l’url retour inter virtuel Jeedom. Pour cela côté arduino , je publie l’état de la led vers le broker. J’ai testé, les états remontent dans le serveur Mosquitto

Comment écrire dans l’url retour état virtuel de Jeedom ?

Je suppose que je dois ajouter une commande action dans l’équipement plugin JMQTT . Puis lier ou pas cette commande action avec une commande info… avec la syntaxe : ‘ Interrupteur_renvoi_MQTT/switch/act.’ Mais là je ne sais pas faire, je découvre ce plugin.

Topics MQTT :

Interrupteur_renvoi_MQTT/switch/act-----> image de l’état de la led (1 ou 0).

Interrupteur_renvoi_MQTT/switch/set-----> image on/off pour commander la led (1 ou 0).

J’espère avoir clarifier mon besoin.

Bonjour,

il y a un bug avec la remonté des commades info dans le plugin Jmqtt depuis le passage en 4.1
La solution est ici

Merci pour l’info.
Est-ce que le plugin MQTT pourrait fonctionner en remplacement du jMQTT ?

Oui
(même si j’aime un peu moins ce plugin car on ne peut pas supprimer/filtrer les infos inutiles provenant du topic)

ok.
Je vais l’essayer.
Encore merci. :wink:

Bon la cohérence d’état interrupteur virtuel et bouton-poussoir arduino n’est pas à 100% correcte. Il subsiste une incohérence :
Si ON virtuel ==> led = ON et état virtuel = allumé
Ensuite si impulsion BP arduino ==> led = OFF et état virtuel = allumé

Je rattrappe la cohérence en continuant l’impulsion avec le BP arduino.

Pour ceux qui auraient réalisés ce genre de projet, avez-constaté cette incohérence ?

Ce n’est plus un souci de plugin Mqtt, je vais me pencher sur le code arduino.
Donc problème résolu pour l’objet de ma demande.
Merci à tous

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.