Page 25 sur 38

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Publié : 01 déc. 2017, 10:31
par nolse
Bebel27 a écrit :
nolse a écrit :
30 nov. 2017, 16:59
Bonjour,

je rencontre un souci avec ce plugin.
En fait, je n'ai pas rafraichissement sur le dashboard lors d'un changement d’état d'une entrée ou autre de mon automate.
Par contre, si je regarde dans la base de données, les données sont bien rafraichies. C'est une juste un problème d'affichage.
Est ce que quelqu'un a le même souci?
Quand tu crées une info il faut que tu redémarre le démon pour le retour d'info fonctionne , peut être que ton soucis vient de là ?
Non j ai le problème depuis que j utilise ce plugin.Ça doit faire 2 ans.

Envoyé de mon LG-D802 en utilisant Tapatalk


Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Publié : 01 déc. 2017, 22:59
par Bebel27
il ya un paramètre : Polling en secondes, tu l'as bien renseigné ce champ? c'est le temps de scrutation de lecture des registres.

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Publié : 01 déc. 2017, 23:03
par nolse
oui ce champ est renseigne et les données sont bien mise a jour en temps réel dans la base.
C'est juste un probleme de refresh du dashboard.

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Publié : 02 déc. 2017, 12:24
par FrThib
Bonjour
La mise à jour plugin Modbus ne fonctionne pas pour moi ( Les valeurs ne se rafraîchisse pas) je suis revenu à la version précédente (2015-06-14 11:44:04) qui fonctionne bien .
En plus le changelog ne spécifie même pas l’évolution ( A éviter de mon point de vue )

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Publié : 02 déc. 2017, 21:36
par nolse
tu aurais moyen de me faire parvenir cette version pour que j'essai.
merci

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Publié : 03 déc. 2017, 13:40
par FrThib
Bonjour
Ça je ne sais pas faire . J'ai utilisé une ancienne sauvegarde de mon raspberry monté avec cette version ancienne de Modbus et j'ai bloqué la mise à jour car a chaque fois que j'essaie cela perturbe mon système ( J'ai fait un essaie cette semaine toujours le même phénomène , figeage des données )

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Publié : 03 déc. 2017, 14:35
par meute
Faire un virtuel pour ré-afficher ce qui est nécessaire en provenance du Modbus et masquer le widget du plugin, peut-être que ça résoudra le problème d'affichage si toute fois les données sont réellement rafraîchies par le plugin dans la BD.

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Publié : 04 déc. 2017, 15:29
par nolse
j'ai deja essayer un virtuel et j'ai le même problème.

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Publié : 05 déc. 2017, 09:13
par PorzArGall
Bonjour,
Je peux vous donner un petit REX suite à de nombreux soucis avec le plugin Modbus.
J'utilise ce plugin pour piloter 3 Twido qui contrôlent toute ma maison. Les problèmes que j'ai rencontrés et que j'ai résolus sont:
- Charge croissante exponentielle jusqu'à blocage de mon Jeedom Mini,
- Rafraichissement erratique,
- Démarrage très long.
Les solutions que j'ai trouvées sont:
- Faire aussi peu de lecture dans le Twido que possible. Cela prend de la charge processeur très vite. En pratique j'ai dans mon automate regroupé toutes mes variables dans des registres consécutifs et le plugin Modbus les lit en 1 instruction. Cela réduit beaucoup la charge.
- Commencer par un pooling très lent (5 ou 6 s) jusqu'à ce que le programme soit testé. Si ce pooling est trop court, les tâches de lecture n'ont pas le temps de se terminer que le daemon demande la suivante, d'ou la charge croissante et le blocage.
- Relancer le daemon après chaque changement par le menu gestion des plugins/Modbus. Désactiver le plugin, attendre que la charge CPU descende à un niveau très bas (pour moi, moins de 5%) puis relancer. Je surveille le LOG en mode Débug que tous les Twido sont connectés et que le pooling marche.
- J'ai plusieurs fois relancé le service mysql (sudo service mysql restart) en ssh suite à des planages. J'ai aussi ré-initialisé le cache une fois.
Le résultat est que après quelques tâtonnements j'obtiens un système stable avec 3 communications Twido (pooling 3, 5 et 6 s), RFXcom et zwave et une 20aine de scénarios, la charge cpu est de 4 à 5%. Je n'ai pas de design, j'ai tout géré avec des virtuels.
J'espère que cela peut aider. Ah, j'oubliait ... faire des sauvegardes sur le PC, en cas de plantage grave, il faut tout ré-installer et c'est utile !

