Probléme de remonté d'info, chaudiére de Dietrich

Bonjour, j’ai une chaudiére De Dietrich, je suis passé au plugin MyModBus car l’ancien plugin ne fonctionne plus.

Avant j’avais la possibilité de donner des ordres et de recevoir des valeurs.

Je recommence donc la configuration de Zéro de l’équipement. Pour le moment je regarde que 4 register en lecture, seul le registre 7 : température extérieur remonte, mais pas 3 autres.

Je sais que les chaudières de cette marque, ont un systéme maitre esclave spécifique.
Mais sur les anciens plugin il était possible de valider ce fonctionnement.
Voici le log Debug, pour aider à comprendre le probléme.

[2024-05-17 11:17:16][DEBUG] : PyModbusClient: *De Dietrich* connect called
[2024-05-17 11:17:16][DEBUG] : PyModbusClient: *De Dietrich* connecting...
[2024-05-17 11:17:16][DEBUG] : Starting serial connection
[2024-05-17 11:17:16][DEBUG] : Client connected to modbus server
[2024-05-17 11:17:16][INFO] : Serial connected.
[2024-05-17 11:17:16][INFO] : Connected to /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A98IBMI4-if00-port0
[2024-05-17 11:17:17][DEBUG] : send: 0xa 0x3 0x0 0x7 0x0 0x1 0x34 0xb0
[2024-05-17 11:17:17][DEBUG] : Adding transaction 10
[2024-05-17 11:17:17][DEBUG] : recv: 0xa 0x3 0x2 0x0 0x8a 0x9c 0x22 0x0 0x0 0x0
[2024-05-17 11:17:17][DEBUG] : Getting Frame - 0x3 0x2 0x0 0x8a
[2024-05-17 11:17:17][DEBUG] : Factory Response[ReadHoldingRegistersResponse': 3]
[2024-05-17 11:17:17][DEBUG] : Frame advanced, resetting header!!
[2024-05-17 11:17:17][DEBUG] : Getting transaction 10
[2024-05-17 11:17:17][DEBUG] : Frame - [b'\n\x03\x02\x00\x8a\x9c"\x00\x00\x00'] not ready
[2024-05-17 11:17:17][DEBUG] : [138]
[2024-05-17 11:17:17][DEBUG] : send: 0xa 0x3 0x1 0xc8 0x0 0x1 0x5 0x73
[2024-05-17 11:17:17][DEBUG] : Adding transaction 10
[2024-05-17 11:17:18][DEBUG] : recv: 0xa 0x3 0x2 0x0 0xe 0x9c 0x41 0x0 0x0 0x0
[2024-05-17 11:17:18][DEBUG] : Frame check failed, ignoring!!
[2024-05-17 11:17:18][DEBUG] : Resetting frame - Current Frame in buffer - 0x0 0x0 0x0 0xa 0x3 0x2 0x0 0xe 0x9c 0x41 0x0 0x0 0x0
[2024-05-17 11:17:20][INFO] : Serial lost connection.
[2024-05-17 11:17:20][DEBUG] : Client disconnected from modbus server: trying to send
[2024-05-17 11:17:20][DEBUG] : Getting transaction 10
[2024-05-17 11:17:20][ERROR] : PyModbusClient: *De Dietrich* Something went wrong while reading Pression (command id 8409): <class 'TimeoutError'>  = . Traceback: <traceback object at 0xf614d3c8>
[2024-05-17 11:17:20][INFO] : Serial lost connection.
[2024-05-17 11:17:20][DEBUG] : Client disconnected from modbus server: None
[2024-05-17 11:17:20][ERROR] : PyModbusClient: *De Dietrich* Something went wrong while reading TempBall (command id 8410): <class 'pymodbus.exceptions.ConnectionException'>  = Modbus Error: [Connection] Not connected[AsyncModbusSerialClient None:/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A98IBMI4-if00-port0]. Traceback: <traceback object at 0xf614d788>
[2024-05-17 11:17:21][ERROR] : PyModbusClient: *De Dietrich* Something went wrong while reading TempJour (command id 8411): <class 'pymodbus.exceptions.ConnectionException'>  = Modbus Error: [Connection] Not connected[AsyncModbusSerialClient None:/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A98IBMI4-if00-port0]. Traceback: <traceback object at 0xf614d408>
[2024-05-17 11:17:21][DEBUG] : PyModbusClient: *De Dietrich* disconnect called
[2024-05-17 11:17:22][DEBUG] : PyModbusClient: *De Dietrich* connect called
[2024-05-17 11:17:22][DEBUG] : PyModbusClient: *De Dietrich* connecting...
[2024-05-17 11:17:22][DEBUG] : Starting serial connection
[2024-05-17 11:17:22][DEBUG] : Client connected to modbus server
[2024-05-17 11:17:22][INFO] : Serial connected.
[2024-05-17 11:17:22][INFO] : Connected to /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A98IBMI4-if00-port0
[2024-05-17 11:17:23][DEBUG] : send: 0xa 0x3 0x0 0x7 0x0 0x1 0x34 0xb0
[2024-05-17 11:17:23][DEBUG] : Adding transaction 10
[2024-05-17 11:17:23][DEBUG] : recv: 0xa 0x3 0x2 0x0 0x8a 0x9c
[2024-05-17 11:17:23][DEBUG] : Frame - [b'\n\x03\x02\x00\x8a\x9c'] not ready
[2024-05-17 11:17:23][DEBUG] : recv: 0x22 0x0 0x0 0x0
[2024-05-17 11:17:23][DEBUG] : Getting Frame - 0x3 0x2 0x0 0x8a
[2024-05-17 11:17:23][DEBUG] : Factory Response[ReadHoldingRegistersResponse': 3]
[2024-05-17 11:17:23][DEBUG] : Frame advanced, resetting header!!
[2024-05-17 11:17:23][DEBUG] : Getting transaction 10
[2024-05-17 11:17:23][DEBUG] : Frame - [b'"\x00\x00\x00'] not ready
[2024-05-17 11:17:23][DEBUG] : [138]
[2024-05-17 11:17:23][DEBUG] : send: 0xa 0x3 0x1 0xc8 0x0 0x1 0x5 0x73
[2024-05-17 11:17:23][DEBUG] : Adding transaction 10
[2024-05-17 11:17:23][DEBUG] : recv: 0xa 0x3 0x2 0x0 0xe
[2024-05-17 11:17:23][DEBUG] : Frame check failed, ignoring!!
[2024-05-17 11:17:23][DEBUG] : Resetting frame - Current Frame in buffer - 0x0 0x0 0x0 0xa 0x3 0x2 0x0 0xe
[2024-05-17 11:17:23][DEBUG] : recv: 0x9c 0x41 0x0 0x0 0x0
[2024-05-17 11:17:23][DEBUG] : Frame check failed, ignoring!!
[2024-05-17 11:17:23][DEBUG] : Resetting frame - Current Frame in buffer - 0x9c 0x41 0x0 0x0 0x0
[2024-05-17 11:17:26][INFO] : Serial lost connection.
[2024-05-17 11:17:26][DEBUG] : Client disconnected from modbus server: trying to send
[2024-05-17 11:17:26][DEBUG] : Getting transaction 10
[2024-05-17 11:17:26][ERROR] : PyModbusClient: *De Dietrich* Something went wrong while reading Pression (command id 8409): <class 'TimeoutError'>  = . Traceback: <traceback object at 0xf614d808>
[2024-05-17 11:17:26][INFO] : Serial lost connection.
[2024-05-17 11:17:26][DEBUG] : Client disconnected from modbus server: None
[2024-05-17 11:17:26][ERROR] : PyModbusClient: *De Dietrich* Something went wrong while reading TempBall (command id 8410): <class 'pymodbus.exceptions.ConnectionException'>  = Modbus Error: [Connection] Not connected[AsyncModbusSerialClient None:/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A98IBMI4-if00-port0]. Traceback: <traceback object at 0xf614d8a8>
[2024-05-17 11:17:26][ERROR] : PyModbusClient: *De Dietrich* Something went wrong while reading TempJour (command id 8411): <class 'pymodbus.exceptions.ConnectionException'>  = Modbus Error: [Connection] Not connected[AsyncModbusSerialClient None:/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A98IBMI4-if00-port0]. Traceback: <traceback object at 0xf614da88>
[2024-05-17 11:17:26][INFO] : Send to jeedom :  {'eqId': '630', 'values': {'cycle_time': 5.274927711486816}}
[2024-05-17 11:17:26][DEBUG] : PyModbusClient: *De Dietrich* disconnect called
[2024-05-17 11:17:26][DEBUG] : Starting new HTTP connection (1): localhost:80
[2024-05-17 11:17:26][DEBUG] : jeemymodbus.php: $result *{"eqId":"630","values":{"cycle_time":5.274927711486816}}* type: array
[2024-05-17 11:17:26][DEBUG] : jeemodbus.php: Mise à jour cmd Temps de rafraîchissement -> new value: 5.275
[2024-05-17 11:17:26][INFO] : jeemodbus.php: Mise à jour des commandes info : 'Temps de rafraîchissement'
[2024-05-17 11:17:26][DEBUG] : http://localhost:80 "POST /plugins/mymodbus/core/php/jeemymodbus.php?apikey=NTlQJdhRmX0M1tGFwxiQyvFe7BFKwGO5nHnYt9dQIV4inUUGF3uSUDRdqNi020yh HTTP/1.1" 200 0
[2024-05-17 11:17:27][DEBUG] : PyModbusClient: *De Dietrich* connect called
[2024-05-17 11:17:27][DEBUG] : PyModbusClient: *De Dietrich* connecting...
[2024-05-17 11:17:27][DEBUG] : Starting serial connection
[2024-05-17 11:17:27][DEBUG] : Client connected to modbus server
[2024-05-17 11:17:27][INFO] : Serial connected.
[2024-05-17 11:17:27][INFO] : Connected to /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A98IBMI4-if00-port0
[2024-05-17 11:17:28][DEBUG] : send: 0xa 0x3 0x0 0x7 0x0 0x1 0x34 0xb0
[2024-05-17 11:17:28][DEBUG] : Adding transaction 10
[2024-05-17 11:17:28][DEBUG] : recv: 0xa 0x3 0x2 0x0 0x8a 0x9c 0x22 0x0 0x0 0x0
[2024-05-17 11:17:28][DEBUG] : Getting Frame - 0x3 0x2 0x0 0x8a
[2024-05-17 11:17:28][DEBUG] : Factory Response[ReadHoldingRegistersResponse': 3]
[2024-05-17 11:17:28][DEBUG] : Frame advanced, resetting header!!
[2024-05-17 11:17:28][DEBUG] : Getting transaction 10
[2024-05-17 11:17:28][DEBUG] : Frame - [b'\n\x03\x02\x00\x8a\x9c"\x00\x00\x00'] not ready
[2024-05-17 11:17:28][DEBUG] : [138]
[2024-05-17 11:17:28][DEBUG] : send: 0xa 0x3 0x1 0xc8 0x0 0x1 0x5 0x73
[2024-05-17 11:17:28][DEBUG] : Adding transaction 10
[2024-05-17 11:17:28][DEBUG] : recv: 0xa 0x3 0x2 0x0 0xd 0xdc 0x40 0x0 0x0 0x0
[2024-05-17 11:17:28][DEBUG] : Frame check failed, ignoring!!
[2024-05-17 11:17:28][DEBUG] : Resetting frame - Current Frame in buffer - 0x0 0x0 0x0 0xa 0x3 0x2 0x0 0xd 0xdc 0x40 0x0 0x0 0x0
[2024-05-17 11:17:31][INFO] : Serial lost connection.
[2024-05-17 11:17:31][DEBUG] : Client disconnected from modbus server: trying to send
[2024-05-17 11:17:31][DEBUG] : Getting transaction 10
[2024-05-17 11:17:31][ERROR] : PyModbusClient: *De Dietrich* Something went wrong while reading Pression (command id 8409): <class 'TimeoutError'>  = . Traceback: <traceback object at 0xf614d2a8>
[2024-05-17 11:17:31][INFO] : Serial lost connection.
[2024-05-17 11:17:31][DEBUG] : Client disconnected from modbus server: None
[2024-05-17 11:17:31][ERROR] : PyModbusClient: *De Dietrich* Something went wrong while reading TempBall (command id 8410): <class 'pymodbus.exceptions.ConnectionException'>  = Modbus Error: [Connection] Not connected[AsyncModbusSerialClient None:/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A98IBMI4-if00-port0]. Traceback: <traceback object at 0xf614d2a8>
[2024-05-17 11:17:31][ERROR] : PyModbusClient: *De Dietrich* Something went wrong while reading TempJour (command id 8411): <class 'pymodbus.exceptions.ConnectionException'>  = Modbus Error: [Connection] Not connected[AsyncModbusSerialClient None:/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A98IBMI4-if00-port0]. Traceback: <traceback object at 0xf614d0e8>
[2024-05-17 11:17:31][DEBUG] : PyModbusClient: *De Dietrich* disconnect called
[2024-05-17 11:17:32][DEBUG] : PyModbusClient: *De Dietrich* connect called
[2024-05-17 11:17:32][DEBUG] : PyModbusClient: *De Dietrich* connecting...
[2024-05-17 11:17:32][DEBUG] : Starting serial connection
[2024-05-17 11:17:32][DEBUG] : Client connected to modbus server
[2024-05-17 11:17:32][INFO] : Serial connected.
[2024-05-17 11:17:32][INFO] : Connected to /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A98IBMI4-if00-port0
[2024-05-17 11:17:33][DEBUG] : send: 0xa 0x3 0x0 0x7 0x0 0x1 0x34 0xb0
[2024-05-17 11:17:33][DEBUG] : Adding transaction 10
[2024-05-17 11:17:33][DEBUG] : recv: 0xa 0x3 0x2
[2024-05-17 11:17:33][DEBUG] : Frame - [b'\n\x03\x02'] not ready
[2024-05-17 11:17:33][DEBUG] : recv: 0x0 0x8a 0x9c 0x22 0x0 0x0 0x0
[2024-05-17 11:17:33][DEBUG] : Getting Frame - 0x3 0x2 0x0 0x8a
[2024-05-17 11:17:33][DEBUG] : Factory Response[ReadHoldingRegistersResponse': 3]
[2024-05-17 11:17:33][DEBUG] : Frame advanced, resetting header!!
[2024-05-17 11:17:33][DEBUG] : Getting transaction 10
[2024-05-17 11:17:33][DEBUG] : Frame - [b'\x00\x8a\x9c"\x00\x00\x00'] not ready
[2024-05-17 11:17:33][DEBUG] : [138]
[2024-05-17 11:17:33][DEBUG] : send: 0xa 0x3 0x1 0xc8 0x0 0x1 0x5 0x73
[2024-05-17 11:17:33][DEBUG] : Adding transaction 10
[2024-05-17 11:17:33][DEBUG] : recv: 0xa 0x3 0x2 0x0 0xe 0x9c 0x41 0x0 0x0 0x0
[2024-05-17 11:17:33][DEBUG] : Frame check failed, ignoring!!
[2024-05-17 11:17:33][DEBUG] : Resetting frame - Current Frame in buffer - 0x0 0x0 0x0 0xa 0x3 0x2 0x0 0xe 0x9c 0x41 0x0 0x0 0x0
[2024-05-17 11:17:36][INFO] : Serial lost connection.
[2024-05-17 11:17:36][DEBUG] : Client disconnected from modbus server: trying to send
[2024-05-17 11:17:36][DEBUG] : Getting transaction 10
[2024-05-17 11:17:36][ERROR] : PyModbusClient: *De Dietrich* Something went wrong while reading Pression (command id 8409): <class 'TimeoutError'>  = . Traceback: <traceback object at 0xf614d908>
[2024-05-17 11:17:36][INFO] : Serial lost connection.
[2024-05-17 11:17:36][DEBUG] : Client disconnected from modbus server: None
[2024-05-17 11:17:36][ERROR] : PyModbusClient: *De Dietrich* Something went wrong while reading TempBall (command id 8410): <class 'pymodbus.exceptions.ConnectionException'>  = Modbus Error: [Connection] Not connected[AsyncModbusSerialClient None:/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A98IBMI4-if00-port0]. Traceback: <traceback object at 0xf614dc28>
[2024-05-17 11:17:36][ERROR] : PyModbusClient: *De Dietrich* Something went wrong while reading TempJour (command id 8411): <class 'pymodbus.exceptions.ConnectionException'>  = Modbus Error: [Connection] Not connected[AsyncModbusSerialClient None:/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A98IBMI4-if00-port0]. Traceback: <traceback object at 0xf614dcc8>
[2024-05-17 11:17:36][DEBUG] : PyModbusClient: *De Dietrich* disconnect called

Informations Jeedom

Core : 4.4.5 (V4-stable)
DNS Jeedom : non

Plugin : MyModbus
Version : 2024-05-04 01:02:03 (beta)
Statut Démon : Démarré - (2024-05-17 11:08:05)

Merci,

Aldarande

Bonjour Aldarande,

Les chaudières De Dietrich utilisent un mode bi-maître Modbus basé sur je ne sais quoi (le temps je crois…). J’ai essayé de faire fonctionner ça avec MyModbus bêta, mais j’ai retiré toutes les adaptations qui devenaient illisibles dans le code et qui ne fonctionnaient pas longtemps. Il y a un tas de post sur ce community qui en parlent, avec les aléas de fonctionnement.
Comme je n’ai pas ce type de chaudière, je ne peux pas tester moi-même donc pour le dev c’est très long et lourd.

J’ai préféré retirer la fonctionnalité qui ne donnait de toute façon pas satisfaction. Au mieux ça communiquait un jour puis plus du tout.
J’ai cru lire quelque part que le plugin ModbusRTU (payant me semble-t-il) fonctionnait avec les chaudières De Dietrich, mais je ne garantie pas ma mémoire…

Je pense qu’il faudrait mettre au point un démon Modbus qui analyse comment le mode bi-maître fonctionne et s’adapte pour utiliser les fenêtres de temps « libre » pour communiquer. Mais comme dit, ce serait assez long à débugger d’autant plus que je n’ai pas le matériel.

Dès que j’ai de nouveau du temps (quand la saison de théâtre sera terminée) j’adapterai MyModbus pour correspondre aux propositions faites par Mips et TiTiDom, mais c’est pas encore. Ensuite on verra.

A+
Michel

Merci pour ton retour, as tu laissé le code ?
Si je regarde cela te pose un problème ?

Je n’ai pas laissé le code. Le dépot github de MyModbus est géré par Bebel27, le propriétaire du plugin. Le dépot est privé.

Ce que je pense devoir faire :

  • commencer avec un serveur Modbus (esclave) qui écoute ce qu’il se passe sur la ligne et détecter les fenêtres de temps où il ne se passe rien (quand le système laisse le temps à un autre maitre d’interroger la chaudière) pour déterminer comment le cycle est défini.
  • En fonction de ces cycles, lancer un client Modbus (maitre) uniquement durant les fenêtres d’inactivité.
  • En cas de collision, revérifier les cycles

Hello,

Est-ce que tu as testé la nouvelle bêta (bêta50) de MyModbus, j’aimerais savoir si cette version fonctionne avec le mode bi-maître.
En jouant avec le timeout et le temps d’attente après erreur, il devrait y avoir une nette amélioration. Eviter complètement les erreurs est sans doute impossible, par contre.

Bonjour, Oui je dois faire le test.
Je regarde ce soir.

1 « J'aime »

Bonjour,

Je te confirme que la modification fait disparaitre les erreurs.
Je fais pas de test d’écriture car j’ai des soucis avec la chaudière mais Oui j’ai plus d’erreur :

1 « J'aime »

Excellent !
Merci pour ton retour. Je peux te demander de poster ici les paramètres qui fonctionnent chez toi STP ?
Est-ce que tu mets ça en test durant longtemps ? Je sais que l’essai de mode bi-maître que j’avais fait ne tenait que quelques jours puis ça « dégénérait ».

JE surveille cela.
J’ai changé aussi un peu mon installation en passer par un lien série en WIFI.

Après 2 jours, ça donne quoi ?

Si tu trouves le cycle de lecture trop long, tu peux diminuer le Temps d’attente entre 2 lectures. A tester, bien sûr…
Ce temps correspond à la pause qui est faite entre chaque requêtes, c’est-à-dire entre chaque commande info (si tu n’utilises pas les plages de registres).