Demande d'aide pour communiquer via Modbus avec une VMC thermodynamique MyDatec Smart V 200

Bonjour à tous,

Je lance une bouteille à la mer pour essayer de récupérer la table de registres de la VMC MyDatec Smart V 200, car le fabriquant refuse (sans raison, mais catégoriquement) de la divulguer (Service Technique contacté par téléphone plusieurs fois).
D’autre part, j’aimerais également vérifier que ma configuration est correcte (liaison physique).
Voici donc l’installation mise en œuvre jusqu’ici :
Les deux fils (A et B) du bus de la VMC (côté écran tactile) sont reliés à un module RS485/TCP de type ZLAN5143D (il faut scroller vers le bas pour voir apparaitre le produit), lui-même connecté à un Switch Ethernet où se trouve connectée la Box Jeedom Atlas.
Sur Jeedom, le plugin mymodbus a été installé et un nouvel équipement a été créé (mode de connexion : tcpip).
A partir de là, je suis dans le flou !
Voici quelques copies d’écrans de ce que j’ai configuré/obtenu :



A chaque test de lecture ou d’écriture sur Modbus Doctor, des valeurs (pour moi incohérentes) arrivent face aux numéros de registres dans Modbus Doctor.
Côté Jeedom (plugin mymodbus), les infos obtenues semblent sans rapport avec des données connues (sur l’écran tactile de la VMC, par exemple).
Mais n’ayant aucune info sur les registres de la machine, cela n’a rien d’étonnant !..

Si quelqu’un a une idée et surtout des infos (comme @mgaloseau qui disait ici avoir avancé dans cette voie, mais qui ne se connecte plus sur le forum depuis un certain temps - relances en MP sans réponse), il sera le bienvenu !

Merci d’avance pour votre aide.

Bonne fin de journée.

Dom.

Bonjour,

Dans un premier temps, je vous conseillerais d’utiliser la version bêta qui va remplacer la version stable bientôt et qui permet la conversion vers plus de formats de données.

Ensuite, effectivement il vous faut la documentation du fabricant, sans elle, ce sont de longues heures de test qui vous attendent. Il faut retrouver qu’est-ce qui est écrit où et avec quel format. C’est quasi impossible. Bon il y a une chance de tomber sur quelques informations mais vous n’aurez sans doute jamais tout ce que vous cherchez.
Sur le site du constructeur, le mode de communication Modbus est mis en avant, il serait donc légitime de leur part de fournir les informations pour l’exploiter. Passez par un ami qui hésiterait avec une VMC double flux Brink Flair400, qui eux fournissent la table d’échange Modbus (je suis très bien placé pour le savoir, j’en ai une). Ou tout autre modèle documenté comme il se doit. Si vous connaissez un pro qui peut faire pression pour avoir cette info, n’hésitez pas.

edit: je me permets de rajouter un lien vers un post qui contient un conseil très avisé concernant le bidouillage Modbus :

A+
Michel

Merci Michel pour votre avis éclairé.
Je vais regardé cette version beta…
Quant à la VMC double flux Brink Flair400, il n’est pas possible de la comparer à la MyDatec puisqu’il s’agit d’une VMC à échangeur statique (sans PAC intégrée).
Le nombre de modèles de VMC thermodynamiques (avec PAC) est hélas très faible, ce qui limite les possibilités de faire pression sur la marque MyDatec.
Cependant, un pro (installateur ?) pourrait en effet peut-être faire jouer son influence pour obtenir la table… Je n’en connais pas, hélas.
J’attends plutôt des infos de quelqu’un qui aurait réussi à aller plus loin dans la reconstruction de la table Modbus !
Encore merci et bonne journée.
Dom.

J’ai une Flair400 + EcoConfort en sortie duquel il y a un échangeur qui chauffe ou rafraichit par une chaudière à PAC Hitachi.
Mais là n’est pas la question, c’était juste un exemple.

Bon courage dans vos recherches

Merci @Michel_F ,
Alors ce matin, en passant à la version beta du plugin mymodbus, je suis passé à une nouvelle étape, puisque je suis parvenu à communiquer avec la VMC (en lecture et en écriture).

Malheureusement que sur une unique donnée (la température de consigne de la zone « nuit ») dont le numéro de registre avec été dévoilé dans un post de @mgaloseau.
A partir de cette avancée, j’aimerai bien trouver d’autres registres et leurs significations mais comment ?
A défaut d’avoir la table des registres complète, si quelqu’un a une idée sur comment les découvrir, ça m’intéresse !
Merci et Bonne journée
Dom.

1 « J'aime »

Je n’ai aucun doute sur le fait que le plugin fonctionne. Le plus dur pour toi sera effectivement de trouver le reste des infos.
Avec Modbus Doctor, tu peux essayer de lire des float32 dans la zone autour de ce registre. Je ne sais pas quoi te conseiller de plus

Merci @Michel_F ,
En suivant ton dernier conseil, j’ai pu trouver déjà 21 registres supplémentaires (dont les deux températures de consignes).
Naturellement, je me ferai un devoir (contrairement à MyDatec et à son service d’automaticiens !) de partager ici l’ensemble des résultats trouvés avec ceux qui voudraient piloter leur VMC.
Je retourne au boulot !..
Bonne soirée.
Dom.

1 « J'aime »

