Publier un message en JSON

Bonjour,

J’essaye de remplacer mes scénarios progressivement par du NodeRed et je me suis attaqué à la gestion des notifications comme j’ai commencé à l’expliquer dans ce post :

J’ai crée un virtuel pour composer le message :

J’ai crée un équipement MQTT et une commande associée pour envoyer le payload sur le bon topic :

Et enfin je teste la création du payload via un bloc code :

cmd::byString('#[Communication][Message payload][titre]#')->event('1 test titre');
cmd::byString('#[Communication][Message payload][message]#')->event('2 test message');
cmd::byString('#[Communication][Message payload][media]#')->event('discord');
cmd::byString('#[Communication][Message payload][canal]#')->event('test');
cmd::byString('#[Communication][Message payload][type]#')->event('normal');

$payload_array = [
    titre => cmd::byString('#[Communication][Message payload][titre]#')->execCmd(),
  	message => cmd::byString('#[Communication][Message payload][message]#')->execCmd(),
  	media => cmd::byString('#[Communication][Message payload][media]#')->execCmd(),
  	canal => cmd::byString('#[Communication][Message payload][canal]#')->execCmd(),
  	type => cmd::byString('#[Communication][Message payload][type]#')->execCmd(),
];
$payload = json_encode($payload_array,JSON_FORCE_OBJECT);
cmd::byString('#[Communication][Message payload][payload]#')->event($payload);

Le payload est bien envoyé mais pas visiblement pas avec le bon format :

"{"titre":"1 test titre","message":"2 test message","media":"discord","canal":"test","type":"normal"}"

Ce que je vois bien dans le debug NodeRed

Unexpected token t in JSON at position 3

Et j’avoue que je sèche là…

Hello @Isilorn,

Tu n’es pas loin, mais tu cherches à faire beaucoup trop compliqué :wink:

Avec jMQTT, il suffit de construire ton payload en y intégrant directement les commandes de ton virtuel:

Ensuite, tu n’as qu’à lancer la publication en executant la commande action.

Qu’en dis-tu ? :slight_smile:

6 « J'aime »

Magique :slight_smile:

image

1 « J'aime »

image

1 « J'aime »

Je vais continuer mes tests et déployer progressivement, je ferai un tuto après pour ceux que ca intéresse :slight_smile:

Merci beaucoup !

1 « J'aime »

Et pour info, ca marche exactement pareil avec le MQTT Manager officiel

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.