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 …).
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.
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.
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.