Comme il s’agit de la même interface série, c’est normal que ça ne fonctionne pas ET la balance a réellement l’adresse Modbus 121 (unit id) ou c’est le registre à l’adresse 121 sur l’esclave 1 que vous voulez lire comme c’est le cas dans Node Red ?
Ce que je vous propose c’est de désactiver l’équipement Balance et de créer une commande avec les bons paramètres dans l’autre équipement (que vous pouvez renommer en Modbus série ou qqc comme ça et ne pas l’afficher sur le dashboard). Vous pouvez créer un virtuel dédié à chaque équipement (donc 2 virtuels à afficher sur le dashboard) qui ne reprennent que les commandes souhaitées pour ranger correctement.
Je viens de tout modifier. Il s’agit bien de l’esclave 121 et le registre 0 ( j’ai aussi un esclave 1 avec le registre 0, c’est pour cela qu’il a du apparaitre sur une capture d’écran).
Le premier capteur remonte très bien mais toujours le même problème avec le second. Je commence à me demander si ce n’est pas le capteur qui a un problème mais il remonte bien via node red.
[2024-04-30 15:54:49] DEBUG : Factory Response[ReadHoldingRegistersResponse': 3]
[2024-04-30 15:54:49] DEBUG : Frame advanced, resetting header!!
[2024-04-30 15:54:49] DEBUG : Getting transaction 61
[2024-04-30 15:54:49] DEBUG : Frame - [b'=\x03\x02\x037\xa9g'] not ready
[2024-04-30 15:54:49] DEBUG : [823]
[2024-04-30 15:54:49] DEBUG : send: 0x3d 0x3 0x0 0x1 0x0 0x1 0xd0 0xf6
[2024-04-30 15:54:49] DEBUG : Adding transaction 61
[2024-04-30 15:54:49] DEBUG : recv: 0x3d 0x3 0x0 0x1 0x0 0x1 0xd0 0xf6
[2024-04-30 15:54:49] DEBUG : Frame check failed, ignoring!!
[2024-04-30 15:54:49] DEBUG : Resetting frame - Current Frame in buffer - 0x3d 0x3 0x0 0x1 0x0 0x1 0xd0 0xf6
[2024-04-30 15:54:50] DEBUG : recv: 0x3d 0x3 0x2 0x0 0xb3 0xa9 0xf4
[2024-04-30 15:54:50] DEBUG : Getting Frame - 0x3 0x2 0x0 0xb3
[2024-04-30 15:54:50] DEBUG : Factory Response[ReadHoldingRegistersResponse': 3]
[2024-04-30 15:54:50] DEBUG : Frame advanced, resetting header!!
[2024-04-30 15:54:50] DEBUG : Getting transaction 61
[2024-04-30 15:54:50] DEBUG : Frame - [b'=\x03\x02\x00\xb3\xa9\xf4'] not ready
[2024-04-30 15:54:50] DEBUG : [179]
[2024-04-30 15:54:50] DEBUG : PyModbusClient: *climat61HR* read value for T (command id 2173): 179
[2024-04-30 15:54:50] DEBUG : send: 0x79 0x3 0x0 0x0 0x0 0x1 0x8e 0x72
[2024-04-30 15:54:50] DEBUG : Adding transaction 121
[2024-04-30 15:54:50] DEBUG : recv: 0x79 0x3 0x0 0x0 0x0 0x1 0x8e 0x72
[2024-04-30 15:54:50] DEBUG : Frame check failed, ignoring!!
[2024-04-30 15:54:50] DEBUG : Resetting frame - Current Frame in buffer - 0x79 0x3 0x0 0x0 0x0 0x1 0x8e 0x72
[2024-04-30 15:54:52] DEBUG : mymodbus::deamon_info
[2024-04-30 15:54:52] DEBUG : mymodbus::getDeamonLaunchable
[2024-04-30 15:54:52] DEBUG : mymodbus::getCompleteConfiguration
[2024-04-30 15:54:52] DEBUG : mymodbus::getEqConfiguration
[2024-04-30 15:54:52] DEBUG : mymodbus::check_pyenv
[2024-04-30 15:54:52] DEBUG : mymodbus::deamon_info * daemon_info = '{"state":"ok","launchable":"ok"}'
[2024-04-30 15:54:53] INFO : Serial lost connection.
[2024-04-30 15:54:53] DEBUG : Client disconnected from modbus server: trying to send
[2024-04-30 15:54:53] DEBUG : Getting transaction 121
[2024-04-30 15:54:53] ERROR : PyModbusClient: *climat61HR* Something went wrong while reading poids (command id 2182): <class 'TimeoutError'> = . Traceback: <traceback object at 0x7f9b900a2500>
[2024-04-30 15:54:53] INFO : Serial lost connection.
[2024-04-30 15:54:53] DEBUG : Client disconnected from modbus server: None
[2024-04-30 15:54:53] INFO : Send to jeedom : {'eqId': '232', 'values': {'2173': 179, 'cycle_time': 10.005572986602782}}
[2024-04-30 15:54:53] DEBUG : PyModbusClient: *climat61HR* disconnect called
[2024-04-30 15:54:53] DEBUG : Starting new HTTP connection (1): localhost:80
[2024-04-30 15:54:53] DEBUG : jeemymodbus.php: $result *{"eqId":"232","values":{"2173":179,"cycle_time":10.005572986602782}}* type: array
[2024-04-30 15:54:53] DEBUG : jeemodbus.php: Mise à jour cmd T -> new value: 179
[2024-04-30 15:54:53] DEBUG : jeemodbus.php: Mise à jour cmd Temps de rafraîchissement -> new value: 10.006
[2024-04-30 15:54:53] INFO : jeemodbus.php: Mise à jour des commandes info : 'T' 'Temps de rafraîchissement'
[2024-04-30 15:54:53] DEBUG : http://localhost:80 "POST /plugins/mymodbus/core/php/jeemymodbus.php?apikey=Y6TLBE6AjasT7M0XOt3a2w9o6ecm0vxQBwHHOGf7uTPgDCjSOeetBc6bP0aSu6Xf HTTP/1.1" 200 0
Via Node Red, c’est quelle fonction qui est utilisée pour la lecture ?
C’est Modbus Flex Getter du noeud node-red-contrib-modbus
Ces log viennent de pymodbus :
[2024-04-30 15:54:49] DEBUG : send: 0x3d 0x3 0x0 0x1 0x0 0x1 0xd0 0xf6
[2024-04-30 15:54:49] DEBUG : Adding transaction 61
[2024-04-30 15:54:49] DEBUG : recv: 0x3d 0x3 0x0 0x1 0x0 0x1 0xd0 0xf6
[2024-04-30 15:54:49] DEBUG : Frame check failed, ignoring!!
[2024-04-30 15:54:50] DEBUG : send: 0x79 0x3 0x0 0x0 0x0 0x1 0x8e 0x72
[2024-04-30 15:54:50] DEBUG : Adding transaction 121
[2024-04-30 15:54:50] DEBUG : recv: 0x79 0x3 0x0 0x0 0x0 0x1 0x8e 0x72
[2024-04-30 15:54:50] DEBUG : Frame check failed, ignoring!!
A priori, il y a un effet d’écho sur ton bus série. vous avez des résistances de terminaison ?
C’est avec quel code fonction Modbus que la lecture est faite ?
Je n’ai pas de resistance de terminaison mais la sonde qui fonctionne n’en a pas non plus.
La lecture est faite avec la fonction 3 Holding register
Les résistances de terminaison se montent en début et en fin de ligne, donc peu importe le nombre de participants, c’est 2 max : une à chaque extrémité. Dans votre cas, il y a de l’écho, il faudrait y songer, mais ce n’est pas ça le problème puisque via node red le participant répond.
Etes-vous sûr que l’esclave a l’adresse 121 ? Vous avez plusieurs esclaves : 121, 122, 123 ?
Oui je suis sur du numéro d’esclave. Et il y a bien les numéros suivants, ce sont d’autres sondes.
Pour la résistance, je me suis toujours posé la question où la mettre en sachant que les capteurs ne sont pas les uns à la suite des autres mais en liaison sans fil donc sans début ni fin.
Pouvez-vous me faire un croquis de votre installation SVP ? Juste par curiosité.
Edit: quelles adresses pouvez-vous lire sur ces esclaves sans fil ?
Ca convertit quels types de signaux ?
Ca fait une liaison transparente en modbus
OK, merci pour l’info, c’est quelle référence et fabricant ?
Sinon, vous avez pu avancer sur ce point ? Ou fait d’autres tests ?
Les cartes sont des Ebyte 900T20S.
J’en suis toujours au même point, je n’arrive à presque rien.
J’ai juste réussi à faire remonter deux ou trois fois en créant un nouvel objet avec les mêmes paramètres que l’ancien.
Il faudrait tout mettre dans le même équipement MyModbus et désactiver tous les autres qui utilisent l’interface série du mini-PC. Comme l’adresse de l’esclave se trouve dans la commande c’est possible. Il suffit de ne pas afficher l’équipement ni les commandes et de créer un virtuel pour chaque équipement comme vous les voulez pour le dashboard.
Est-ce qu’une autre communication Modbus interroge les modules ? Un autre process utilise le port série/USB ?
J’ai tout dans le même équipement et tout est bien désactivé.
J’ai désactivé node red pour éviter les interférences modbus.
C’est bizarre, ce matin c’est remonté 5 fois puis plus rien depuis une heure. Je vais essayer de changer d’antenne, on ne sait jamais.
Avec un changement d’antenne, le problème est presque résolu, il y a encore des paquets perdus mais ça marche. Merci pour vos explications, j’en sais beaucoup plus sur ce super plugin.
Bonjour
peux tu nous transmettre la référence de la carte et le distributeur.
Merci.
Cordialement



