Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

[Plugin Tiers][Sujet Principal] Plugin Modbus

Pour échanger sur les plugins classés en catégorie "Protocoles domotiques"
alex51
Timide
Messages : 30
Inscription : 03 oct. 2014, 16:58

Re: [Officiel] Plugin Modbus

Message par alex51 » 10 déc. 2014, 21:23

Bonjour à tous,

J'ai surement loupé quelque chose, mais je ne vois pas comment envoyer une variable entrée par l'utilisateur à l'automate.

Dans la config du plugin j'ai configuré une input register en action, slider. Lorsque j'entre une valeur à la main dans la config du plugin, elle est bien envoyée à l'automate en validant avec le commande "tester".

Par contre il ne se passe rien lorsque j'actionne le slider dans le dashboard.

Merci d'avance pour vos réponses

tirikiki
Timide
Messages : 72
Inscription : 22 nov. 2014, 13:21

Re: [Officiel] Plugin Modbus

Message par tirikiki » 10 déc. 2014, 22:57

Merci Bebel27 pour ta réponse.
Toujours la galère de mon côté. Es ce que quelqu'un peut m'aider à interpréter mes logs et résoudre mes pb.
J'ai tout essayé, désinstaller le pluging, redémarer le RPI. Mais le pluging ne marche plus.
Bref, moi qui ai choisi jeedom pour le Modbus :cry:
Ci-dessous mes logs pour un pluging qui ne lit que des infos num de type Input Register.
Pièces jointes
Modbus.jpg
Modbus.jpg (38.05 Kio) Consulté 1715 fois
nginx-error.jpg
nginx-error.jpg (80.54 Kio) Consulté 1715 fois

Avatar de l’utilisateur
tmartinez
Modérateur
Messages : 1226
Inscription : 08 juil. 2014, 11:22
Localisation : Limonest

Re: [Officiel] Plugin Modbus

Message par tmartinez » 11 déc. 2014, 00:14

Bonsoir,
Désolé pour cette réponse tardive.
Je suis le développeur du plugin. J'ai fait ce plugin à la demande d'un utilisateur de Jeedom mais je ne suis pas vraiment un expert Modbus. Je n'ai en ma possession qu'un ADAM-6050.
Je vais faire d'autres tests avec des simulateurs Modbus afin de reproduire les soucis que vous rencontrez.
Concernant le daemon, celui-ci utilise le fonctionnement classique de Jeedom et il rédemarre tout seul toutes les minutes si il est stoppé. Pour l'empecher de se relancer, il faut arreter le moteur de tache.
Pouvez-vous me faire une copie de la page de configuration afin que je teste la même chose ?
Concernant l'envoi de variable, je vais rajouter le type slider et message, cela permettra d'envoyer une valeur personnalisée.
Jeedom sous Proxmox
43 Modules Z-Wave / 1x RfxCom / 20 devices connectés
Mon matériel

tirikiki
Timide
Messages : 72
Inscription : 22 nov. 2014, 13:21

Re: [Officiel] Plugin Modbus

Message par tirikiki » 11 déc. 2014, 20:16

