Node-red, mqtt et port série

Bonjour

Dans un ancien post, Python et serial - #14 par olive , je voulais utiliser python pour interroger un port série. Au final, c’est trop compliqué pour mes compétences.

Sur le forum, j’ai lu des références à node-red et en me renseignant par curiosité, je me suis dis que cela pouvait être la solution. Et en effet, après plusieurs essais/erreurs, j’ai pu avancer au point d’envoyer une commande sur mon port série et recevoir une réponse publiée en mqtt. Je dois encore voir la partie mqtt sous jeedom pour obtenir le résultat voulu. Mais avant, je voudrais peaufiner mon « flow » car la configuration n’est pas encore optimal.

J’interroge le port série avec la commande $GG*B2 envoyé par état wallbox".
Request RS232 envoie la commande et lit la réponse qui est du type:
$OK 26000 0 # 0 ou la tension de recharge, ca. 225V quand la wallbox charge.
wallbox$ #suit la réponse.

Un point me dérange, c’est que j’ai du régler l’input avec « split input after a timeout of x ms » pour avoir la réponse, sinon je ne vois que $GGB2. Je ne comprends pas pourquoi, le payload lit l’output ($GGB2) et l’input (wallbox et $OK …).

Si quelqu’un comprend…

Je cherche aussi un bon tuto/exemple pour gérer la partie mqtt input/output au mieux.

La prochaine étape sera d’utiliser node-red pour une gestion d’un dispositif communiquant en modbus selon ce schéma: VMC <=> modbus <=> node-red <=> mqtt <=> jeedom
Les plugins modbus existant ne correspondent pas à mon besoin.

Merci

Antoine

Hello Antoine,

A tout hasard, j’ai l’impression que tu essayes de récupérer les infos d’une Wallbox.
As-tu regardé du côté du plugin Wallplug ?

Bad

Salut Antoine
pour le MQTT node red c’est assez simple tu a 2 node pour envoyer et recevoir
Capture d’écran du 2021-11-05 02-31-28

pour le tuto tu a celui-ci un peut long mais trés clair
la partie mqtt node red est dans la 2ième moitié de la video

bonne journée

1 « J'aime »

Oui mais ce n’est pas le modèle géré par le plugin proposé.

L’idée est d’intégrer ma wallbox à mon jeedom mais surtout de bricoler avec et mon ordinateur :grin:

Antoine

Merci olive.

Pour mqtt, je pense que cela sera assez simple. C’est vraiment la gestion du serial qui me cause souci. Cela devrait être simple pourtant.
On interroge avec $GG*B2 et on a une réponse type $OK 26000 0 à travailler.

Antoine

1 « J'aime »

une idée comme ça
tu a tester avec un $
en optionaly wait for a start character of → $
puisque tes réponses commence par $ a 1ere vue ?

J’ai réussi à faire ce que je voulais. Lire l’intensité et la tension. Modifier l’intensité depuis jeedom.

Merci de vos commentaires qui m’ont aidé dans ma réflexion.

Pour avoir la réponse que je voulais, j’ai utilisé un split pour séparer selon les retours à la ligne « \n » puis une fonction qui me donne les réponses que je veux traiter. Ensuite je publie cela en MQTT.
Pour modifier l’intensité, j’envoie la valeur depuis jMQTT et depuis une fonction, j’écris le message à envoyer sur le RS232.

Top et relativement simple.

Maintenant, le gros chantier, la gestion de la VMC en modbus RTU.

Antoine

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