Lecture des chaines de caractères

Bonjour @Michel_F,
Tout d’abord, merci pour les évolutions apportées au plugin plugin-mymodbus car la version Beta me permet de communiquer avec mon onduleur.
J’utilise le plugin plugin-mymodbus pour me connecter à mon onduleur SolarEdge par TCP. J’arrive à récupérer les adresses de type uint32, unit16, … mais je n’arrive pas à récupérer une valeur de type chaine de caractère (string).
Le documentation de SolarEdge est dispo ici https://knowledge-center.solaredge.com/sites/kc/files/sunspec-implementation-technical-note.pdf

Voici le type de commande qui fonctionne :

Lorsque j’essaie de récupérer une chaine de caractères, par exemple l’adresse 40020 (page 15 du manuel), je mets en place la commande suivante :

Malheureusement, dans les logs j’ai une erreur (ligne 496) :

Si je comprend bien, c’est un problème de conversion.
Est-ce que quelqu’un peut m’aider ?
Merci d’avance,

Bonjour @fredoche1810,

Mais on dirait bien qu’un bug a été trouvé ! Je dirais bien merci, mais ce bug ne vous arrange pas trop…

A vrai dire c’est le test isnan(value) qui pose problème. Ce test doit être fait pour éviter d’autres problèmes, mais n’est de toute évidence pas compatible avec les chaînes de caractères.

Je regarde pour corriger ça ce soir.

A+
Michel

Bonjour les spécialistes,
J’essaie de me mettre à modbus pour lire mes données de mes micro-onduleurs ECU APSystems.
A priori d’après ce que j’ai trouvé les registres sont les mêmes que SolarEdge, ce qui m’a fait venir ici.
Coté ECU j’ai configuré :


Coté Mymodbus, c’est la beta sur un jeedom 4.3.17 demon bien démarré, ras.
J’ai configuré de la sorte :

et en commande :

ce qui correspond à ce que je vois de fredoche1810.
Mais je n’ai rien qui remonte à part le temps de rafraichissement.
Je ne vois pas d’erreur remonter dans les logs debug.
mymodbus.txt (21,5 Ko)
Si l’un de vous pouvait me donner un avis ou me montrer mon erreur ?
Merci
Bien cordialement

Il faut mettre l’adresse esclave à 1 ou 2 en fonction de l’ID que tu veux lire, je pense.

Oui j’ai oublié de dire que j’avais essayé aussi.

[2023-06-21 16:46:48][DEBUG] : eqLogic mymodbus getCompleteConfiguration: [{"id":"954","name":"Test Modbus ECU","eqProtocol":"tcp","eqKeepopen":"1","eqRefreshMode":"polling","eqPolling":"10","eqWriteCmdCheckTimeout":"1","eqFirstDelay":"0","eqTcpAddr":"192.168.1.120","eqTcpPort":"502","eqTcpRtu":"1","cmds":[{"id":"18450","name":"Puissance","type":"info","cmdSlave":"1","cmdFctModbus":"3","cmdFormat":"uint16","cmdAddress":"40084","cmdFrequency":"1","cmdInvertBytes":"0","cmdInvertWords":"0","repeat":"0"},{"id":"18451","name":"Conso","type":"info","cmdSlave":"1","cmdFctModbus":"3","cmdFormat":"uint32","cmdAddress":"40234","cmdFrequency":"1","cmdInvertBytes":"0","cmdInvertWords":"0","repeat":"0"}]}]
[2023-06-21 16:46:54][DEBUG] : jeemymodbus.php: $result *{"heartbeat_request":1687358814}* type: array
[2023-06-21 16:47:49][DEBUG] : jeemymodbus.php: $result *{"eqId":"954","values":{"cycle_time":10.019027948379517}}* type: array
[2023-06-21 16:47:49][DEBUG] : jeemodbus.php: Mise à jour cmd Temps de rafraîchissement -> new value: 10.019
[2023-06-21 16:47:49][INFO] : jeemodbus.php: Mise à jour des commandes info : 'Temps de rafraîchissement'
[2023-06-21 16:47:54][DEBUG] : jeemymodbus.php: $result *{"heartbeat_request":1687358874}* type: array
[2023-06-21 16:48:39][DEBUG] : jeemymodbus.php: $result *{"eqId":"954","values":{"cycle_time":10.025584936141968}}* type: array
[2023-06-21 16:48:39][DEBUG] : jeemodbus.php: Mise à jour cmd Temps de rafraîchissement -> new value: 10.026
[2023-06-21 16:48:39][INFO] : jeemodbus.php: Mise à jour des commandes info : 'Temps de rafraîchissement'

Ah ça y est ça bouge :slight_smile: il fallait décocher rtu
On apprend de ses erreurs