Bonsoir tmartinez.
Pas de pb, je vois bien que beaucoup de sujets sont en cours..et il faut du temps pour faire tout ca.
Ci-dessous ma configuration. Avec 2 ou 3 E/S, cela fonctionne, c'est lorsque j'en rajoute que cela ne vas plus. J'ai remarqué que le fait d'arrêter le deamon et de le redémarrer permet parfois la bonne prise en compte des nouvelles E/S. Mais il est très difficile de l'arrêter et le redémarrer.
J'ai l'impression d'avoir "cassé" quelque chose dans le pluging en ajoutant ou enlevant des E/S car il me semble qu'il fonctionnait mieux les premiers temps. J'ai essayé de le désinstaller et le réinstaller mais ce n'est pas mieux (peut être la désinstallation n'est pas totale ?)
Les logs d'erreurs sont toujours les mêmes (voir mon message précédent).
Merci pour ta contribution. Je suis a ta disposition pour faire des essais sur l'utilisation du pluging.
Pièces jointes
Modbus 1.jpg
Modbus 1.jpg (77.11 Kio) Consulté 1692 fois

Avatar de l’utilisateur
tmartinez
Modérateur
Messages : 1226
Inscription : 08 juil. 2014, 11:22
Localisation : Limonest

Re: [Officiel] Plugin Modbus

Message par tmartinez » 12 déc. 2014, 23:22

J'ai peut-être une piste :
Avec la librairie que j'utilise, je dois lui spécifier l'adresse de départ et le nombre d'adresses à écouter. Je ne peux pas lui spécifier plusieurs adresses indépendantes.
Hors dans ton cas, je vois que la 1ere adresse est 256 et la deuxieme 266, donc ça lui fait 10 adresses à écouter, il peut gérer.
Mais lorsque tu lui rajoutes la 3eme adresse 512, il commence à 256 et écoute 256 adresses jusqu'à 512 et là ça doit lui faire trop.
Pour faire un test, pourrais-tu supprimer la 3eme ligne et ajouter un équipement avec juste cette ligne puis relancer le plugin ?
De mon côté, je vais voir si je peux trouver une autre librairie qui serait plus souple sur les adresses...
Merci
Jeedom sous Proxmox
43 Modules Z-Wave / 1x RfxCom / 20 devices connectés
Mon matériel

tirikiki
Timide
Messages : 72
Inscription : 22 nov. 2014, 13:21

Re: [Officiel] Plugin Modbus

Message par tirikiki » 13 déc. 2014, 09:21

Salut tmartinez,
Ta piste est bonne.
Effectivement, quand je rajoute des adresses qui suivent la plus faible, les infos remontent.
Or, dans mon cas, j'ai une plage d'adresse de 256 à 1558.
Ta description du fonctionnement du pluging explique bien mes difficultés à gérer certaines adresses.
Nous sommes donc sur la bonne voie. :P
Merci.

tirikiki
Timide
Messages : 72
Inscription : 22 nov. 2014, 13:21

Re: [Officiel] Plugin Modbus

Message par tirikiki » 13 déc. 2014, 20:09

Re-salut tmartinez,
Pour bien répondre à ta demande d'essais, si je mets la troisième adresse (512) dans un autre équipement, ca ne fonctionne pas mieux.

Avatar de l’utilisateur
Bebel27
Actif
Messages : 908
Inscription : 19 oct. 2014, 18:04
Localisation : Normandie

Re: [Officiel] Plugin Modbus

Message par Bebel27 » 13 déc. 2014, 23:31

tmartinez a écrit :J'ai peut-être une piste :
Avec la librairie que j'utilise, je dois lui spécifier l'adresse de départ et le nombre d'adresses à écouter. Je ne peux pas lui spécifier plusieurs adresses indépendantes.
Hors dans ton cas, je vois que la 1ere adresse est 256 et la deuxieme 266, donc ça lui fait 10 adresses à écouter, il peut gérer.
Mais lorsque tu lui rajoutes la 3eme adresse 512, il commence à 256 et écoute 256 adresses jusqu'à 512 et là ça doit lui faire trop.
Pour faire un test, pourrais-tu supprimer la 3eme ligne et ajouter un équipement avec juste cette ligne puis relancer le plugin ?
De mon côté, je vais voir si je peux trouver une autre librairie qui serait plus souple sur les adresses...
Merci
j'utilise ça moi . https://code.google.com/p/pymodbus/

JEEDOM (que la domotique soit avec toi )

jsh
Timide
Messages : 20
Inscription : 14 nov. 2014, 06:26

Re: [Officiel] Plugin Modbus

Message par jsh » 14 déc. 2014, 20:37

Salut tmartinez,

j'utilise le plugin Modbus , je fais des essais qui ne sont pas très concluant
j'utilise un server (automate BECKHOFF ) et / ou un simulateur (Mdbus)
le comportement est le même sur le simulateur que sur l'automate
il y a que l'écriture des COILs qui fonctionnent, les autres fonctions je n'arrive pas à les faire fonctionner
dans le cas du Beckhoff , les adresses modbus commence à 32768 pour chaque type de variables.
pour les coils ça fonctionne parfaitement.
si je peux aider d'aune façon ou d'une autre à faire avancer ce plugin qui est vraiment utile car le modbus c'est un vrai standard
en automatisme !!!

ma configuration : je suis sur une VM DEBIAN , dans un automate BECKHOFF qui est un PC en fait.

dans le log Modbus j'ai ces erreurs là , je ne sais pas à quoi cela correspond
si çà peut servir:

PHP Notice: Undefined offset: 1 in /usr/share/nginx/www/jeedom/plugins/modbus/core/php/jeeModbus.php on line 65
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525+lfs/oauth.so' - /usr/lib/php5/20100525+lfs/oauth.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Notice: Undefined offset: 1 in /usr/share/nginx/www/jeedom/plugins/modbus/core/php/jeeModbus.php on line 66
PHP Notice: Undefined offset: 1 in /usr/share/nginx/www/jeedom/plugins/modbus/core/php/jeeModbus.php on line 65
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525+lfs/oauth.so' - /usr/lib/php5/20100525+lfs/oauth.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Notice: Undefined offset: 1 in /usr/share/nginx/www/jeedom/plugins/modbus/core/php/jeeModbus.php on line 66
PHP Notice: Undefined offset: 1 in /usr/share/nginx/www/jeedom/plugins/modbus/core/php/jeeModbus.php on line 65
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525+lfs/oauth.so' - /usr/lib/php5/20100525+lfs/oauth.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Notice: Undefined offset: 1 in /usr/share/nginx/www/jeedom/plugins/modbus/core/php/jeeModbus.php on line 66
PHP Notice: Undefined offset: 1 in /usr/share/nginx/www/jeedom/plugins/modbus/core/php/jeeModbus.php on line 65


Olivier

rkhadro
Timide
Messages : 5
Inscription : 17 déc. 2014, 15:19

Re: [Officiel] Plugin Modbus

Message par rkhadro » 18 déc. 2014, 21:10

Bonsoir,

Nouveau sur Jeedom, je ne savais pas qu'il existait un module modbus.
J'utilise un millenium 3 de Crouzet avec son extension ethernet, deja présenté ici par Bebel27 (je le remercie pour les infos).
Je l'utilise pour l'instant pour remonter des infos sur les sorties (Adresse 20 à 27).

Edit: L'arrêt/Relance fonctionne via la page Plugin, il faut recharger la page et c'est bon.
Comment arrêter redemarré efficacement le plugin car comme vous, je n'y arrive pas via la page plugin, message d'arrêt, mais dans les faits, il tourne toujours.

Comment récupérer les valeurs des différents registres ?

Je récupère le premier (@20) sans problème, mais dès que je rajoute une autre E/S avec @21 par exemple, voici l'erreur dans le log:
PHP Notice: Undefined offset: 21 in /usr/share/nginx/www/jeedom/plugins/modbus/core/php/jeeModbus.php on line 65
J'ai cru lire que l'on donne la première adresse et qu'il interroge une plage d'adresse.
Dans ce cas comment récupérer la deuxième, troisième, etc ...

Je n'ai pas de logs fiables donc en regardant les process:
/usr/bin/python /usr/share/nginx/www/jeedom/plugins/modbus/ressources/modbus_master.py -h 192.168.1.249 -p 502 --polling=5 --rhr=20 --rhrl=20

rhr=début d'adresse et rhl=plage, c'est bien cela ?


Logs:

Avez-vous des problèmes avec les logs ?

Comment avoir des logs fiables dans le fichier modbus sous jeedom/logs car au début je n'avais que les messages d'erreurs du type: PHP Notice: Undefined offset: 21
Puis, j'ai eu des logs d'erreurs:
PHP Notice: Undefined variable: response in /usr/share/nginx/www/jeedom/plugins/modbus/core/class/modbus.class.php on line 241
PHP Notice: Undefined variable: response in /usr/share/nginx/www/jeedom/plugins/modbus/core/class/modbus.class.php on line 241
PHP Warning: Invalid argument supplied for foreach() in /usr/share/nginx/www/jeedom/core/class/cmd.class.php on line 861
PHP Warning: Invalid argument supplied for foreach() in /usr/share/nginx/www/jeedom/plugins/modbus/core/php/jeeModbus.php on line 63
PHP Warning: Invalid argument supplied for foreach() in /usr/share/nginx/www/jeedom/plugins/modbus/core/php/jeeModbus.php on line 63
PHP Warning: Invalid argument supplied for foreach() in /usr/share/nginx/www/jeedom/plugins/modbus/core/php/jeeModbus.php on line 63

Puis bien plus tard:

PHP Fatal error: Uncaught exception 'Exception' with message 'DB : Paramètres incorrects' in /usr/share/nginx/www/jeedom/core/class/DB.class.php:40
Stack trace:
#0 /usr/share/nginx/www/jeedom/core/class/DB.class.php(60): DB->__construct()
#1 /usr/share/nginx/www/jeedom/core/class/DB.class.php(82): DB::getConnection()
#2 /usr/share/nginx/www/jeedom/core/class/cache.class.php(119): DB::Prepare('REPLACE cache\n ...', Array, 0)
#3 /usr/share/nginx/www/jeedom/core/class/cache.class.php(100): cache->save()
#4 /usr/share/nginx/www/jeedom/core/class/cmd.class.php(858): cache::set('cmd95', 13, 10, Array)
#5 /usr/share/nginx/www/jeedom/plugins/modbus/core/php/jeeModbus.php(66): cmd->event('13')
#6 {main}

Et ensuite:

thrown in /usr/share/nginx/www/jeedom/core/class/DB.class.php on line 40
PHP Warning: Invalid argument supplied for foreach() in /usr/share/nginx/www/jeedom/plugins/modbus/core/php/jeeModbus.php on line 63
PHP Warning: Invalid argument supplied for foreach() in /usr/share/nginx/www/jeedom/plugins/modbus/core/php/jeeModbus.php on line 63
18-12-2014 19:22:12 | event | Evenement : type=>holding_registers inputs=>[20] values=>[13] add=>192.168.1.249
18-12-2014 19:22:13 | event | tableau 2: {"20":"13"}
18-12-2014 19:22:12 | event | Evenement : type=>holding_registers inputs=>[20] values=>[13] add=>192.168.1.249
18-12-2014 19:22:12 | event | Evenement : type=>input_registers inputs=>[21] values=>None add=>192.168.1.249
18-12-2014 19:22:13 | event | tableau 2: {"20":"13"}
18-12-2014 19:22:13 | event | tableau 2: {"21":"None"}
18-12-2014 19:22:14 | info | impossible de trouver le slave
18-12-2014 19:22:14 | info | impossible de trouver le slave
18-12-2014 19:22:14 | info | impossible de trouver le slave
5
ouverture de
192.168.1.249
502
[13] ca c'est la valeur retournée par la premiere adresse 20
[13]
[13]
[13]
[13]
[13]
[13]
[13]
[1

Cela s'arrête ici, depuis plus rien

Je vais redémarrer le Raspb pour voir.

Merci
Dernière édition par rkhadro le 18 déc. 2014, 22:02, édité 1 fois.

Avatar de l’utilisateur
tmartinez
Modérateur
Messages : 1226
Inscription : 08 juil. 2014, 11:22
Localisation : Limonest

Re: [Officiel] Plugin Modbus

Message par tmartinez » 18 déc. 2014, 21:22

Bonjour,
Je suis en train de refaire le plugin en utilisant une autre librairie.
Je reviens vers vous rapidement.

La ligne /usr/bin/python /usr/share/nginx/www/jeedom/plugins/modbus/ressources/modbus_master.py -h 192.168.1.249 -p 502 --polling=5 --rhr=20 --rhrl=20
ne lit que l'adresse 20.
rhr= adresse de départ
rhrl=adresse de fin

Je pense que les erreurs php viennent de là il ne redémarre pas bien avec les nouveaux critères.
Est-ce que au reboot c'est mieux ?
Jeedom sous Proxmox
43 Modules Z-Wave / 1x RfxCom / 20 devices connectés
Mon matériel

jsh
Timide
Messages : 20
Inscription : 14 nov. 2014, 06:26

Re: [Officiel] Plugin Modbus

Message par jsh » 18 déc. 2014, 22:02

merci
bon développement

rkhadro
Timide
Messages : 5
Inscription : 17 déc. 2014, 15:19

Re: [Officiel] Plugin Modbus

Message par rkhadro » 18 déc. 2014, 22:08

Non avec le reboot, c'est pas mieux, mais je pense que Modbus n'est pas le seul, le module teleinfo c'est pareil:

PHP Fatal error: Uncaught exception 'Exception' with message 'DB : Paramètres incorrects' in /usr/share/nginx/www/jeedom/core/class/DB.class.php:40
Stack trace:
#0 /usr/share/nginx/www/jeedom/core/class/DB.class.php(53): DB->__construct()
#1 /usr/share/nginx/www/jeedom/core/class/DB.class.php(82): DB::getConnection()
#2 /usr/share/nginx/www/jeedom/core/class/config.class.php(116): DB::Prepare('SELECT `value` ...', Array, 0)
#3 /usr/share/nginx/www/jeedom/core/class/log.class.php(183): config::byKey('logLevel')
#4 /usr/share/nginx/www/jeedom/core/class/log.class.php(37): log::isTypeLog('event')
#5 /usr/share/nginx/www/jeedom/plugins/modbus/core/php/jeeModbus.php(51): log::add('modbus', 'event', 'Evenement : typ...')
#6 {main}
thrown in /usr/share/nginx/www/jeedom/core/class/DB.class.php on line 40

Pour Teleinfo:
PHP Fatal error: Uncaught exception 'Exception' with message 'DB : Paramètres incorrects' in /usr/share/nginx/www/jeedom/core/class/DB.class.php:40
Stack trace:
#0 /usr/share/nginx/www/jeedom/core/class/DB.class.php(53): DB->__construct()
#1 /usr/share/nginx/www/jeedom/core/class/DB.class.php(82): DB::getConnection()
#2 /usr/share/nginx/www/jeedom/core/class/config.class.php(116): DB::Prepare('SELECT `value` ...', Array, 0)
#3 /usr/share/nginx/www/jeedom/plugins/teleinfo/core/php/jeeTeleinfo.php(28): config::byKey('api')
#4 {main}
thrown in /usr/share/nginx/www/jeedom/core/class/DB.class.php on line 40

Je ne sais pas si c'est du à la mise à jour en 1.144.0

Par contre pour les logs je n'ai toujours pas grand chose à part les uncaught exception, comment mettre le debug s'il y en a un?

Merci

rkhadro
Timide
Messages : 5
Inscription : 17 déc. 2014, 15:19

Re: [Officiel] Plugin Modbus

Message par rkhadro » 19 déc. 2014, 00:13

Bon, j'avance.

Plus de Uncaught exception, je ne sais pas pourquoi.

J'ai réussi à faire lire mes registres, il ne faut pas laisser de "trou" entre les E/S déclarées.
Donc une ligne par adresse pour les Hold register de 20 à 27.
Je récupère les valeurs dans des virtuels.

Par contre le load Average explose au bout d'un moment jusqu'a 30 !!!
plein de ligne: PHP Notice: Undefined variable: response in /usr/share/nginx/www/jeedom/plugins/modbus/core/class/modbus.class.php on line 241
Avec 26 process modbus, est-ce normal ?
/usr/bin/php /usr/share/nginx/www/jeedom/plugins/modbus/core/php/jeeModbus.php type=holding_registers inputs=[20, 21, 22, 23, 24, 25, 26, 27]
Jusqu'a ce que le raspb soit injoignable.

Penses-tu mettre une option pour le multiplexage 16 bits dans ton nouveau développement ? Cela serait très utile pour les M3 avec seulement 8 sorties.

Avatar de l’utilisateur
tmartinez
Modérateur
Messages : 1226
Inscription : 08 juil. 2014, 11:22
Localisation : Limonest

Re: [Officiel] Plugin Modbus

Message par tmartinez » 30 déc. 2014, 23:11

Bonjour,
Pour info je viens de faire une première maj du plugin.
J'ai refait toute la partie lecture, il est désormais possible de lire des adresses espacées sans impact négatif sur les performances.
Une prochaine maj interviendra surement demain pour tout ce qui concerne l'écriture sur les coils et les input registers.
Jeedom sous Proxmox
43 Modules Z-Wave / 1x RfxCom / 20 devices connectés
Mon matériel

tirikiki
Timide
Messages : 72
Inscription : 22 nov. 2014, 13:21

Re: [Officiel] Plugin Modbus

Message par tirikiki » 31 déc. 2014, 15:58

Bonjour tmartinez,
je viens d'essayer la nouvelle version dans mon cas d'utilisation (input Register en lecture et écriture, plage d'adresses large, jeedom en V1.145.0):
- les adresses réparties sur une plage étroite ont l'air de fonctionner (768 à 778) comme sur la version antérieure (pas de régression)
- si ont rajoute des adresses (dans un nouvel équipement ou dans le même) (1024 à 1034), ces dernières ne fonctionnent pas ni en lecture, ni en écriture. Par contre les adresses basses (768 à 778) continuent de fonctionner, chose qui n'était pas forcément le cas avant.
Si tu as des tests particuliers à faire, n'hésite pas à demander, mais ma réactivité ne sera peut être pas idéale (fêtes oblige). Merci.

Avatar de l’utilisateur
tmartinez
Modérateur
Messages : 1226
Inscription : 08 juil. 2014, 11:22
Localisation : Limonest

Re: [Officiel] Plugin Modbus

Message par tmartinez » 31 déc. 2014, 16:28

Bizarre, normalement j'ai testé ce cas de figure. Tu as quoi dans les logs ?
Merci.
Jeedom sous Proxmox
43 Modules Z-Wave / 1x RfxCom / 20 devices connectés
Mon matériel

tirikiki
Timide
Messages : 72
Inscription : 22 nov. 2014, 13:21

Re: [Officiel] Plugin Modbus

Message par tirikiki » 01 janv. 2015, 17:39

Salut tmartinez,
J'ai pas pu avancer car j'ai voulu compléter mon installation en faisant 1 périphérique Modbus pour chaque zone de clim à gérer, soit 5 pour voir si le pluging est capable de gérer l'étendue de mes adresses.
Résultat, je n'avais plus accès à jeedom, CPU à 100% dû à Modbus. Voir mon post sur le pb : https://forum.jeedom.fr/viewtopic.php?f=23&t=3596 et ma réponse : https://forum.jeedom.fr/viewtopic.php?f ... 6&start=10
Je recommence mes tests en repartant d'une config Modbus plus simple et reviens vers toi dès que je trouve une piste.

Avatar de l’utilisateur
tmartinez
Modérateur
Messages : 1226
Inscription : 08 juil. 2014, 11:22
Localisation : Limonest

Re: [Officiel] Plugin Modbus

Message par tmartinez » 01 janv. 2015, 17:44

Oui je te conseille de partir sur un seul périphérique et de gérer tes zones via des virtuels. Car il y a un daemon par périphérique !


Envoyé de mon iPhone à l'aide de Tapatalk
Jeedom sous Proxmox
43 Modules Z-Wave / 1x RfxCom / 20 devices connectés
Mon matériel

Avatar de l’utilisateur
tmartinez
Modérateur
Messages : 1226
Inscription : 08 juil. 2014, 11:22
Localisation : Limonest

Re: [Officiel] Plugin Modbus

Message par tmartinez » 01 janv. 2015, 17:46

Je te conseille aussi d'augmenter le polling.


Envoyé de mon iPhone à l'aide de Tapatalk
Jeedom sous Proxmox
43 Modules Z-Wave / 1x RfxCom / 20 devices connectés
Mon matériel

Répondre

Revenir vers « [Catégorie] Protocoles domotiques »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 8 invités