Tuto de A-Z pour domotiser une chaudiere De Dietrich + myModbus en TCP

Bonjour,
Je souhaite vous partager un tuto de A-Z sur comment domotiser une chaudiere De Dietrich MC25LP en modbus TCP (plugin mymodbus et module USR-IOT USR-TCP232-410 S.
Etant nouveau sur le forum, je ne peux attacher plus deux images dans mon post et je ne peux pas joindre de fichier… Pas facile pour un tuto.

Si un modérateur passe par là :slight_smile:

Olivier.

Introduction :

Le but de ce tuto est d’expliquer comment domotiser une chaudiere De Dietrich MC25 LP avec Jeedom installé sur un RaspBerry PI.
Cela a déjà été fait, beaucoup de forum traite du sujet (forum jeedom, Bebe27, Kyoshi, sarakha63…) mais rien qui explique comment faire de A à Z.
Vous le savez déjà beaucoup d’appareils industriels utilisent le protocole Modbus et c’est le cas de notre chaudière.

Matériel et Cablage :

Deux moyens pour Jeedom/Raspberry de discuter avec la chaudière en Modbus :
- Via un port USB du raspberry → Convertisseur USB/RS485 → MiniDIN Chaudiere
- Via Ethernet
Pour ma part et vu l’emplacement de la chaudière par rapport au Raspberry PI, j’ai choisi le mode Ethernet.
J’ai donc utilisé un convertisseur Ethernet vers série RS485 (USRIOT USR-TCP232-410 S).

Le connecteur miniDin est connecté sur la carte Diematic de la chaudière sur le port extérieur (celui le plus près du bord, encerclé rouge).
image 1 fichier joint.

Les fils 3 et 1 sont respectivement connectés au port B(-) et A(+) du USRIOT USR-TCP232-410 S
Image 2 fichier joint.

Un cable RJ45 est connecté entre le port RJ45 du USR-TCP232-410 S et de votre jeedom (via un switch….)
De base il arrive avec une adresse IP en 192.168.0.7 et user/password (admin/admin)
Vous pouvez garder cette adresse ou en configurer une correspondant à votre réseau (pas traité dans ce tuto).
Pour ma part, j’ai configuré une adresse IP en 192.168.0.204

Configuration USR-TCP232-410 S :

Parameter
Baud Rate : 9600
Data Size : 8
Parity : None
Stop Bits : 1
Sync Baudrate (RF2217 Similar) : x

Socket A Parameters
Work Mode : TCP Server / None
TCP Server Max Sockets : 8 Up To MAX KICK
Local/Remote Port Number : 55030 (ou autre mais mettre le même port pour la configuration du plugin dans Jeedom)
Poll Timeout : 200
Image 3 fichier joint.

La page d’accueil du module vous montre le TX Count et le RX Count.
Ce sont les bits échangés entre la chaudière et le module.
Ne pas vous inquiété pas si ils sont à 0 pour vous, c’est normal car le module n’a pas encore été sollicité pour allez lire les registres de la chaudières.
De même, pour vous, le Conn Status (ETHA) sera certainement en LISTEN/LISTEN et pas en LISTEN/CONNECTED (1).
Dans mon cas il est en LISTEN/CONNECTED car sollicité par Jeedom pour une lecteur de registre.
Image 4 fichier joint.

Par contre sur le module, vous devez voir la LED RX clignoter de manière régulière.
Si pas de clignotement problème sur le cable entre la chaudiere et le module (vérifier brochage et sonder le cable).

Coté JEEDOM et Plugin :

Bon c’est la partie la plus hasardeuse et il suffit de parcourir les forums pour comprendre que le choix d’un plugin modbus n’est pas simple :
Stable, beta, modbus, modbus rtu, modbus tcp, mymodbus……
Bref, c’est sur ce point que j’ai le plus galéré.
Pour ma part et après plusieurs tests, j’ai gardé le plugin mymodbus, c’est le seul qui fonctionnait et qui a une documentation.

Important : Une fois le plugin mymodbus installé, il faudra ajouter un équipement pour que le démon démarre

Pour l’ajout/configuration de l’équipement, rien de compliqué :
Nom de l’équipement, Parent, Catégorie….
Les points importants :
Mode de connection : tcpip
Adresse IP : doit correspondre à l’adresse de votre module USR, pour moi, 192.168.0.204
Port : doit correspondre au port de votre module USR, pour moi 55030
Unit ID : 10 (c’est l’adresse par défaut d’une chaudière De Dietrich)
Image 5 fichier joint.

Ensuite rendez-vous sur l’onglet Commande de votre équipement :

En cherchant sur les forums, vous trouverez la table d’adressage modbus d’une chaudiere De Dietrich.
Merci à Lipon67 qui m’a donné accès à la table.

Pour ma part, je suis intéressé par les registres suivants :
Pression (Registre 456)
Temp Ext (Registre 7)
Temp Jour (Registre 14)
TempBallon (Registre 459)
Defaut Chaudière (Registre 465)
Alarme Chaudière (Registre 500)

Pour accéder à ces registres en lecture, il faut faire une commande de type FC3 Holding Register sur l’adresse qui nous intéresse….
Il faut savoir quelle type de valeur on attend en retour (numérique, binaire….) et l’unité (Bar, °C……).
Vous pouvez maintenant effacer les lignes existantes et créer des nouvelles ligne en cliquant sur Ajouter une info :
Image 6 fichier joint.

Une fois la commande créer, vous pouvez faire un test en cliquant sur le symbole wifi, vous deviez obtenir un retour.
Par exemple pour la pression, j’obtiens un 17, bon 17 bar c’est un peu beaucoup, il faut donc comprendre 1.6 bar.
On peut automatiser le calcul de la valeur en cliquant sur les petites roues crantées et dans le volet Configuration.
Dans le champ formule de calcul, vous pouvez alors indiquer l’opération #valeur#/10
Image 7 fichier joint.

Vous pouvez tester directement si vous modifications sont prises en compte :
Image 8 fichier joint.

Attention quelques bugs dans le plugin,
Pour la pression, si vous définissez un min et max, la valeur en retour n’est plus mis à jour….

L’affichage finale donne :
Image 9 Fichier joint.

Conclusion :

Le résultat obtenu correspond parfaitement à mon besoin.
J’ai des indications précises sur les paramètres vitaux de ma chaudière.
Mise en oeuvre d’envoi de SMS quand des seuils d’alerte sont atteints (pression sous 1.2 bar…), c’est top.
Et enfin je couple l’ensemble à un assistant vocal Google Nest pour avoir des commandes du type :
Hey Google, pression de la chaudiere ? Température extérieur ?

4 « J'aime »

Bonsoir,
Super pour le tuto.
Tu n’as pas de problème avec le démon car perso le démon ne tiens pas avec un convertisseur rs485 en rtu et même avec un ZLAN5143D en ip. Bebel27 a jeter un œil sur mon jeedom et le problème est dû au faite que la chaudière communique que toutes les 5 secondes.
J’ai une mc25 diematic 3

Salut @brindille91, mille mercis c’est exactement le besoin que j’ai depuis quelques semaines. Et pour en avoir discuté avec un collègue. On se posait à question de comment faire :slightly_smiling_face:

1 « J'aime »

Hello Loustic03,
De mon coté le démon est ok.
Mon Jeedom tourne sur un raspberry.
J’ai aussi une DeDietrich MC25.
La seule différence c’est le module MODBUS. Moi c’est un USR-IOT.
Toi si j’ai bien compris tu as testé en série direct avec mymodbus en config RTU et avec ton ZLAN avec mymodbus en mode TCP…
Chez moi si je regarde le daemon modbus il fait aussi un poll toute les 5s :
Un ps -ef sur le raspberry me donne :
/usr/bin/python /var/www/html/plugins/mymodbus/ressources/demon.py -h 192.168.0.204 -p 55030 --unit_id=10 --polling=5 --keepopen=0 --protocol=tcpip --eqid=125 --hrs=456,7,14,459,465,500
C’est bizarre.
Tu peux faire un ps -ef|grep modbus et renvoyer le retour ?
Ton daemon modbus, il crash ? tu as regardé dans ton syslog ?
A plus,

Je vous mets le lien vers mon tuto.
N’hésitez pas à me faire part de vos commentaires.
@Loustic03, je connais pas le ZLAN, essaye de comparer avec les impressions écrans de mon USR IOT.

1 « J'aime »

Tu as bien compris.
Oui le demon tombe systématiquement, bebel27 à déjà jetais un oeil sur mon jeedom et il pense que le demon tombe justement à cause des 5 secondes de pause de la com modbus de la diematic.
Perso j’ai la mc25, toi c’est la mc25 LP et je sais que la carte de la chaudière est différente.

T’es certain pour les différences de carte, tu veux que je poste une photo de ma carte ?

J’avais pris un usr iot mais il avait les bornes A et B hs du coup je l’ai renvoyé
Je regarde ce soir

Oui je suis certain je connais très bien dedietrich

Bonjour brindille91,

Merci pour ce super partage !!!
J’ai acheté une chaudière De Dietrich il a deux ans, parce que je pensais qu’elle serait facile à connecter à mon Jeedom. Hélas, après quelques semaines, j’ai laissé tomber. Et maintenant, quelqu’un fait un tuto, génial ! Par contre, ca ne marche pas encore complètement :frowning: pour moi.

J’avais déjà acheté à l’époque le boitier USR-TCP232-410S, et je viens de vérifier les connexions, je l’avais cablé avec comme indiqué, enfin presque, parce que si les fils du cable correspondent bien, ma carte elle est différentes :

Le statut de mon convertisseur est:

Au début, je n’avais pas Listen/connected, mais connecting/connected. J’ai changé le mode RS232 en client vers serveur, et ca m’a donné Listen/connected. Je sais, le cable de la chaudière est connecté sur la RS485, mais visiblement, il y avait interférence.

La diode rouge 485 TX s’allume environ toutes les 30s, mais visuellement, on dirait pas que la diode verte 485RX s’allume. Pourtant, le RX count n’est pas nul, et à la vidéo à 60 im/s, on dirait que toutes les diodes s’allument très brièvement toutes les 30s environ.

Ensuite, j’ai suivi le tuto à la lettre, tout à l’air OK, et pourtant, toutes les variables restent à 0 dans mon équipement Jeedom.
:worried:
Etrange non ?

Pierre

Bonjour ,
C’est une Diematic iSystem

La mienne est une AMC 25, mais je suis connecté sur la prise modBus de la carte SCB-10, ca devrait fonctionner non ?
Sinon, j’ai trouvé aussi l’erreur javascript suivante dans Jeedom:

http://[IP de ma box]/index.php?v=d&m=mymodbus&p=mymodbus line 2 > injectedScript 39 ReferenceError: initCheckBox is not defined

Le message n’apparait pas dans le log du plugin par défaut mais avec un signe
image
sur l’équipement de ma chaudiere du plugin modBus.

Pierre

Ok donc tu as la diematic evolution .
Tu as mis le plugin en bêta
Après je sais que les versions diematic jusqu’a 3 ne sont pas encore compatible modbus en cascade avec les diematic iSystem et évolution
A voir pour ton souci

1 « J'aime »

Merci pour le msg d’erreur et pour l’info sur ma chaudière.
Est-ce que ca signifie que je ne peux pas récupérer les informations pour l’instant ?

Il faut passer en bêta le plugin et voir dans le log si tu vois passer quelques choses.

Bonjour loustic03,

Tu as l’air de t’y connaitre en chaudière De Dietrich, la mienne est une Evodens AMC25 VH. Je l’ai choisie parce qu’elle m’avait l’air moderne et capable de communiquer de manière évoluée, mais je commence à en douter.

Dans le log en mode debug du plugin modbus de Jeedom, tout a l’air de fonctionner sauf qu’il ne lit rien:

Si je regarde la communication de mon USR Riot, voilà ce que je vois:

Et coté diodes de l’USR Riot, il y a:

  • La diode Power rouge allumée en permanence
  • La diode Work verte, qui clignote toutes les secondes
  • La diode 485TX qui clignote rouge une fois toutes les 30 s
    et rien d’autre.

Est-ce que c’est normal ?
Je rêve de connecter mon Jeedom sur cette chaudière depuis que je l’ai achetée, ca serait génial si enfin ca fonctionnait !

Bonjour,
Oui je connais bien les chaudière De Dietrich et pas que cette marque.

Là je peux guère d’aider car celui que j’avais acheté avait un défaut de fabrique et du coup je suis passé avec un Convertisseur USB vers RS422 RS485 ça fonctionne bien a part le démon qui tombe mais redémarre et remonte les infos.
Il y a un post sur avec le USR

Bonjour,

Je possède une chaudière De Dietrich MRC24/28 BIC PLUS voici la notice. Avez-vous la possibilité de me dire si elle pourrait être domotisable comme expliqué dans ce tuto (est-elle modbus ?).

D’avance merci.

1 « J'aime »

Salut @brindille91
Merci pour ce tuto. Je n arrive pas a avoir acces a ton One drive. D’après Microsoft le partage ne serait plus valide.

Pourrais tu stp repartager quelques screen shot en particulier pour la requete holding register fc03 que je n ai pas reussi a faire fonctionner sur mymodbus?

Merci d’avance pour votre aide.