Bonjour à tous,
Je souhaiterais créer une commande action de type toggle au travers du plugin jmqtt.
Je l’ai crée de cette maniière mais cela ne fonctionne pas
Le topic /lock/set prend en payload 0 ou 1 et la commande info relative à cette action est représentée par le topic /lock/state … pour faire le toggle dans la valeur du payload du topic lock/set j’ai mis not(valeur de la commande info) … est-ce fonctionnel normalement ?
D’autres part j’ai lié le résultat de ma commande action /lock/set à la commande info /lock/state mais lorsque je l’execute le plugin me crée automatiquement une commande info de type lock:set … pourquoi ? dois-je passer par un template json pour faire ce que je souhaite ?
Par avance merci @chris94440
Il faut bien différencier l’action topic/de/mon/module/etat/set du retour d’état topic/de/mon/module/etat
Lorsqu’on modifie le curseur entre 0 et 1, cela revient à envoyer un 0 ou un 1 comme action de la même façon que si on avait 2 boutons ON et OFF distincts, puis le module va agir en conséquence.
Si on actionne le module d’ailleur (exemple avec le bouton physique « Muting » de la télécommande dans mon cas), le module (ici l’ampli HC) va retourner son état et mettre à jour l’info.
De plus, comme l’action de type curseur est liée à cette info, le curseur sera aussi modifié.
Mais attention à la boucle car le curseur va renvoyer l’ordre, donc le module va agir et retourner son état, etc… Il faut couper la boucle quelque part !
Pour le cas de l’ampli, je n’empêche aucune duplication d’ordres, mais je filtre le retour d’état des infos afin de ne transmettre que les valeurs qui changent.
résultat : il y a toujours on off séparé
(il y a d’autre sujet sur les commande toggle qui pose régulièrement des soucis )
@Domatizer donc en fait pour créer un toggle tu créer une condition supplémentaire ? qui n’est pas dans la doc , enfin si ça fonctionne c’est le principal , je vais tester .
L’inconvénient d’un inter est qu’on ne peut différencier l’action de l’état.
J’actionne mon curseur à 1 : est-ce que ma lumière est vraiment allumée ?
Il faut voir qui décide de l’état du bouton : Jeedom ou le module ?
Le bouton type inter est un cas particulier d’un curseur qui varie entre 0 et 1 avec un pas de 1.
Exemple avec un curseur où c’est Jeedom qui décide sans tenir compte du retour d’état (que je n’affiche pas).
Ici, Jeedom impose une consigne en publiant directement (sans passer par /set dans le topic), c’est tout
Exemple avec un curseur où c’est le module qui décide avec son retour d’état.
Je bouge le curseur (2ème ligne) sur la station souhaitée, si tout fonctionne bien, l’ampli s’exécute et me retourne le numéro de la station en cours (1ère ligne). L’info et l’action sont synchronisées : ils affichent la même valeur (pour le curseur, il faut passer la souris dessus pour voir sa valeur).
Si je n’affiche pas la première ligne, je ne peux pas savoir si mon ordre a bien été exécuté. @Jeandhom et @nadlio vous afficher la valeur de la commande, c’est-à-dire la valeur que voulez obtenir qui n’est pas la valeur réelle, puisque vous ne tenez pas compte du retour d’état.
Pour être puriste, il faudrait un truc qui attende le retour d’état pour vérifier que l’ordre soit bien passé, et dans le cas contraire, que le curseur revient à la précédente position.
Ce qui est pourtant simple en l’apparence ne l’est pas , mon serveur WES pour un on off me renvoi automatiquement une commande toggle que je n’est pas besoin de creer :
Ok on s’est mal compris …ou je me suis mal exprimé … je souhaite un toggle équivalent à celui qu’on peut créer via le plugin virtual … mais c’est peut etre juste pas possible … et c’est pas tres grave
Si c’est possible mais tu n’as pas lu complètement la documentation.
Le nom de chacune des deux commandes actions doit avoir On et Off.
lockWallBox On
lockWallBox Off
je suis d’accord avec toi mais cela implique d’utiliser le core jeedom / tuile pour executer l’action… et c’est pas ce que je souhaite … ou alors aujourd’hui je comprends rien … ce qui est fort possible…
Je viens de me rendre compte que j’ai confondu le toggle avec un curseur binaire
En fait, tu veux un seul bouton ON/OFF qui change l’état à chaque appui !
Bon, je ne peux pas t’aider car je ne fait jamais ça et je mets toujours 2 boutons.