Plugin MyModbus

@Bebel27 de cette façon ?

Oui de cette façon.

j’ai l’impression que ça ne change rien du tout.

@Adrien
Je vais simuler sur mon installation voir s’il faut que je rajoute ce mode ou pas ou si la lecture en int suffit.
@Fred25300. Si tu passes par là :wink:

ok ça marche. pour info tous les registres sur le LOGO sont en DWORD. j’espère que tu vas y arriver :slight_smile:
bon courage

Pour l’instant la fonction est présente dans le démon mais je n’ai fais aucun test, des personnes qui en ont fait m’ont remonté l’info que ça ne fonctionne pas. N’ayant pas de matériel je n’ai pas pu travaillé sur le sujet. Je commande du matériel pour faire des essais et je reviendrai vers vous pour vous dire ce qu’il en est.

Bonjour à tous,

Je suis l’heureux possesseur de 2 RPI sur lesquels il y a 2 Jeedom, sur l’un la v3 et sur l’autre la v4.
Je suis en cours de migration de mes équipements de la v3 à la V4 avec le tout nouveau tout beau plugin MyModbus de Bebel27 (en passant, un énorme BRAVO pour le boulot réalisé !).

J’utilisais le plugin Modbus TCP développé part martinez sur la v3 pour communiquer avec mon Automate Unitronics.

J’ai commencé à reprendre les mots et les registres en lecture sur la v4, aucun soucis :

Par contre je n’arrive pas à écrire sur mon automate avec le MyModbus :


[2020-06-13 17:49:29][DEBUG] : Evenement : type=>holding_registers sortie=>2 inputs=>[1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030] values=>[1311, 8, 0, 0, 0, 0, 2961, 0, 0, 0, 105, 48, 28825, 0, 39995] add=>192.168.1.10 unit=>1 eqid=>15
[2020-06-13 17:49:31][INFO] : Debut de l action /usr/bin/python /var/www/html/plugins/mymodbus/ressources/mymodbus_write.py -h 192.168.1.10 -p 503 --unit_id=1 --wsc=17 --value=1 2>&1
[2020-06-13 17:49:34][DEBUG] : Evenement : type=>holding_registers sortie=>3 inputs=>[360] values=>[4624] add=>192.168.1.10 unit=>1 eqid=>15
[2020-06-13 17:49:34][DEBUG] : Evenement : type=>holding_registers sortie=>3 inputs=>[300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311] values=>[3, 43492, 3, 42492, 3, 43192, 0, 641, 0, 319, 0, 1167] add=>192.168.1.10 unit=>1 eqid=>15
[2020-06-13 17:49:34][DEBUG] : Evenement : type=>holding_registers sortie=>3 inputs=>[1006, 1007, 1008, 1009] values=>[198, 245, 219, 203] add=>192.168.1.10 unit=>1 eqid=>15

Je vois bien l’action de le log, mais ça ne passe pas. J’ai essayé la commande directement en ssh, il n’arrive pas à se connecter à mon automate :

pi@raspberrypi:~ $ /usr/bin/python /var/www/html/plugins/mymodbus/ressources/mymodbus_write.py -h 192.168.1.10 -p 503 --unit_id=1 --wsc=17 --value=1 2>&1
unable to connect to 192.168.1.10:503

J’ai fait le test avec la v3 et le plugin Modbus et ça passe, j’ai bien la bonne valeur sur l’automate :

[2020-06-13 18:04:41][DEBUG] : Evenement : type=>coils sortie=>1 inputs=>1 values=>[False] add=>192.168.1.11
[2020-06-13 18:04:43][INFO] : Debut de l action /usr/bin/python /var/www/html/plugins/modbus/ressources/modbus_write.py -h 192.168.1.10 -p 503 --wsr=1100 --value=11 2>&1
[2020-06-13 18:04:46][DEBUG] : Evenement : type=>holding_registers sortie=>3 inputs=>[1, 2, 3] values=>[456, 330, 30] add=>192.168.1.11
[2020-06-13 18:04:46][DEBUG] : Evenement : type=>holding_registers sortie=>4 inputs=>[5] values=>[0] add=>192.168.1.11

On constate qu’il n’y a pas de problème de liaison :

pi@raspberrypi3:/ $ telnet 192.168.1.10 503
Trying 192.168.1.10...
Connected to 192.168.1.10.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
pi@raspberrypi3:/ $

Je ne sais pas ce qui bloque mais y’a un truc.

D’avance merci de votre aide !

Edit : j’oubliais je suis en version stable (2020-05-02 01:01:14) pour MyModbus.

C’est quoi ton automate ?

Unitronics V570

Peux tu tester en bêta voir si tu constate le même problème.

1 « J'aime »