Bon on pourrait imaginer qu’un script puisse scanner les ports, sur des plages définies, avec un type de donnée défini, pour savoir si les registres existent. Ce serait un script à laisser tourner sur de longues périodes pour déterminer les plages utiles.
Coté script ça pourrait facilement être du python avec le module pymodbus. Il faudrait sans doute gérer la connexion correctement, mais je crois que la version synchrone se reconnecte toute seule aussi maintenant. S’il te faudrait quelque chose de ce genre, fais moi signe. Je ne garantis pas de le faire rapidement mais ça pourrait être intéressant. Ca se trouve, ça existe déjà ?

Alors c’est exactement ce que j’ai commencé à chercher : une possibilité logicielle de scanner l’activité Modbus TCP et en déduire les registres.
J’ai essayé quelques logiciels disponibles en téléchargement, mais rien de fantastique pour le moment…
Je te tiens au courant…
Encore merci !
Dom.

Voici donc le début d’un long travail de fourmis (merci MyDatec :japanese_ogre:!) pour retrouver les registres de la VMC Smart V 200 (mis à jour le 08/12/2024) :

Il reste beaucoup de registres à trouver mais c’est déjà un début.
N’oublie pas de me contacter @mgaloseau, si tu reviens sur ce forum, pour comparer tes recherches et surtout ajouter les registres manquants !
Merci à tous.
Dom.

C’est un très bon début !

Je suis très surpris par le fait que seules 5 valeurs float32 nécessitent l’inversion de mot. Normalement, c’est une configuration pour l’ensemble de l’appareil puisque c’est lié à l’architecture CPU.
Tu as essayé de décaler d’un registre et de ne pas inverser ?

Bien vu @Michel_F !
Ne connaissant pas du tout Modbus, j’ai procédé en tâtonnant sans penser qu’une telle règle existait ! Alors je rectifie la table pour simplifier.
Merci et bonne soirée.
Dom.

1 « J'aime »

Au fait, @Michel_F ,
Puisque tu en sais beaucoup plus que moi sur le sujet, pourrais-tu me guider dans la recherche des registres restants, stp ?
Par exemple :
A ta connaissance, existe-t-il des limites supérieures aux nombres des registres ?
Est-il courant de réserver des numéros (ou zones de numéros) de registres aux tâches On/Off ?
Si tu as des idées susceptibles de m’aider, je suis preneur !
Encore merci !
Dom.

je vais faire ce que je peux

Il peut y avoir différents types de registres, souvent ce ne sont que les holding registers qui sont utilisés. Mais tu peux essayer les autres types de requêtes.
Les adresses de registre vont de 0 à 65535 puisque l’adresse est codée sur 2 octets dans la trame Modbus.
L’adresse esclave va de 0 (broadcast) à 247.

Pas que je sache

EasyModbusTCP est un logiciel peut-être mieux que ModbusDoctor pour tester des plages.

A part ça, c’est à toi de tout faire

Encore merci @Michel_F pour ton aide précieuse :smiley:
Je ferai un retour ici pour donner l’état de l’avancement de mes recherches…
Bonne soirée.
Dom.

Bonjour @Michel_F ,
Je reviens vers toi concernant l’utilisation d’EasyModbusTCP.
Tu disais que :

Il semble intéressant en effet, cependant, je ne parviens pas à l’utiliser.
Son paramétrage parait incomplet lorsque j’utilise Modbus TCP (où rentre-t-on l’adresse IP ?) et sans effet lorsque j’utilise Modbus RTU (rien ne bouge une fois les paramètres rentré).
Voici des copies d’écrans :


Pourrais-tu m’indiquer les points à vérifier pour que ça fonctionne, STP ?
Merci d’avance et bonne journée.
Dom.

Salut,

Il te faut la version client, pas la version Serveur.
Avec cette version client, tout va te paraitre plus simple, je te l’assure.

A+
Michel

Merci @Michel_F pour ton conseil avisé :wink:
En utilisant la version client, ça marche et j’obtiens cela :

Cependant, les valeurs affichées me paraissent très éloignées de celles obtenues avec ModbusDoctor (et donc des valeurs réelles), comme s’il manquait la fonction permettant de paramétrer « mots inversés », « float 32 », « mod16 bits »… (que je ne trouve pas ici).
Sais-tu comment retrouver les valeurs réelles sur EasyModbus, stp ?
Merci et bonne journée.
Dom.

En effet, seul ModbusDoctor permet la conversion. EasyModbus permet de tester l’existance des registres plus rapidement, je trouve.

Pour le décodage, en float32 par exemple, il faut tester avec un script dédié, je ne connais pas de solution toute faite. Ca ne veut pas dire que ça n’existe pas.

J’ai trouvé ModbusTool en cherchant un peu, mais il ne couvre pas tout.

Sinon, il faut écrire un script python qui utilise la même lib que MyModbus, à savoir pymodbus, et où les registres à tester seraient paramétrables.

edit: en y pensant, ça pourrait être un outil intégré dans MyModbus…

Bonjour @Michel_F ,
Je te remercie pour ton retour.
Je vais mettre en pause mes recherches pour le moment car je suis un peu occupé en ce moment, mais je reviendrai ici pour poster mes avancées plus tard…
En attendant, si quelqu’un a des idées/infos, tout est bienvenu !
Encore merci et bonne journée.
Dom.