Cordialement
Frédéric

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Publié : 05 déc. 2017, 16:38
par nolse
j'ai également un twido mais je n'ai pas de souci de charge.
J'interroge un dizaine entrée et dans les logs en mode debug je vois bien le changement d'état de mes entrées mais pas sur le dashboard.
Tu regroupes tout dans un registre mais apres tu fais comment dans jeedom pour recuperer toutes tes infos?

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Publié : 05 déc. 2017, 17:30
par PorzArGall
Bonsoir,
Affiches-tu le plugin sur le dashboard ou utilises-tu des scénarios ? As-tu quelque-chose comme moi ?
Capture d’écran 2017-12-05 à 17.21.36.png
Capture d’écran 2017-12-05 à 17.21.36.png (136.88 Kio) Consulté 1665 fois
Je récupère les informations avec le plugin Modbus, puis je lance des scénarios pour calculer des variables. En suite, je fais des Virtuels pour exploiter les variables une à unes.
Capture d’écran 2017-12-05 à 17.28.49.png
Capture d’écran 2017-12-05 à 17.28.49.png (166.87 Kio) Consulté 1665 fois
J'ai 4 à 5 s de latence, mais ça marche.

Cordialement

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Publié : 05 déc. 2017, 19:29
par meute
PorzArGall a écrit :
05 déc. 2017, 09:13
Bonjour,
Je peux vous donner un petit REX suite à de nombreux soucis avec le plugin Modbus.
J'utilise ce plugin pour piloter 3 Twido qui contrôlent toute ma maison. Les problèmes que j'ai rencontrés et que j'ai résolus sont:
- Charge croissante exponentielle jusqu'à blocage de mon Jeedom Mini,
- Rafraichissement erratique,
- Démarrage très long.
Les solutions que j'ai trouvées sont:
- Faire aussi peu de lecture dans le Twido que possible. Cela prend de la charge processeur très vite. En pratique j'ai dans mon automate regroupé toutes mes variables dans des registres consécutifs et le plugin Modbus les lit en 1 instruction. Cela réduit beaucoup la charge.
- Commencer par un pooling très lent (5 ou 6 s) jusqu'à ce que le programme soit testé. Si ce pooling est trop court, les tâches de lecture n'ont pas le temps de se terminer que le daemon demande la suivante, d'ou la charge croissante et le blocage.
- Relancer le daemon après chaque changement par le menu gestion des plugins/Modbus. Désactiver le plugin, attendre que la charge CPU descende à un niveau très bas (pour moi, moins de 5%) puis relancer. Je surveille le LOG en mode Débug que tous les Twido sont connectés et que le pooling marche.
- J'ai plusieurs fois relancé le service mysql (sudo service mysql restart) en ssh suite à des planages. J'ai aussi ré-initialisé le cache une fois.
Le résultat est que après quelques tâtonnements j'obtiens un système stable avec 3 communications Twido (pooling 3, 5 et 6 s), RFXcom et zwave et une 20aine de scénarios, la charge cpu est de 4 à 5%. Je n'ai pas de design, j'ai tout géré avec des virtuels.
J'espère que cela peut aider. Ah, j'oubliait ... faire des sauvegardes sur le PC, en cas de plantage grave, il faut tout ré-installer et c'est utile !

Cordialement
Frédéric
Idem :

- Faire une lecture uniquement de registres consécutif, comme ça ils sont lus en une fois et en minimisant la plage, si vous lisez le registre à l'adresse 12000 et ensuite le registre à l'adresse 12128 le plugin fera soit une lecture de tous les registres de 12000 à 12128 pour ensuite en ressortir le 12000 et le 12128, soit deux lectures une pour le 12000 et une pour le 12128. je ne sais pas dans quelles conditions ils décide de faire une lecture ou deux lectures.
Ce qui est certain c'est que si l'on met toutes ses infos dans des registres consécutifs, donc si par exemple on veut lire 16 mots et qu'on s'arrange pour les placer dans les adresses 12000 à 12015 par exemple, la lecture se fera en une seule fois et tout ce qui serra lut sera utile.

