Config Switch en mqtt

,

Bonsoir !
J’ai une petite question toute simple :
Quand j’ajoute un interrupteur en mqtt, je n’arrive pas à l’activer (ou le désactiver) comme un switch normal au départ d’un post sur le topic mqtt dédié.



Par contre, si je l’active (ou le désactive) via le dashboard, la commande apparaît bien en mqtt.
J’ai essayé de poster “ON” et “1”. Devrais-je essayer autre-chose ?
Qu’est-ce que je fais de travers ?
Je sais, ça fait deux questions… :wink:
Si je réactive l’option “ce périphérique ne fait qu’envoyer des données”, ça fonctionne mais je ne peux alors pas contrôler mon switch depuis le dashboard.

Hello!

Que je comprenne bien, ton périphérique est de quelle marque, il attend quel genre de message en MQTT ? :slight_smile:

Ou ta recherche n’est que théorique ?

De fait, je me rends compte que ce n’est pas super clair…
Je joue avec Tasmota. Ce dernier est capable de détecter une simple, double… pentuple pression sur un bouton.
Je souhaite que lorsque j’appuie une/deux… fois sur ce bouton, une scène soit exécutée.
Jusque-là, tout va bien.
J’ai créé un fake device “interrupteur” en mqtt. Si je demande à mon périphérique Tasmota de publier un “1” (ou “0”) sur le topic dédié quand il y a une simple/double pression, la scène est exécutée car changement d’état de l’appareil.
Là où ça coince, c’est si je n’active pas la case “ce périphérique ne fait qu’envoyer des informations à Gladys” (dans l’objectif de pouvoir activer l’interrupteur depuis Gladys’s Dashboard et y exécuter la scène sans devoir pousser sur le bouton physique), il m’est impossible d’agir dessus ! Pas d’activation/désactivation/toggle (je tiens bien compte du fait que le topic change lorsqu’on désactive la case “ce périph ne fait qu’envoyer…”).
Je me demandais donc si je faisais mal quelque-chose ou si ce n’était pas possible (j’en doute puisqu’un interrupteur peut renvoyer son état et on peut agir dessus via le dashboard).

Pourquoi ne pas utiliser l’intégration tasmota ?

Car elle ne détecte pas mon interrupteur seul (qui est en fait un RE5VC de chez Sonoff dont j’ai dissocié le switch du relais).
De manière générale, l’intégration Tasmota n’aime pas qu’on ajoute des fonctionnalités non prévues et ne prend pas en charge certains périphériques diy. J’ai par exemple un wemos D1 mini couplé à un rc522 (scanner RFID). Tasmota gère ça tout seul mais l’intégration dans Gladys doit se faire manuellement par le biais de règles et de post en MQTT. De même pour le 433 MHz, l’infrarouge…

Du coup le service tasmota doit évoluer pour prendre en charge ce qui est natif et supporté. J’essai juste de comprendre pourquoi tu devrai bricoler en mqtt avec un périphérique tasmota.

1 « J'aime »

Ce serait effectivement l’idéal et sans doute pas si difficile dans la mesure où tout est bien libellé dans les posts de Tasmota.
Une mise à jour du service arrivera certainement :partying_face:
En attendant, j’utilise les règles pour faire publier Tasmota en MQTT et ça fonctionne très bien (hormis la petite difficulté que je rencontre) :wink:

En fait ce qu’il faut prendre en compte, c’est que l’intégration MQTT a 2 modes:

  • Soit ton périphérique est un capteur, qui envoie des valeurs en passant par le MQTT, donc dans le sens “capteur → Gladys”
  • Soit tu as un actionneur, qui attend des ordres MQTT de Gladys. Dans le sens “Gladys => actionneur”

Avoir un périphérique qui fait les deux n’a pas de sens, ici en gros ce que tu veux faire c’est une petite triche pour être capable de déclencher virtuellement un périphérique physique sans que le périphérique physique ait été déclenché. Comme une sorte “d’override” de la valeur réelle.

Ce qui ferait sens pour toi en fait, ce serait d’avoir une box sur le dashboard “déclencher une scène” non?

En attendant d’avoir ça, vu que tu veux tricher je pense qu’il y a un moyen de le faire quand même, c’est pas fou mais à mon avis ça marche.

  • Met ton périphérique en “ce périphérique ne fait qu’envoyer des informations à Gladys”. Copie-colle le topic qui est affiché et utilise le dans ton tasmota
  • Décoche la case pour que ton périphérique soit déclaré en tant qu’actionneur, ce qui devrait afficher un autre topic MQTT, mais ne le prend pas en compte.
  • Voilà, ça devrait fonctionner :slight_smile: Comme le périphérique est déclaré en tant qu’actionneur, tu devrais pouvoir le contrôler depuis l’UI. Le topic que tu as récupéré à l’étape 1 devrait toujours fonctionner

Je pense que ça marche mais je n’ai pas testé.

Le seul “souci” de ce hack, c’est que Gladys va publier un message MQTT a chaque fois que tu déclenchera manuellement la scène, mais bon ça ne fait rien.

Edit: Sinon, j’ai une autre option possible: créer 2 features différentes: une qui sera le déclencheur “virtuel”, et une qui sera le déclencheur “physique”.

Ensuite tu mets dans ta scène 2 triggers possible, un sur la virtuel et un sur le physique

1 « J'aime »

T’es trop fort!
Juste au cas où quelqu’un en doutait :wink:

Ça marche donc! (Je poste sur le topic donné quand on coche “ne fait qu’envoyer” mais je garde cette case décochée)
Ceci était nécessaire pour mon chauffage (encore!) dans le cas où je veux overrider (en bon franglish) la programmation. En effet, si je pars ou reviens plus tôt, rien ne sert d’activer le switch de la chaudière car la programmation repasse derrière! Il fallait donc que ce soit un fake device qui soit activé avec un test dans une scène…
Merci en tout cas!

1 « J'aime »