Utilisation du bouton poussoir : help!

Salut tout le monde,

je suis en train de jouer un la fonctionnalité Bouton poussoir de l’intégration MQTT.



De ce que je vois et que j’ai pu lire de @pierre-gilles, dès qu’on clique dessus ça envoie 1 dans MQTT, ce que j’ai bien :

J’ai une prise zigbee que je déclenche tous les jours à 22h et que j’arrête à 6h via une scène.

Mon premier problème est de connaître l’état de ce bouton poussoir (1 ou 0), et je ne sais pas quoi prendre comme fonctionnalité mqtt ni quel topic écouter.
J’ai testé avec un commutateur de prise mais ça ne fait pas du tout ce que je voudrais.
En gros voici un exemple de résultat que j’aimerais (actif/inactif) :

Mon second soucis est l’utilisation dans une scène.
Lorsque je clique sur le bouton poussoir pour changer son état, je veux qu’une scène se lance pour mettre à jour ma fonctionnalité d’état (point précédent) mais le déclencheur ne fonctionne pas du tout :


De ce que j’ai investigué, le changement d’état de mon bouton poussoir « récupère » les valeurs du clic bouton. Or il faudrait qu’il ait 1 ou 0 (ou autre chose car j’ai testé On et Off mais les valeurs sont 7 et 8 donc rien à voir).

Si quelqu’un peut m’aider, j’en serais ravi :hugs:
Merci par avance !

Déjà, le choix du bouton poussoir n’est peut-être pas le bon si tu veux vraiment un retour à 0 :smiley:

Le principe du bouton poussoir, c’est justement d’avoir uniquement des « 1 », jamais de 0.

Sinon c’est un appareil binaire « On/Off » que tu veux, qui aura un toggle comme une prise connectée, avec 2 états « On » et « Off ».

Je viens de tester, et ça marche bien chez moi :slight_smile:

Je ne sais pas si tu utilises les messages dans les scènes pour tester un comportement, c’est pratique !

Je te recommande d’utiliser le bloc « Envoyer un message MQTT » qui te permet d’enregistrer une nouvelle valeur de capteur grâce au topic MQTT d’un appareil Gladys.

Exemple, j’ai un appareil « Ouverture de porte », je copie son topic MQTT pour publier :

Et ensuite je peux publier vers ce topic n’importe quelle valeur, « 1 » ou « 0 » :

Alors je ne veux pas de toggle, juste un push button pour « envoyer une impulsion ».

Je suis d’accord avec le 1 mais c’est moi qui le remets à 0 dans ma scène.

En fait un bouton poussoir (pour moi) envoie un 1 quand on appuie et ensuite devrait revenir à 0 (tout seul avec un timeout ou en mode manuel comme je veux le faire), ça agit comme une impulsion.
Si ton bouton poussoir à toujours un état à 1, comment savoir que tu l’as actionné ?

Ok donc je viens de tester avec un premier état à 0 et la scène fonctionne, et ensuite avec un état déjà à 1 et ça marche aussi … alors là je ne comprends pas le coup du changement d’état en passant de 1 à 1 :confused:, si tu peux m’éclairer @pierre-gilles car je sèche.

De mon côté je récupère la valeur du bouton poussoir. Ca fonctionne pour le message MQTT et avec Telegram :




C’est sur mon dashboard que ça ne veut pas faire ce qu’il faudrait : je devrais avoir Actif ou Inactif comme pour mes indicateurs d’état de lave-linge (même fonctionnalité : Commutateur) mais j’ai Aucune valeur reçue en rouge (quand c’est 0) et en vert (quand c’est 1).



Et je complique le truc un peu plus :

  • au bout de plusieurs secondes (temps non fixe) le rouge devient vert sans cliquer sur le bouton poussoir
  • je switche de dashboard, je reviens sur celui-là et là je vois Actif en vert pendant qq secondes puis Aucune valeur reçue en vert toujours :frowning:

Si tu as plus d’élément pour éclairer ma lanterne, je prends.
En tout cas merci pour tes premiers retours, ça me rassure déjà dans ce que j’avais mis en place et où je ne m’étais pas trompé.

Petite vidéo pour illustrer les trucs bizarres :

Salut @mutmut :slight_smile:

C’est dur de t’aider sans voir le flow complet, à mon avis tu dois faire une erreur quelque part, dans une scène, dans Node-RED, ou autre.

Je viens de faire un test en local, un « Commutateur capteur » a bien le comportement attendu « Actif/Inactif » :

Mon conseil : revois tes scènes à tête reposée, et ajoute des logs Telegram à chaque endroit où tu modifies l’état de ton capteur “Born VE Actif/Inactif”. Ça t’aidera à mieux comprendre ce qui se passe.

Si malgré ça tu ne trouves pas, je suis toujours disponible pour un appel et débloquer ça rapidement :slight_smile:

Salut @pierre-gilles
concernant ma scène et bien c’est uniquement ce que j’ai plus haut, c’est-à-dire un premier bloc pour récupérer l’état du bouton poussoir et ensuite un second bloc pour envoyer un message MQTT et Telegram. Et je n’ai rien d’autre (pas de nore-red ni d’autres scènes) :confused:

Et pour tester et remettre en Inactif, je fais exactement ce que tu fais dans ta vidéo via MQTT Explorer (équivalent MQTTX).

J’ai ajouté un graphique pour voir ce qu’il se passe :


Donc on voit que je suis sur On (le rouge c’est Off) mais côté MQTT je suis à 0 depuis hier :

et je n’ai pas cliquer sur le bouton poussoir hier :

Donc j’avoue ne rien comprendre.

De retour avec de nouveaux tests sur une nouvelle instance gladys et mqtt : tout fonctionne comme tu le montres dans tes vidéos @pierre-gilles

Alors j’ai créé une seconde fonctionnalité Commutateur avec un nom différent et j’ai supprimé l’autre Commutateur, remis à jour ma scène et … ça fonctionne correctement :thinking:

Donc le seul truc que j’ai fait c’est créer une fonctionnalité qui reprend le nom d’une fonctionnalité existante et qui écrase l’ancienne lorsque l’on sauvegarde (ce que je fais assez souvent).
Cette fois-ci ça a fichu le souc et je pense que le problème venait de là, mais je ne saurais plus dire quelle était la première fonctionnalité créée.

Encore merci pour ton aide, je « solutionne » ce sujet !

1 « J'aime »

Génial, tant mieux si ça fonctionne ! :slight_smile:

Et oui, attention il vaut mieux éviter de réutiliser des noms d’IDs externe, ça peut causer des soucis.