Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Forçage sur Jeedom via MQTT
#11
(07-06-2024, 02:15 PM)F1ATB a écrit : Vous y êtes presque. Regardez la doc sur le site F1ATB
[Image: Capture-decran-2024-06-03-091452.png]
Il vous manque les { } pour délimiter un message JSON
Le nom Triac1 ou autre  doit être également identique au nom donné dans le routeur

Cordialement, André.

Bonjour André,

Je me suis penché sur la modification de votre code source pour que celui-ci intègre bien un message de commande qui serait envoyé sur un topic racine + un topic de publication. 
En effet, actuellement ce code ne permet que d'agir sur réception d'un message sur un topic racine uniquement. Mais ce mode de fonctionnement pose un problème avec le plugin MQTT Manager utilisé avec Jeedom, celui-ci requérant obligatoirement un topic de publication qui ne peut être non vide.

Voici quelques modifications que je vous propose de faire dans le fichier MQTT.ino, pour une intégration dans une éventuelle prochaine version.

Ligne 55
Original :
          sprintf(TopicAct, "%s", LesActions[i].Titre.c_str());
Remplacer par :
         sprintf(TopicAct, "%s", "routeur/SSR1");

Où "routeur/SSR1" sont les topics racine/de publication. Ici ils sont codés en dur, mais je vous propose de pouvoir les personnaliser pour une prise en compte dans la variable LesActions[i].Titre, via l'interface HTML par exemple comme pour la lecture des informations de puissance Pw et pf.

Lignes 108 à 115
Original :
if (subMQTT == 1) {
    for (int i = 0; i < NbActions; i++) {
      if (LesActions[i].Actif > 0 && LesActions[i].Titre == String(topic)) {
        LesActions[i].tOnOff=ValJson("tOnOff", message);
        LesActions[i].Prioritaire();
      }
    }
  }

Remplacer par (modifications en rouge):
 if (String(topic) == "routeur/SSR1") {  // Activation des relais SSR/Triacs sur le topic SSR1
  if (subMQTT == 1) {
    for (int i = 0; i < NbActions; i++) {
      if (LesActions[i].Actif > 0 &&  String("routeur/SSR1") == String(topic)) {
        LesActions[i].tOnOff=ValJson("tOnOff", message);
        LesActions[i].Prioritaire();
      }
    }
  }

Cela reste très basique bien sûr, et c'est plus une rustine qu'autre chose. Mais avec ces modifications, il est possible désormais de commander les relais/triacs avec des commandes tOnOff à partir de Jeedom.

   

En vous remerciant d'avance. Et merci infiniment également pour votre travail et la mise à disposition de ce remarquable routeur solaire !
Cordialement,
Daniel
Répondre
#12
Je n'utilise pas MQTT Manager, je le trouve contre-intuitif, d'ailleurs je n'ai pas réussi à faire passer une commande non plus  Big Grin
Mais avec jMQTT https://market.jeedom.com/index.php?v=d&...ay&id=3166 les indications de André sont fonctionnelle.
Toutefois je te rejoins sur le fait d'avoir commandes dans le topic du routeur et non à la racine du broker.
Je regarde aussi à modifier le code en ce sens  Wink
Enphase -> Node-RED -> Source MQTT
3x IQ7+/3x 375WhC + 4x IQ8MC/4x 400WhC
1x Routeur 12.06_Custom -> CES 2,5kW
Domotique gérée sous Jeedom 4.4.19 (DIY VMM Synology)
Répondre
#13
Si dans le routeur vous mettez comme nom "topic/ssr1"
Cdlt
Répondre
#14
Pour moi, cela ne fonctionne pas mais je vais laisser @danielJ répondre
Répondre
#15
Thumbs Up 
(08-06-2024, 07:36 PM)Nalexdouze a écrit : Je n'utilise pas MQTT Manager, je le trouve contre-intuitif, d'ailleurs je n'ai pas réussi à faire passer une commande non plus  Big Grin
Mais avec jMQTT https://market.jeedom.com/index.php?v=d&...ay&id=3166 les indications de André sont fonctionnelle.
Toutefois je te rejoins sur le fait d'avoir commandes dans le topic du routeur et non à la racine du broker.
Je regarde aussi à modifier le code en ce sens  Wink

Bonjour,

Merci pour l'information concernant jMQTT. Wink
 
Le problème (si problème il y a...), c'est que jMQTT est un plugin 'privé' dont le développement ne tient qu'au bon vouloir de 'Bad' qui le maintient. Si aujourd'hui je ne doute pas qu'il fonctionne bien, et peut-être même mieux que MQTT Manager, ce ne sera pas forcément le cas demain. Les exemples de plugins dans le market place de Jeedom, plus ou moins abandonnés par leurs concepteurs, ne sont pas rares malheureusement. 
Aussi lorsqu'un plugin 'officiel' (maintenu par la team Jeedom) co-existe avec un plug-in 'privé' qui n'offre pas cette garantie de pérennité, pour moi le choix est vite fait...
Après, c'est vrai aussi que je n'ai pas envie non plus de remplacer ce plugin uniquement pour cette raison, car derrière j'ai quelques 80 équipements divers est variés (en Wifi et Zigbee) qui tournent avec sans aucun problème.

Maintenant pour en revenir aux commandes envoyées directement sur la racine du topic MQTT sans passer par un topic de publication, je ne suis pas sûr en effet que ce soit bien conforme à cette norme (à vérifier...). Shy

(09-06-2024, 08:24 AM)F1ATB a écrit : Si dans le routeur vous mettez comme nom "topic/ssr1"
Cdlt

Bonjour André,

Si c'est bien sur la modification de ce paramètre que l'on parle :
   

Hélas, je viens de tester de mon coté également comme Francky, et je ne peux que confirmer que cela ne fonctionne pas en effet... Perso, je crois avoir dû tester quasiment toutes les combinaisons possibles sur ce paramètre, sans succès.
Cdlt,
Répondre
#16
Donnez à votre SSR sur le routeur le nom "topic/SSR1"
Répondre
#17
Le nom doit être donné dans le titre de l' action sur l page actions , exemple chauffeeau/SSR1
Cdlt
Répondre
#18
Thumbs Up 
(09-06-2024, 01:48 PM)F1ATB a écrit : Le nom doit être donné dans le titre de l' action  sur l page actions , exemple chauffeeau/SSR1
Cdlt

Ok, bien vu.
J'ai donc testé comme ça :
   

Les paramètres MQTT restent donc inchangés :

   

Commandes testées avec MQTT Explorer et jeedom :

   

et....

Ca fonctionne !

Et bien un grand merci ! Smile
Finalement la solution est plutôt simple à mettre en oeuvre, il fallait juste y penser... Pas besoin d'intégrer un patch quelconque du coup, je pense qu'on peut vivre avec un nom de type xxx/relais. Ca m'aura permis de faire un peu d'analyse de code, c'est un bon entraînement... Wink

Merci pour vos lumières André ! Dès que je serai passé au stade de la réalisation pratique et fonctionnelle (très bientôt), je ne manquerai pas de vous en faire part !
Shy
Répondre
#19
Merci pour l'astuce

J'ai mis mon post a jour => https://community.jeedom.com/t/tuto-real...ase/124684

Idem, cela fonctionne pour moi aussi

   
Répondre
#20
Heureux de voir qu'une solution simple, résout ce petit problème.

Cdlt
André
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 6 visiteur(s)