Nickel ça fonctionne !

Merci beaucoup, je vais continuer ma migration.

:+1:

1 « J'aime »

Au fait tu n’es pas obligé de passer par des virtuels pour tes filtres binaires , je ne l’ai pas expliqué mais dans cette dernière bêta tu filtres directement dans une info ça ne surcharge pas le démond, c’est traité en php dans Jeedom.
Tu créer une info, le holding registre à lire et dans option tu filtre ton bit.
Après tu fais ça pour chaque bit que tu as besoins.

Ok, merci pour l’info. Beaucoup plus simple à traiter en effet.

1 « J'aime »

Bonjour,

J’ai eu un plantage tôt ce matin sur le plugin, le démon c’est arrêté :

[2020-06-15 05:33:16][INFO] : mise à jour :  Add =>192.168.1.10 Unit => 1 holding_registers=> 305 -> old value:42592 new value:42492
[2020-06-15 05:33:16][INFO] : mise à jour :  Add =>192.168.1.10 Unit => 1 holding_registers=> 307 -> old value:565 new value:570
[2020-06-15 05:33:16][INFO] : mise à jour :  Add =>192.168.1.10 Unit => 1 holding_registers=> 309 -> old value:379 new value:381
[2020-06-15 05:33:16][INFO] : mise à jour :  Add =>192.168.1.10 Unit => 1 holding_registers=> 311 -> old value:821 new value:798
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner
self.run()
File "/usr/lib/python3.7/threading.py", line 865, in run
self._target(*self._args, **self._kwargs)
File "/var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py", line 129, in polling_thread
rr = client.read_holding_registers(int(hreg_first),i,unit=unit_id)
File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers
return self.execute(request)
File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/sync.py", line 107, in execute
raise ConnectionException("Failed to connect[%s]" % (self.__str__()))
pymodbus.exceptions.ConnectionException: Modbus Error: [Connection] Failed to connect[ModbusTcpClient(192.168.1.10:503)]
Version de python ok
Traceback (most recent call last):
File "/var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py", line 258, in <module>
raise ParameterException('Thread en défaut')
NameError: name 'ParameterException' is not defined
[2020-06-15 06:12:44][INFO] : Debut de l action /usr/bin/python /var/www/html/plugins/mymodbus/ressources/mymodbus_write.py -h 192.168.1.10 -p 503 --unit_id=1 --wsc=1250 --value=1 2>&1
[2020-06-15 06:12:47][INFO] : Debut de l action /usr/bin/python /var/www/html/plugins/mymodbus/ressources/mymodbus_write.py -h 192.168.1.10 -p 503 --unit_id=1 --wsc=1250 --value=0 2>&1
[2020-06-15 06:14:26][INFO] : Debut de l action /usr/bin/python /var/www/html/plugins/mymodbus/ressources/mymodbus_write.py -h 192.168.1.10 -p 503 --unit_id=1 --wsc=303 --value=1 2>&1
[2020-06-15 06:14:27][INFO] : Debut de l action /usr/bin/python /var/www/html/plugins/mymodbus/ressources/

Par contre j’ai bien réussi à écrire sur mon automate.

Je pool toute les 5 secondes, il est vrai que j’ai pas mal d’informations récupérées (environ 60 variables), ça viendrait de ça ?

J’ai lu le log, mais là ça dépasse mes compétences.

Si vous avez une idée, je suis preneur !

Apparement un soucis de connection , du coup ça plante le démond.
Tu peux mettre gestion du démond en auto et il redémarrera si la connection est OK tout seul

Bonjour, Je dispose d’un SOFREL S530 pour gérer le niveau d’une cuve de récupération d’eau de pluie, le retour de marche d’une pompe, la pression de mon réseau d’eau.
Je n’arrive pas à récupérer les informations dans mon JEEDOM en utilisant le plugin MY MODBUS.
Quelqu’un aurait’il une idée?
Merci à l’avance.

Ok, j’ai fait ça. Merci pour l’info.

Bonjour Fil53,

Pour te répondre il nous faut beaucoup plus d’infos sur ta config :

  • Modbus IP ou RTU ?
  • Essais de communication avec un outil tel que ModbusPoll ou Modbus Doctor ?
  • Quelles sont les erreurs ? (fournir les logs)

Dans l’attente de tes éléments.

1 « J'aime »

Bonjour,
Pour la connexion, le SOFREL dispose d’une adresse IP. J’ai fais un ping avec le plugin NETWORK, apparemment le ping est OK.
Quand je vais dans le plugin sous configuration avancée, le log est vide?
Est-ce une erreur d’adressage, les informations que je souhaite récupérer sont 2 mesures analogiques, une AI1 et l’autre AI6.
Merci encore pour votre retour.