Utilisation commande en action/message

Bonjour
mqtt2 version 2025-05-17 01:20:31
j’ai un equipement avec comme topic nodered.
une commande de type action/défaut test avec topic test
dans message je met « rouge » par exemple
dans nodered j’ai un mqtt in avec nodered/test et un debug derriere
si je teste la commande ça fonctionne. je reçois bien rouge

par contre si je passe la commande en action/message
je teste la commande avec « bleu » comme message
coté nodered je reçois toujours « rouge »

merci pour vos idées

Bonjour

Pourriez-vous montrer la configuration de la commande? Cela semble être un minimum utile ici.

Sous jmqtt j’envoie des json sans aucun soucis.

Bonjour
Merci pour la réponse.
J’utilise MQTT Manager pas jMQTT.


image

Je n’ai pas tout compris à ta configuration ni à ce que tu voulais faire mais normalement en action/message il faut des { } essaye avec :

{rouge}

ou

{code: "message ", value: "rouge"}

Merci pour la réponde.
Ca ne fonctionne pas.
je vais essayer d’etre plus clair.
Ma commande ci dessous Action/défaut si je fais tester j’envoie bien vers le topic test la valeur Rouge

image

Si je change Action/défaut en Action/message comme ci-dessous
image
et que je fait tester avec Bleu ou {Bleu}
image
C’est toujours le Valeur Rouge qui est envoyée au topic test

Bonjour,

Il faut mettre le tag #message# à la place de Rouge sinon il ne pourra pas savoir que tu as transmis une autre information à ton message

pour re phraser ce que @Bison a expliqué:

lors d’une action, le code va regarder ce qu’il y a ici:
image
et l’envoyer en remplacant éventuellement certains tags par la valeur reçue en paramètre lors de l’execution de la commande:

  • si type message, il remplace #title# et #message#
  • si curseur => tag #slider#
  • si liste => tag #select#
  • si couleur => #color#

donc ici

  • le message (payload de base) configuré est « rouge »,
  • dedans il cherche et remplace #message# & #title# (car commande de type message) par les valeurs reçues (celle encodée via la popup lorsqu’on test manuellement ou celle reçue dans le scénario par exemple)
  • le message final est donc « rouge » (sans surprise)

donc le message configuré dans la commande c’est le template et dedans on peut avoir des parties dynamiques (les tags) qui seront remplacés par leur valeur respectives à l’exécution.

si le but est de n’avoir que la valeur, il faut mettre #message# mais ce système permet de composer des payloads plus complexes

Ah voilà c’est l’info qui manquait !
Donc effectivement #message# comme l’ont dit Bison et Mips.

Génial ça marche bien pour le test de l’action/message avec le tag #message#.
Je vais maintenant voir en PHP
Merci à tous

En php j’ai un problème avec le code ci-dessous qui envoi un message à NodeRed


le message est bien transmis au topic nodered/send
par contre nodered reçois « Blanc && bleu || jaune » au lieu de « Blanc et bleu ou jaune »
??

dans le debug mqtt2d