- Ne surtout pas lire de "Coil" ou de "discret input" car elles sont lut individuellement, la qualité de conception "moyenne" du deamon fait que ça charge à mort juste pour un bit ... il vaut mieux regrouper les bits dans des registres, lire les registres et ensuite faire un test logique derrière dans un virtuel ou dans un scénario pour en extraire le bit voulu avec par exemple "#[Divers][PLC][wDO1]# & 4" dans une info virtuel pour extraire la valeur du 3 ème bit ou "#[Divers][PLC][wDO1]# & 1024" pour récupérer le 11 ème bit.

- Ecrire vers autant de Coil ou de registres que l'on veut mais seulement lorsqu’il y a vraiment une action à faire, donc pas de façon cyclique. Ecrire vers un Coil à un instant T ne charge pas le deamon vu qu'il ne s'occupe que de la lecture cyclique par pooling, les écritures sont des choses que l'on déclenche.

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Publié : 07 déc. 2017, 17:00
par nolse
Effectivement je faisais des lectures directes des "coil" et j'avais des soucis de rafraichissement mais pas de charge du deamon.
Pourtant dans les logs il récupérait les bonnes valeurs .
J'ai tout mis dans les registres et j'extrais mes infos directement dans des virtuels et ca marche impec.

merci a tous.

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Publié : 21 déc. 2017, 09:55
par yvespeller
Bonjour,

j`ai ce device en mains https://www.sparkfun.com/products/13706
Je ne comprends pas comment le faire marcher sur Rpi3

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Publié : 21 déc. 2017, 11:51
par cadavor
yvespeller a écrit :
21 déc. 2017, 09:55
Bonjour,

j`ai ce device en mains https://www.sparkfun.com/products/13706
Je ne comprends pas comment le faire marcher sur Rpi3
Intéressant.
J'ai trouvé cet article : http://www.briandorey.com/post/Raspberr ... y-Part-Two

A mon avis il faudrait mieux créer un nouveau sujet concernant cette question pour ne pas polluer le post du plugin.

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Publié : 09 janv. 2018, 07:13
par ppz1961
Meute, meute, meute !
Qui donc rassemblera sa sizaine au complet la première...
Ah, bon souvenir des scouts (en Belgique, une fois, d'où je viens...)

Bon, ceci dit.

Tu as l'air d'être bien au courant pour le modbus vu tes explications dans ce forum.
J'ai un Tbox depuis pas mal de temps, il gère d'autres modules, principalement modbus
http://automatronic.be/fr/tbox-lite/

Je suis débutant Jeedom (installé hier) et ai installé plugin météo (pour me faire la main) et le plugin modbus.
J'ai pu activer un relais secondaire (sur unité esclave Barionet TCP) dont mon TBox polle les valeurs et les inscrit dans ses propres registres.

Quelques questions technico-techniques sur le plugin:

je ne vois pas où l'on peut définir le genre du registre quand il est analogique: int16 ou float par exemple. Bien évidemment, j'ai un peu de tout dans mes automates, tant du binaire, de l'int16 que du float (j'ai même du word et du 8bit si je le souhaite).
Si je veux de l'Int16, je mets le plugin à numérique et je mets autre pour du float ? Et comment repréciser le autre ?

Car en fait je mouline pour obtenir des valeurs. Je choisis un range (+1 -1) par rapport à ma valeur de registre, et je pioche tous les modes (hold register, input register, etc). Mais je n'obtiens rien. Et cela me vexe car je suis plutôt à l'aise généralement :shock:
sauf le coil /action qui me permet d'activer des relais. mais pas de retour d'état non plus.
Je viens d'essayer homeseer mais bof pour le modbus, et Jeedom me paraît bien plus flexible et les design potentiels me paraissent plus élégants.

J'ai l'habitude de poller mes esclaves en activant un trigger pour ouvrir le port de communication, poll de mes registres (contigus si possible pour délester au max) et mise du trigger à 0. Et gestion des données récupérées par après. Je suppose que l'on peut faire une séquence avec Jeedom (virtuelle si j'ai bien compris) qui fera sa collecte en rafale (open/collect/close/manage).

Mais en attendant, je coince quelque part. Si tu as des idées là-dessus, je suis preneur.
Merci
Michel

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Publié : 09 janv. 2018, 07:56
par djedevienne
Salut ppz1961,

