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à
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 ?