Toggle & retour état

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

Bonjour ,

je n’avais pas réussi à le faire non plus .
malgré les doc pour créer un toggle

Pour faire, il faut deux commandes actions et une commande info.

Donc une commande action pour ON (payload 1)
Une commande action pour OFF (payload 0)
Une commande info qui donne le retour d’état

https://doc.jeedom.com/fr_FR/core/4.3/widgets#Toggle%20d’icône%20ON%2FOFF

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.

En image l’info et les 3 actions
image
Il suffit d’afficher seulement la 2ème ligne pour ne garder que le toggle.

C’est vrai pour un Virtuel mais pas pour un équipement JMQTT où il y un vrai module derrière qui retourne son état.

Le retour d’état doit être mis sous Mute et Unmute.
Le nom des deux commandes action doit contenir On et Off.
Mute Off et Unmute On par exemple.

Bonjour ,

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 )

chrome-capture-2024-2-13 (1)

@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 .

Non, cela fonctionne très bien avec mes équipements sous le plugin-jmqtt.
Tu n’y es pas arrivé car tu l’as mal implémenté.

Template du plugin-jmqtt

Capture d’écran du 2024-02-13 13-34-37




Capture d’écran du 2024-02-13 13-39-57

C’est pas le plugin jmqtt que tu utilises, non ?

Sous Jmqtt ,

soit :


résultat :
chrome-capture-2024-2-13 (3)
soit :

résultat :
chrome-capture-2024-2-13 (1)

l’exemple d’avant était avec un virtuel

j’ai beau renseigner la bonne info j’ai tjs une commande lock:set qui se crée

Et tu n’es pas sur un toggle mais 2 bouton action classique

Tu peux mettre une capture d’écran de ta méthode, stp.

EDIT: Merci @Jeandhom

Peut-être.

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.

  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
    image

  2. 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).
    image

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.

1 « J'aime »

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 :

Lis la doc, pour faire un toggle il faut 2 bouton action classique. C’est le core qui s’occupe après d’afficher le toggle.

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

Test avec un template Shelly sa fonctionne


chrome-capture-2024-2-13 (1)

sauf que lorsque je remplace les commandes par celle de la Wallbox je me retrouve avec un on off séparé

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… :rofl:

Il faut afficher les deux commandes actions et ne pas afficher la commande info.

Je viens de me rendre compte que j’ai confondu le toggle avec un curseur binaire :laughing:
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.

Oui , j’ai juste posté les mauvaise captures . Avec un template ça fonctionne mais pas avec les vrais commandes de la Wallbox