Plugin MyModbus

Re,

Etant donné que je ne sais pas si c’est intégré ou prévu d’être intégré au plugin, j’ai bricolé un truc.

Dans mon cas le module a 4 sorties. J’ai donc créé 8 scénarios :

  • 4 pilotage à On
  • 4 pilotage à Off (ci-dessous la capture pour arrêter ma sortie 1)

J’ai fait la même logique que dans mon automate : je lis la valeur du bit concerné et si différent je rajoute (pilotage On) ou j’enlève (pilotage Off) la valeur décimale à mon mot.

Je poll à 5 secondes sur mes équipements, un souci peut donc se passer s’il y a un basculement On-Off dans ce laps de temps des 5 secondes. J’ai mis une temporisation de 10s pour relancer l’écriture du mot si celui-ci n’était pas passé (mais je ne suis pas sûr que ça serve à quelque chose).

Le but étant de gérer du chauffage via fil pilote avec le plugin Thermostat, donc je ne devrais pas avoir de basculement rapide de mes sorties.

Par contre lorsque je veux mettre mon scénario pour déclencher l’action de chauffer aucun ne m’est pas proposé ?

C’est loin d’être d’être parfait, il y a peut-être une façon super simple de faire cela mais je n’ai pas trouvé .Si vous avez des améliorations je suis preneur !

Merci.

Bonjour @Bebel27 j’ai une question est-il possible d’avoir l’état (ping ok) d’un module modbus tcp/ip directement dans sa tuile, et pourquoi pas sa latence? J’utilisais ton script de ping et puis je suis passer sous network. Le truc c’est que l’on multiplie les plugins parfois de trop.
Comme tu peux voir ci dessous Ardnbus1 pour le plugin network, Ardbus1 pour mymodbus.
D’ailleurs 118ms de latence y a un problème tiens.
Merci pour le boulot j’adore ton plugin. :star_struck:

Edit @Bebel27 :
J’ai un fonctionnement aléatoire sur la relève de température.
Il m’arrive déconnecter le module Arduino de test, et de le reconnecter mais parfois après des jours.
Il reste affiché sur la tuile une valeur de température fixe sur la période de déconnexion.
Puis lorsque je reconnecte le plugin ne lit plus rien jusqu’à ce que j’aille dans la configuration faire un « sauvegarder » . Une idée? Normal?

1 « J'aime »

Bonjour,

Deja un grand merci a @Bebel27 pour ce plugin qui m’a permis de connecter un Crouzet em4 avec Jeedom en qq minutes (bien que je sois un debutant complet !).

Après avoir lu/survolé les 500 posts… je n’arrive toujours pas a créer une commande.
Est ce que vous pourriez indiquer simplement un exemple de commande pour lire une température sur l’entrée I5 ? et aussi pour commander une sortie SVP ?

Et vu qu’il apparait que plusieurs personnes ont des Crouzet serait il pertinent de creer un topic dedié (et plus concis) MyModBus + automate Crouzet ?

je vous remercie par avance.
P.

1 « J'aime »

Salut @gratin,
Oui tu peux faire un sujet en parallèle par rapport à ta question, mais regarde bien sur le forum il y en a déjà qui parle du Crouzet M3.
Pour répondre à ta question, envoie moi une photo de la partie de ton programme qui gère cette sonde et je pourais t’aider. Tip si tu poste dans un autre sujet tag moi avec @Bebel27 pour que je puise être informé.
@Fabio133, je pense que le démond doit être out, c’est un des sujets que je vais traiter dans les futurs mise à jour, suivre l’état des threads et les relancer en cas de deconection.
Car dans la bibliothèque modbus je peux en cas de perte de connection fais des essais de reconnection, mais au bout d’un certain temps le thread tombe et tu ne vois rien si tu as un deuxième équipement qui tourne le démond restera en vert alors que pourtant celui de l’autre équipement est out.(donc pour moi ton soucis c’est une perte de connection même très courte, entre l’équipement et jeddom)

1 « J'aime »

Merci beaucoup pour ta reactivité.


voici mon programme! tout simple pour l’instant juste pour tester.

  • I5 = sonde de temperature NTC
  • I7 = test du voltage de l’alimentation

La documentation que tu as faite est claire et simple sous " 5) Exemple de configuration pour un automate Crouzet" cela m’a permis de connecter mon module sans souci.

seulement je ne connais pas l’adresse pour l’entrée I5.
et aussi j’ai du mal a saisir la difference entre les 4 types E/S. et quand les utiliser. j’ai tatonner avec de multiples combinaisons j’obtiens toujours 0 comme valeur de retour.

Pour ouvrir un nouveau sujet recapitulant les infos des modules Crouzet, vu mon niveau, je me sent mal a l’aise :wink:

C’est certainement un truc comme ça vu les logs, je vais attendre les update alors.
Thanks

Il faut que tu utilise des blocs modbus et que tu y connecte le signal de ta sonde.

1 « J'aime »

Hello à tous,

Je mets ici avant de mettre dans la section petite annonce :
J’ai 3 millenium crouzet (2 xd26 et 1 xd10) 2 interfaces XN05 et 1 câble de programmation ZELIO (100% compatible avec M3Soft je l’utilise également du fait que je l’ai en double).
Et également un logo siemens 8E/4S.
Je passe mon installation sur M3EVO .
Je vous laisse venir vers moi pour ceux qui sont intéressé.

2 « J'aime »

