Impossible de récupérer une valeur depuis mon onduleur en modbus TCP

Bonjour,
J’ai installé le plugin officiel Modbus.
Je souhaite récupérer les valeurs depuis mon onduleur Solaredge.
Depuis Modbus Doctor j’arrive bien à récupérer les valeurs (ici 4 registres correspondants aux puissances Totales, phase 1, 2 et 3 (négative car je consomme depuis le réseau).


J’ai créé l’équipement dans le plugin

et la commande suivante pour récupérer juste la 1ère valeur:

Mais je ne récupère aucune valeur, juste des erreurs dans le log:


A noter que j’ai plusieurs commande « pas défaut » dont je n’arrive pas à me débarrasser, qui reviennent systématiquement même après effacement:

Auriez vous une idée?
Merci à tous

Je ne conais pas le plugin officiel ni ton matos…

Mais tu peut essayer avec le plugin mymodbus pour voir si ca fonctionne mieux…
Perso ca fonctionne avec mymodbus et du matos victron…

Oui et bientôt une nouvelle version de #plugin-mymodbus :slight_smile:

Salut

Pour le Modbus j’ai abandonné jeedom, je passe par node-red. Plus de choix et cela fonctionne pour ma Vmc alors que jeedom pas moyen.

Je sais pas ce que cela vaut mais tu as ce flow:

Antoine

Merci de l’info. Je confirme, avec mymodbus je récupère ma variable. Merci pour l’info… dommage pour modbus… pourtant une version « officiel » et « payante »…

Merci de l’info. Par contre j’ai galéré pour démarrer le démon. Finalement je suis passé sur la Beta de mymodbus, et là ça semble fonctionner. Il me reste une erreur dans le log sur /usr/bin/python « Aucun fichier ou dossier de ce type ».

Je ne connaissais pas, mais visiblement cela fait appel à l’API de Solaredge (que j’utilise déjà depuis le plugin "Solaredge »). Mais avec l’API les possibilités de récupération sont limitées (nombreuses sont les valeurs que l’on ne sait pas récupérer) et le rythme de récupération que au 1/4h maxi. En plus nous sommes lié à la connection internet et au bon fonctionnement des serveurs Solaredge.
D’un autre côté, j’aimerais pouvoir piloter mes onduleurs et changer depuis Jeedom les profils d’utilisation du stockage afin d’adapter le fonctionnement du stockage aux conditions météo à venir, au tarif EDF Tempo à venir, etc. Par l’API je n’ai pas l’impression que c’est possible. Au niveau Modbus les possibilités semblent plus grandes… à suivre…

Comme dit, la nouvelle version est en cours. Pas mal de choses vont changer. Si tu peux attendre quelques temps (je pense sortir la première beta vers la fin du mois) tu pourras utiliser la nouvelle version.
Si tu veux, je peux aussi te contacter si tu veux tester la beta.

Je vais dans un premier temps poursuivre sur la version béta actuelle, donc cela va me permettre d’avancer sur Solaredge, mais également de tester ton Plugin. Quand tu sortiras la béta de ta nouvelle version, je suis partant pour la tester si tu le souhaites.

Ce sera sans doute d’une grande aide. Tu peux te manifester dans cette conversation, histoire qu’on ne t’oublie pas : Mymodbus quoi de neuf?

@Michel_F j’ai une question sur l’utilisation de Mymodbus. Les valeurs que je reçois de Solaredge sont en INT16 signé. Pas de problème sur Modbus Doctor:


Mais dans Mymodbus il n’interprète pas le bit de signe pour un signe… donc que des valeurs positive et erronée quand on est négatif. Quelle serait la solution?

Il y a un calcul à mettre dans le champ option, je ne le connais pas par choeur, tu le trouveras sur ce forum en cherchant #plugin-mymodbus et Bebel27 (le mainteneur du plugin).

Quand à la prochaine version, ce cas est parfaitement géré. Pour l’instant la lecture (info) est ok, la fonction d’écriture (action) pas du tout écrite et l’interface est imparfaite.

J’ai cherché, mais je n’ai pas trouvé ce calcul à entrer dans le champ option.
Serait-ce le test d’une valeur >32767 à laquelle il faut retrancher 32768? Si c’est le cas, ça ne semble pas satisfaisant dans mon cas, je l’avais fait avec un Virtuel déjà. Entre-temps j’ai enfin réussi à récupérer mes valeurs sur le plugin Modbus officiel, et sur celui-là, pas de problème de valeurs négatives. Par contre j’ai plusieurs équipements Modbus derrière mon onduleur maitre qui est seul en Ethernet. Pour accéder aux autres équipements, je suis obligé de créer d’autres équipements avec des Unit ID spécifique, mais avec la même adresse IP. Cette manip fonctionne avec Mymodbus, mais ne fonctionne pas sur l’officiel Modbus (ce dernier ne semble pas relâcher la communication, du coup les autres équipements échouent comme l’onduleur Solaredge passerelle Modbus TCP ne peut initier une nouvelle connexion quand une autre est active. Bref, 2 plugins, aucun ne fonctionne suffisamment pour me permettre d’aboutir…

Le plus logique, selon moi est
Si > 32767 alors valeur - 65535

La prochaine version devrait gérer les passerelles correctement, il ne faudrait qu’un équipement et l’id/ adresse esclave est à configurer sur la commande.
Par défaut cet id est à 0, c’est à dire pour du tcp normal.

Comme dit, si tu peux attendre, je ne peux que t’y encourager.
Comme tu as une configuration que je ne peux pas tester chez moi, tu deviens intéressant pour moi.

Contacte moi en mp si tu veux tester déjà la version intermédiaire, provisoire, non définitive et sans garantie en cours de développement. Le pré pré alpha buggée, quoi.(mais qui lit les registres sur mon automate)
Il faut python 3.8 minimum pour pouvoir installer la dernière version du module pymodbus.

j’ai fait comme cela