MQTT Manager ne comprend pas son propre JSON

Bonjour à tous,

J’essaye de récupérer les événements d’un sonoff NSPanelPro via NSprootools connecté en MQTT à Jeedom.
Dans MQTT Manager j’ai donc créer un équipement qui « écoute » le topic

nspanelpro/smarthomecontrolpanel

puis une commande info ayant pour paramètre

event/touch/event_type

Sachant que lors, par exemple, d’un swipe vers le haut, NSprotools envois

nspanelpro/smarthomecontrolpanel/event/touch={"event_type":"swipe_up"}

Jusque là pas de problème, ma commande info prend bien la valeur qu’elle doit prendre en fonction de l’événement qui se produit sur l’écran.

Maintenant le truc, c’est que la valeur de la commande reste inchangée s’il se produit le même évenement. Si je fais un swipe vers le bas, ma commande info prend bien la valeur « swipe_down » et elle reste à cette valeur et l’absence d’un événement différent.
Le truc c’est que j’aurais besoin de déclencher un scénario sur changement de valeur de cette commande info, mais du coup, le scenario ne se déclanche qu’au premier « swipe_down » et ensuite il ne se passe rien… jusque là c’est normal, la valeur de la commande n’ayant pas changé.

Pour essayer de contourner le problème, j’ai créer une commande action sur le même équipement et le même topic qui « efface » la valeur de la commande info en y écrivant autre chose (ici « ack » pour mes test) concrètement voici comment j’ai configuré ça.

Le truc c’est que ma commande action « clear » ne fonctionne pas… enfin elle fonctionne, si je regarde avec mqqt explorer, la payload {« event_type »:« ack »} est bien envoyé et remplace effectivement « swipe_down » dans MQTT Explorer.
Sauf que MQTT manager l’ignore totalement, comme si le format n’était pas bon.
Car inversement, si avec MQTT explorer j’envoie le message JSON {« event_type »:« ack »} alors ma commande info « swipe » prend bien la valeur « ack »

Dans le champ « message » de ma commande « clear » j’ai essayé

{"event_type":"ack"}

mais ça ne fonctionne pas, effacé à l’enregistrement

json::{event_type:ack}

Ne fonctionne pas

json::{'event_type':'ack'}

Ne fonctionne pas

json::{"event_type" : "ack"}

Ne fonctionne pas

json::[{"event_type":"ack"}]

Ne fonctionne pas

json::event_type:ack

Ne fonctionne pas

json::"event_type":"ack"

Ne fonctionne pas

JSON::{"event_type":"ack"}

Ne fonctionne pas non plus…

Qu’est-ce que je fais mal ?
Merci d’avance.

Salut
Deja, as-tu activé la répétition sur valeur identique dans les options de la commande ?

Antoine

Bonjour

J’ai un json aussi et pour son envoie je suis sur cette forme
[{"enabled":true,"lock_time":"#title#","unlock_time":"#message#"}]

Donc je pense que pour toi cela doit être

[{"event_type":"ack"}]

Merci pour la réponse et la suggestion mais ça ne fonctionne pas.
Ma commande reste sur la dernière valeur envoyée par le NSpanel.

Du coup j’en ai profité pour essayer aussi

[{"event_type" : "ack"}]
[{'event_type':'ack'}]
['{"event_type":"ack"}']
json::({"event_type":"ack"})
json::([{"event_type":"ack"}])

Rien de tout ça ne fonctionne.

Il doit bien y avoir moyen pour que ce plugin sorte du json qu’il est lui même capable d’interpréter en tant que tel non ?

Si ça peut aider (mais j’en doute) page santé Jeedom et plugin MQTT manager


Tu peux montrer ce que tu fais dans mqtt explorer pour que cela fonctionne ?

Au lieu de cela

As tu essayé event/touch/event_type
et en dessous ack ?

Bonjour,
Attention le plugin ignore les messages qu’il envoient lui meme (pour eviter les cas de boucle infini).

Dans ton cas il suffit d’activé la repetition des valeurs sur la commande (comme ca pas besoin de clear)

Ah ben super, je pouvais chercher longtemps !
Du coup c’est pas top car on peut pas savoir qu’elle est la valeur réelle du dernier message envoyé sur le topic.
Dans mon cas, effectivement activer la répétition des valeurs apporte une solution… mais on pourrait imaginer d’autre cas où il faudrait répondre sur le même topic.
Faudrait penser à ajouter un option qui permet justement de ne pas ignorer les messages qu’il s’envoie lui même.

D’ailleurs, si je fais la même configuration avec JMQTT (sur une machine de test) il n’y a aucun problème, le plug-in prend bien en compte des messages qu’il à lui même publié.
C’est que ça doit pas être un si gros problème que ça…

Si d’autre plugin son mieux alors hésites pas a l’utiliser, nous avons fait le choix sur ce plugin de ne pas prendre en compte les messages envoyé, c’est voulu et assumé.

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