Dialogue NODERED- ARDUINO 433

Salut tout le monde, j’aurais besoin d’un petit coup de main car j’ai atteins mes limites en codage entre ces 2 plateformes.
J’ai réussi à liaisonner MQTT avec NodeRed qui envoie un message à l’arduino pour qu’il envoie un code 433 mais ça ne veut pas.
Je précise que le code Arduino semble bien envoyer quelques chose à l’émetteur car j’ai ajouté une LED témoin qui clignote bien mais aucune réaction de mon appareil 433.

Voici la partie du flow :
a = ‘“SendRadioCode”’
msg.payload="{“function_name”:" + a + “,“Code”:” + msg.payload + “}%”;
return msg;

ce qui donne un envoi de ce type :
“{“function_name”:“SendRadioCode”,“Code”:5588308}%”

Coté Arduino, voici le code de réception récupéré de Gladys V3 :
void executeFunction(String json_data) {
StaticJsonBuffer<200> jsonBuffer;
JsonObject& v = jsonBuffer.parseObject(json_data);
//on décompose la chaine de cartère
if ( v[“function_name”] == String(“SendRadioCode”) ) {
SendRadioCode(v[“code”]);
}
}

et là se sèche …
Si vous arrivez à tout piger et avez une idée lumineuse, je suis preneur … :unamused:

Bonsoir @tiboys
c’est un Rflink que tu utilises?

Je suis pas sûr de comprendre, j’utilise la librairie rcswitch.
C’était ta question ?

Je te demandais si tu avais un montage RFlink , c’est a dire une arduino Mega un émetteur et un récepteur et dans la mega tu injectes le programme Rflink (projet open source)

Désolé je n’avais pas compris. L’installation est sur un arduino uno avec émetteur et récepteur 433.
Sur chaque fil de data, j’ai ajouté une led pour qu’elle clignote lors de transfert d’info.
Le code qui a été inséré en arduino est celui-ci :

Le tuto était celui-ci :

Ah oui j’avais survolé ça a l’époque de la V3, mais je suis tombé sur le rflink et comme j’avais une mega j’ai fait l’installation et on se prend moins la tête avec le code. Si tu passes avec une méga 2560, j’ai fais un tuto sur node red et rflink qui fonctionne bien (chez moi ), il ne restera qu’ a coder un peu, sous node red.

Pour ton cas je ne pourrais pas aider,

1 Like

Salut @tiboys ! Est-ce que la partie arduino seule fonctionne bien ? Si tu prend ton arduino, branché à ton ordinateur au logiciel Arduino, ça marche bien ?

Salut @pierre-gilles , la même chose se produit quand je branche l’arduino sur un NodeRed local.
Réception nickel avec modification du bouton dans Gladys via MQTT mais l’émission ne fonctionne pas.
“{“function_name”:“SendRadioCode”,“Code”:5591380}%”
Le message est bien envoyé à l’arduino et la led connecté sur l’émetteur clignote mais les appareils 433 ne réagissent pas.
Le format du code envoyé semble pourtant respecter celui attendu par l’arduino vu que la led clignote mais impossible de savoir où sa coince.
J’ai testé avec un autre arduino en réception 433 mais qui ne capte rien, comme ci le code envoyé n’était pas “convenable”.

1 Like

Et sans passer par Node RED ? Avec le logiciel arduino uniquement ?

Bingo, la requête dans le moniteur série de l’arduino active bien l’appareil 433 :
{“function_name”:“SendRadioCode”,“code”:“5588308”}%

C’est donc entre NodeRed et l’arduino …
Ce doit être dans cette requête que ça coince alors :
a = ‘“SendRadioCode”’
msg.payload="{“function_name”:" + a + “,“code”:” + msg.payload + “}%”;
return msg;

1 Like

rajoute des logs dans Node-RED pour voir le payload envoyé :slight_smile:

1 Like

Désolé mais je ne sais pas faire ça … :unamused:

Regarde ma vidéo sur Node-RED sur YouTube, dedans je montre comment faire :slight_smile:

1 Like

@pierre-gilles , j’ai revisionné ta vidéo très instructive.
Je n’ai pas tilté mais en fait les logs dont tu parles correspondent au débug.
Je l’utilise depuis le début pour voir où ça coince.

Bon alors je suis vraiment neuneu. Je viens de me rendre compte que j’avais un problème de majuscule dans le “Code” alors que l’arduino attendait “code”. Je n’ai pas été assez rigoureux sur la casse des valeurs :unamused:

Merci @Psoy pour ton post, désolé je n’avais pas vu ta réponse. Je vais regarder ton tuto et le conserver au ca où.
Merci à tous les 2.

4 Likes