Hello @gratin !
En effet, comme l’a dit @Bebel27, il faut que tu utilises un bloc XW OUT COM3 si tu veux transmettre des valeurs à Jeedom par Modbus.
Pour cela, rien de plus simple, dépose un bloc XW OUT COM3 sur ta feuille d’édition, relie les valeurs que tu veux transmettre à Jeedom aux entrées de ton bloc.
image
Ensuite, choisi une plage d’adresse pour tes valeurs dans les paramètres du bloc. Cette plage te permettra de retrouver tes valeurs avec Jeedom.


Sur Jeedom, parametre tes entrées modbus via les réglages du plug-in MyModbus. La doc de @Bebel27 t’aidera :wink:
Sur l’exemple suivant, j’ai relié les 6 premières entrées de mon bloc XW OUT COM 3 à des valeurs (ici, 3 températures et 3 position de volet roulant). 1 valeur = 1 adresse :

Bonne programmation :wink:

2 « J'aime »

Salut @Bebel27 et chapeau pour le boulot jusque là!

Je suis dans le meme cas que @Loic24 et possède donc une chaudière Okofen.
Je souhaiterais faire communiquer cette dernière avec jeedom et de ce fait, ton plugin semble tout indiqué!
As-tu une idée de quand l’UINT16 sera implémenté dans le plugin?
Je suis conscient que ça représente du travail, ne te sens surtout pas sous pression, c’est une demande complétement amicale :smiley:

THX

Hello @Bebel27, tout d’abord merci pour on travail.

J’ai beau faire mais je n’arrive pas à sélectionner le format float pour lire deux registres d’un coup.
Peux tu me dire comment faire stp?

NB : jeedom en version 4.0.61 et dernière version du plugin stable de MyModbus

1 « J'aime »

Bonjour Johan,

Merci beaucoup pour toutes ces infos.

j’ai tout paramétré comme toi. maintenant il retourne « none » au lieu de « 0 » avant.

Quel mode de connection utilises tu ? Crouzet_M3 ou Tcp/ip ? (j’ai essayé les 2 sans succés)

Dans ma commande je ne vois pas comme sur ton image le champ 16bits. et si je regarde le mode avancé apparemment il attend une String … ce qui pourrait etre le souci ?

Merci,
P.

Hello @Gratin,

J’utilise le mode Crouzet_M3 (compatible avec Millenium 3, em4 et Millenium Evo).
Il faut bien renseigner l’adresse IP de ton automate (accessible depuis le menu Communication/Adresses/Adresse IPv4 de ton automate ou en utilisant un logiciel de scan réseau). Il faut en suite renseigner le port : 502 sur les automates Crouzet.
Voici ma configuration en exemple :

Pour la configuration des commandes je met en effet « Holding Register » « 16bits ».
Dans un premier temps, pour voir si tu arrive à récupérer une valeur, tu peux cliquer sur l’icone « Tester » image à coté de la commande que tu veux essayer.

Je te laisse tester tout ça, dis moi si tu arrive à quelque-chose :wink:

2 « J'aime »

as tu essayé en register int16 voir ce que tu récupères ?

1 « J'aime »

Bonjour @Bebel27,
Il me semble que j’avais essayé sans résultat, je vérifie dans la semaine et je vous tiens au courant.
Pour ma part c’est le seul point qu’il me reste à solutionner et tout devrait rouler pour paramétrer et éventuellement faire une petite doc si ça intéresse quelqu’un.

@g0m

2 « J'aime »

Hello,

J’utilise un convertisseur Ethernet/RS845 et je rencontre un souci (je rencontrais le même avec l’autre plugin).
Si quelqu’un voit une coquille dans la conf de mon convertisseur je suis preneur.

Dans les logs, je n’ai que des « None », sauf si je commente dans le fichier /usr/local/lib/python2.7/dist-packages/pyModbusTCP/client.py, cette partie :

        # check rx_byte_count: buffer size must be consistent and have at least the requested number of registers
        ### A commenter pour les None
        if not ((rx_byte_count >= 2 * reg_nb) and
                (rx_byte_count == len(f_regs))):
            self.__last_error = const.MB_RECV_ERR
            self.__debug_msg('read_holding_registers(): rx byte count mismatch')
            self.close()
            return None
        # allocate a reg_nb size list
        registers = [None] * reg_nb
        # fill registers list with register items
        for i, item in enumerate(registers):
            registers[i] = struct.unpack('>H', f_regs[i * 2:i * 2 + 2])[0]
        # return registers list
        return registers

Si quelqu’un a une idée…

@Rigolman69, tu avais le même souci. Est-ce toujours le cas?

Merci d’avance.

Tu arrives à te connecter (je suppose) et à récupérer une information (je suppose que non) via modbus doctor ?

Je n’ai pas testé depuis un lustre…
Mais en commentant du code, je récupère bien toutes les infos (voir mon post).

Le but de ta question est de savoir si je peux récupérer une info (oui en bidouillant le code) ou voir autre chose?

C’était pour voir si tu arrivais bien à récupérer une information d’un registre parce que quand j’étais dans la découverte du modbus et donc dans la découverte de l’utilisation de modbus doctor, je n’avais pas eu de soucis en passant sur Mymodbus dès lors que j’avais enfin réussi à récupérer l’information sur Modbus docteur.
Après c’était un soucis de non prise en charge des mots inversés.

1 « J'aime »

Je me permet de remettre ma demande car je n’ai toujours pas trouvé comment faire, merci par avance.

Hello @Bebel27, tout d’abord merci pour on travail.

J’ai beau faire mais je n’arrive pas à sélectionner le format float pour lire deux registres d’un coup.
Peux tu me dire comment faire stp?

NB : jeedom en version 4.0.61 et dernière version du plugin stable de MyModbus