Plugin MyModbus

j’ai voulu tester ce plugin pour bidouiller avec Arduino comme Fabio133 le publiait ici https://community.jeedom.com/t/arduinodbus-coffret-i-o-sous-modbus/25329/12

avec Jeedom en 3.3.50 et le plugin en stable…les dépendances ce sont installées normalement (en vert).
J’ai voulu tester la version Béta qui comme je le pensais à bien ce type d’entrée « register int ».
Sauf que du coup ! les dépendances ne passent plus ! j’ai sans doute un problème avec pyserial
mymodbus_update.txt (2,8 Ko)
j’ai testé les mises à jour du Pi et pas mal de truc ! mais rien y fait

Salut

Vérifie que tu as bien Python 3.7 et pip3 car il me semble que la béta est passé à Python 3 alors que la stable est en Python 2.

1 « J'aime »

slt et bienvenu tomasteleco , une grande partie des onduleurs de qualité utilisent le protocol modbus " SUNSPEC" qui est un standard Américain des numéros de table de registre modbus . moi pour mes SMA Sunny boy , c est d origine dedans en + ( en parallèle sur le tcp ip ) du modbus prioritaire de SMA qui utilise des autres numéro non standard de table . tape dans google modbus table sunspec et tu trouveras y a des dizaines d onduleurs et station meteo qui utilise cela . Fait la demande par email a ton fabricant service technique. Moi pour SMA, l imbecile de soit disant "’ingénieur competant " Isabel.Balles… de SMA qui donne cours à des centaines de clients m avait répondu que cela n existait pas dans l appareil … j ai fait le test et ca fonctionnait … je lui ai dit, elle m a répondu … Ah bien ont a pas les outil pour faire le test et ont nous prévient pas … aucune communication dans cette grande entreprise usine a gaz … bureaucrat commerciaux à 2 balles sans aucun experiance de terrain mal payé … ( ou alors il cache l info car c est de l 'open source mais les allemands c est pas leurs style à faire cela ( de l open source) …). des personnes competantes dans les grosses multi nationales, c est de la denrée rare …

1 « J'aime »

Oui, les versions 2 et 3 sont installé, si je fais python -V c’est python 2.7.13 qui ressort.

mais pour que la version 3 soit par défaut…ça dépasse mes compétences, même avec ce que j’ai trouvé sur le net…pas réussi.

Je vous remercie jeanlegrand
J’ai les tableaux dont j’ai besoin de l’onduleur pour la communication modbus rtu,
par exemple:
40019 (état de démarrage ou d’arrêt)
44134 (tension continue)
Avec le programme Modbus Poll, je communique bien. Mais je l’ai essayé avec le plugin Modbus RTU, et au début le démon n’a pas démarré, puis j’ai réussi mais j’ai des problèmes de lecture.
C’est la raison pour laquelle je veux essayer le blueone HJ8000 pour accéder à Modbus RTU via TCP.

Ce que je ne sais pas, c’est configurer le HJ8000 pour qu’il fonctionne comme un serveur Modbus TCP et nous pouvons communiquer MyModbus avec l’onduleur.

Avec quel outil pourrais-je vérifier que la communication Modbus TCP fonctionne bien avant d’essayer MyModbus? Peut-être Modbus TCP Toolbox?

j ai mis la configuration avec un RS232/485 TO ETH que j ai et bison a réussi avec un ZLAN5143D . Mais je ne connais pas ton model . si tu trouves, montre nous ta configuration !

Salut,

Je tente de t’aider mais je suis un peu neuf sur le sujet :slight_smile:

Est-ce que tu arrives déjà à accéder à ton appareil via un navigateur web ?
IP par défaut : 192.168.98.1
Mot de passe par défaut : 888888

Après faut voir d’après moi dans « UART »
Type : RS485
Netmode : server
Port : 502 je dirais puis il faudrait adapter le rester à ton matériel modbus (databit, stopbit …)

Avec modbus doctor ensuite pour tester si tu te connecte depuis ton PC sur 192.168.98.1:502 tu devrais déjà avoir une connexion.

Après restra la partie interrogation des registres … c’est encore une autre étape.

2 « J'aime »

Salut
Sur quoi tourne ton jeedom? Docker?
Les versions affichées semblent vieilles. Mon pip3 sous raspian est à la version 18.1

Voir ce fil peut-être: https://github.com/pypa/pip/issues/5247

Antoine

Non, pas de Docker, j’ai une instal classique raspberry pi 3+ sous stretch, je pense que je vais devoir me coltiner le passage à buster et jeedom v4 pour résoudre tout ça.

Si pas déjà fait, lancer un sudo Apt update puis sudo Apt fullupgrade mais le problème dépasse mes connaissances.

Antoine

Oui, merci quand même, j’ai malheureusement essayé des trucs…du coup j’ai d’autres problème.

Merci, Bison

Voici la configuration que j’ai:

Avec modbus doctor je me connecte bien, mais quand je veux le lire, j’obtiens une erreur: (état: time out-00)

peut-être que le problème est la configuration P2P
Cela n’explique pas grand-chose dans le manuel

Si vous avez une idée ou une inspiration … je vous lis

Bon c’est déjà pas mal :slight_smile:

Après au vu du schémas de l’appareil, d’intuition je sectionnerais plutôt COM2 dans le champs COM

image

1 « J'aime »

Merci @Bison

Je n’avais pas réalisé ce détail

Je communique tres bien avec Jeedom.

image

Ce fut la configuration finale de blueone.

La communication est parfois toutes les 30 secondes et d’autres fois elle passe 30 minutes et plus sans mettre à jour l’état (informations).

En configuration Mymodbus: polling en secondes (j’en ai mis 10)

Dans la commande information dans sa configuration, dans la gestion de la répétition des valeurs, je l’ai paramétré pour toujours répéter.

Je ne sais pas si je laisse quelque chose pour que le statut soit mis à jour en continu toutes les minutes par exemple.

Ah oui il fallait donc aussi changer le protocole :grinning:.
Aucune idée pour la mise à jour des valeurs !
Essaye d’interroger un autre registre qui doit bouger régulièrement pour comparer.

Bonjour,

Un grand merci à toi @Bebel27 , j’ai maintenant mon compteur avec petite virgule.

A l’occasion pour une petit mousse lors d’un passage en Isère.

Très bon boulot, le Eastron fonctionne aussi avec les compteur de marque SINOTIMER.

Cdt,

1 « J'aime »

Merci beaucoup pour l’adaptation en bêta sur les Eastron @Bebel27

Au top :+1:

1 « J'aime »

Merci pour vos message de remerciement ou d’encouragement , ça fait plaisir.

suite à mon problème de dépendance sur la version beta.
j’ai vu ce matin une mise à jour !
j’ai donc retenté ma chance…dépendance toujours NOK
mais je persiste et je suis parti sur le problème pyserial qui ressortait des logs

Installing collected packages: pyserial, pyModbus
Attempting uninstall: pyserial
Found existing installation: pyserial 3.2.1
ERROR: Cannot uninstall ‹ pyserial ›. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall

j’ai suivi les indication de ce site: (pour mon raspberry pi 3)
https://raspberrypi.stackexchange.com/questions/68837/pyserial-error-on-raspberry-3
J’ai donc fait:

sudo apt-get remove python-serial
sudo apt-get remove python3-serial

puis

sudo pip install --upgrade pyserial

et

pip install pyserial

et relancé mon raspberry !

Miracle ! les dépendances sont au vert !

bon ! (ça serait trop beau sinon)
Maintenant c’est le Démon qui reste NOK malgré mon équipement « arduino test » qui d’ailleurs est pilotable (commande action)

[2020-06-25 15:03:50][ERROR] : Attention je pense qu’il y a un soucis avec le démon que j’ai relancé plus de 3 fois consecutivement
[2020-06-25 15:03:50][INFO] : coils trouvées :500
[2020-06-25 15:03:50][INFO] : Lancement du démon mymodbus : nice -n 19 /usr/bin/python3 /var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py -h 192.168.31.161 -p 502 --unit_id=1 --polling=5 --keepopen=0 --protocol=tcpip --eqid=1119 --coils=500
Exception in thread Thread-1:
Traceback (most recent call last):
File « /usr/lib/python3.5/threading.py », line 914, in _bootstrap_inner
self.run()
File « /usr/lib/python3.5/threading.py », line 862, in run
self._target(*self._args, **self._kwargs)
File « /var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py », line 149, in polling_thread
subprocess.Popen([‹ /usr/bin/php ›,mymodbus,‹ add= ›+host,‹ unit= ›+str(unit_id),‹ eqid= ›+str(eq_id),‹ type=coils ›,‹ sortie=1 ›,‹ inputs= ›+str(int(coil_start)),‹ values= ›+str(rr.bits[:i])])
AttributeError: ‹ ExceptionResponse › object has no attribute ‹ bits ›
Version de python ok
Traceback (most recent call last):
File « /var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py », line 269, in
raise ParameterException(‹ Thread en d\xe9faut ›)
NameError: name ‹ ParameterException › is not defined

voila ce que j’ai dans les logs.

bon, j’ai rien dis je devais avoir une commande info mal renseigné.
le Démon tourne !
tout fonctionne !
super !
Merci !

1 « J'aime »