Je n'ai pas toutes tes réponses mais au moins une. Pour avoir ton retour d'info sur les coils tu dois créer un coil info puis ( ne me demande pas pourquoi!!) arreté ton demon et le relancer. Apres ca ca fonctionne impec.
Capture info.PNG
Capture info.PNG (96.4 Kio) Consulté 1546 fois
Chez moi , j ai enlever les float je ne passe que par des int16, sur lesquels je fait des virtuels pour récupérer les virgules!!
Capture float.PNG
Capture float.PNG (173.36 Kio) Consulté 1546 fois
voila, si ca peux t'aider!!

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Publié : 18 janv. 2018, 04:03
par ppz1961
Hello djedevienne,

merci pour l'info.
J'ai essayé quelques fois et pour que ceci marche, après sauvegarde, il faut que je reboote l'ensemble et tout est ok

Bon, il faut dire que j'ai un peu touché à tout ici et j'ai installé jeedom en dualboot (debian/W7) sur un I5 Fanless ;-)
Ça me change de mes méconnaissances de Debian la semaine passée...

Ce que j'ai remarqué aussi:
quand j'ai des valeurs négatives (ici au Québec elles sont négatives les températures pour le moment), j'obtiens un 65535 et bien sûr cette valeur est spéciale puisqu'elle représente (2^16)-1, même si la valeur est faiblement négative (-1 Celsius par exemple)

As-tu le même genre de problème ?

Btw, question de socialiser: tu fais comment un virtuel ?
Merci
Michel

NB: la pic contient des int16, donc à diviser par 10 pour le moment (sauf le jour).

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Publié : 18 janv. 2018, 07:24
par meute
ppz1961 a écrit :
18 janv. 2018, 04:03
Ce que j'ai remarqué aussi:
quand j'ai des valeurs négatives (ici au Québec elles sont négatives les températures pour le moment), j'obtiens un 65535 et bien sûr cette valeur est spéciale puisqu'elle représente (2^16)-1, même si la valeur est faiblement négative (-1 Celsius par exemple)
Tu as deux solutions :

- Soit convertir en entier relatif le mot que tu reçoit dans Jeedom en INT16 :
Donc si c'est plus grand que 32767 alors tu dois soustraire 65536 ce qui te donne les valeur négatives car en INT16, 65535 = -1, 65534 = -2 et ainsi de suite et tout ce qui est plus grand que 32767 c'est du négatif, c'est parce que les nombres entier négatifs sont codées en INT16 en utilisant ce qu'on appelle le "complément à 2"
Ce qui ne sera pas facile à faire car je ne pense que l'on peut faire un test "if" directement dans l'info d'un virtuel que tu devra utiliser pour interfacer tes valeurs et je ne sais pas non plus si une fonction existe et peut être utilisée dans une info d'un virtuel pour faire directement la conversion. Il faudrait donc mouliner toutes les valeurs à traiter dans un scenario pour les convertir et les renvoyer dans un virtuel.

- Soit dans ton PLC tu additionnes toujours 1000 à ta valeur avant de la rendre dispo dans le mot modbus ce qui te donneras 100°c de plus vu que tes valeurs sont multipliées par 10, et du côté jeedom tu soustrais 1000 et tu divise par 10 pour obtenir la bonne valeur.
Comme cela tout ce qui est supérieur à -101°c sera lu correctement. Et la c'est plus facile car soustraire 1000 et diviser par 10 ça se fait facilement dans l'info d'un virtuel.

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Publié : 18 janv. 2018, 16:34
par cadavor
meute a écrit :
18 janv. 2018, 07:24
- Soit convertir en entier relatif le mot que tu reçoit dans Jeedom en INT16 :
Donc si c'est plus grand ou égale à 32565 alors tu dois soustraire 65536 ce qui te donne les valeur négatives car en INT16, 65535 = -1, 65534 = -2 et ainsi de suite et tout ce qui est plus grand que 32564 c'est du négatif, c'est parce que les nombres entier négatifs sont codées en INT16 en utilisant ce qu'on appelle le "complément à 2"
Ce qui ne sera pas facile à faire car je ne pense que l'on peut faire un test "if" directement dans l'info d'un virtuel que tu devra utiliser pour interfacer tes valeurs et je ne sais pas non plus si une fonction existe et peut être utilisée dans une info d'un virtuel pour faire directement la conversion. Il faudrait donc mouliner toutes les valeurs à traiter dans un scenario pour les convertir et les renvoyer dans un virtuel.
Dans le virtuel, il est possible d'effectuer un calcul automatique sur la valeur dans les options complémentaires.
Et d'y mettre :

Code : Tout sélectionner

If #value#>32767 then #value#=#value#-65535