Paramétrage Mymodbus Chaudière De Dietrich Diematic

Super! J’avais exactement le même pb avant de passer en mode transparent

Attention de mon côté, j’ai ’parfois’ des incohérences et des défauts très ennuyeux:

1-Des donnés de température du style 3000*C

2-Des écrasements de registres qui ne sont pas souhaités (exemple: la pente du circuit A, ou l’influence sonde ambiance À) j’ai l’impression que cela est lié à la proximité des numéros de registre.
Je peux étayer cela par le fait, que lorsque je change l’heure (par exemple) registre 4 ou registre 679, d’autre registre proches sont impactés (dans ce cas le mode derogation A en 17 est modifié, quand je change l’heure en registre 4)… je n’ai pas encore trouvé de piste…

As tu aussi ce constat?
Ma chaudière est une AGC35 (carte mère SCU en version firmware 4.2, peut être buggé d’après les retours du mainteneur qui fait des RAZ pour traiter certains défauts bloquants dans le programme)

Pour l’instant, je n’ai pas encore fait de test, j’ai juste les remontées de température qui ont l’air de fonctionner.
Je vais regarder ça dans les prochains jours.
J’ai une AGC35 également. Pour la version du firmware, tu vois ça où ?

Merci.

Il faut ouvrir le capot supérieur et regarder la plus grande carte (nommée SCU)

Sw f: xxxxxx

Je viens de démonter le capot pour regarder ça : version 5.0.
De mon côté, je ne change pas l’heure, j’utilise principalement le changement de consigne de température jour ou le passage en mode hors gel/mode auto en écriture.

Je peux essayer de changer l’heure pour te dire.
Par curiosité, tu changes l’heure pour quelle raison ?
Ce que je veux dire, c’est que si cette commande ne fonctionne pas, ça ne doit pas être bloquant puisque tu règles une fois et c’est tout.

Hello
Pour synchro, la pile de la carte doit être fatiguée
Mais je suis intéressé par tes retours !!!

De mon côté ça bug dans mon environnement et en version 4.2

Bonjour
,
J’ai beau chercher je ne vois pas où il y aurait une pile. Auriez-vous une photo svp ?

Bonsoir, avez trouvé les bon réglages. J’ai à peu près la même config que vous (de dietrich + usr W610) mais depuis 6 mois je n’ai plus aucune remontée d’infos. Je ne sais pas si c’est suite aux mises à jour….

Mise à jour de De Dietrich ou de MyModbus ?

De MyModbus.

Alors il me faut plus de détails

Bonjour,
Je ne parviens pas à régler mon problème avec ma chaudière AGC35 De Dietrich
Tout se lit et se paramètre bien, sauf le registre 17 (pour changer de mode le circuit A)
Je peux le lire en Uint8 LSB ce qui est bien le bon format mais pas l’écrire, aucun effet.

Je peux le lire et l’écrire en Uint16 sauf qu’à l’écriture, je viens écraser les registres voisins (… notamment la pente du circuit A, registre 20)

Ma carte mère est une ancienne version en version 3.2

Pourriez vous m’aider, je tourne en rond…




Log en Int16

> [2026-02-12 22:19:36] DEBUG  mymodbus::deamon_info
> [2026-02-12 22:19:36] DEBUG  mymodbus::getDeamonLaunchable
> [2026-02-12 22:19:36] DEBUG  mymodbus::getCompleteConfiguration
> [2026-02-12 22:19:36] DEBUG  mymodbus::getEqConfiguration
> [2026-02-12 22:19:36] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
> [2026-02-12 22:19:37] DEBUG  jeemymodbus.php: $input *{"values":{"cycle_ok":{"value":1,"eqId":415}}}* type: array
> [2026-02-12 22:19:37] DEBUG  jeemymodbus.php: Mise à jour cmd 'Cycle OK' -> new value: '1'
> [2026-02-12 22:19:40] DEBUG  mymodbusCmd::execute **************** execute *****: {"select":"36","user_login":"....","user_id":"2"}
> [2026-02-12 22:19:40] DEBUG  mymodbus::sendToDaemon * params = array (
> 'CMD' => 'write',
> 'write_cmd' =>
> array (
> 'eqId' => 415,
> 'cmdWriteValue' => 36,
> 'cmdId' => 4733,
> ),
> )
> [2026-02-12 22:19:40] DEBUG  mymodbus::getSocketPort
> [2026-02-12 22:19:41] DEBUG  mymodbus::deamon_info
> [2026-02-12 22:19:41] DEBUG  mymodbus::getDeamonLaunchable
> [2026-02-12 22:19:41] DEBUG  mymodbus::getCompleteConfiguration
> [2026-02-12 22:19:41] DEBUG  mymodbus::getEqConfiguration
> [2026-02-12 22:19:41] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
> [2026-02-12 22:19:46] DEBUG  mymodbus::deamon_info
> [2026-02-12 22:19:46] DEBUG  mymodbus::getDeamonLaunchable
> [2026-02-12 22:19:46] DEBUG  mymodbus::getCompleteConfiguration
> [2026-02-12 22:19:46] DEBUG  mymodbus::getEqConfiguration
> [2026-02-12 22:19:46] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
> [2026-02-12 22:19:47] DEBUG  jeemymodbus.php: $input *{"values":{"cycle_ok":{"value":1,"eqId":415},"cycle_time":{"value":3.363137334305793,"eqId":415}}}* type: array
> [2026-02-12 22:19:47] DEBUG  jeemymodbus.php: Mise à jour cmd 'Cycle OK' -> new value: '1'
> [2026-02-12 22:19:47] DEBUG  jeemymodbus.php: Mise à jour cmd 'Temps de rafraîchissement' -> new value: '3.3631373343058'
> [2026-02-12 22:19:48] DEBUG  jeemymodbus.php: $input *{"values":{"4732":36}}* type: array
> [2026-02-12 22:19:48] DEBUG  jeemymodbus.php: Mise à jour cmd 'mode de fct circuit A' -> new value: '36'
> [2026-02-12 22:19:49] DEBUG  jeemymodbus.php: $input *{"values":{"4735":20}}* type: array
> [2026-02-12 22:19:49] DEBUG  jeemymodbus.php: Mise à jour cmd 'Pente Circuit A' -> new value: '20'
> [2026-02-12 22:19:51] DEBUG  mymodbus::deamon_info
> [2026-02-12 22:19:51] DEBUG  mymodbus::getDeamonLaunchable
> [2026-02-12 22:19:51] DEBUG  mymodbus::getCompleteConfiguration
> [2026-02-12 22:19:51] DEBUG  mymodbus::getEqConfiguration
> [2026-02-12 22:19:51] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
> [2026-02-12 22:19:56] DEBUG  mymodbus::deamon_info
> [2026-02-12 22:19:56] DEBUG  mymodbus::getDeamonLaunchable
> [2026-02-12 22:19:56] DEBUG  mymodbus::getCompleteConfiguration
> [2026-02-12 22:19:56] DEBUG  mymodbus::getEqConfiguration
> [2026-02-12 22:19:56] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
> [2026-02-12 22:19:57] DEBUG  jeemymodbus.php: $input *{"values":{"cycle_ok":{"value":1,"eqId":415}}}* type: array
> [2026-02-12 22:19:57] DEBUG  jeemymodbus.php: Mise à jour cmd 'Cycle OK' -> new value: '1'

Log Int8 LSB

[2026-02-12 22:26:11] DEBUG  mymodbus::getSocketPort
[2026-02-12 22:26:12] DEBUG  mymodbus::deamon_info
[2026-02-12 22:26:12] DEBUG  mymodbus::getDeamonLaunchable
[2026-02-12 22:26:12] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-12 22:26:12] DEBUG  mymodbus::getEqConfiguration
[2026-02-12 22:26:12] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
[2026-02-12 22:26:12] DEBUG  jeemymodbus.php: $input *{"values":{"polling":{"value":10,"eqId":415},"4731":212}}* type: array
[2026-02-12 22:26:12] DEBUG  jeemymodbus.php: Mise à jour cmd 'Polling' -> new value: '10'
[2026-02-12 22:26:12] DEBUG  jeemymodbus.php: Mise à jour cmd 'T° Ambiance A' -> new value: '212'
[2026-02-12 22:26:14] DEBUG  jeemymodbus.php: $input *{"values":{"4732":8}}* type: array
[2026-02-12 22:26:14] DEBUG  jeemymodbus.php: Mise à jour cmd 'mode de fct circuit A' -> new value: '8'
[2026-02-12 22:26:15] DEBUG  jeemymodbus.php: $input *{"values":{"4735":15}}* type: array
[2026-02-12 22:26:15] DEBUG  jeemymodbus.php: Mise à jour cmd 'Pente Circuit A' -> new value: '15'
[2026-02-12 22:26:17] DEBUG  mymodbus::deamon_info
[2026-02-12 22:26:17] DEBUG  mymodbus::getDeamonLaunchable
[2026-02-12 22:26:17] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-12 22:26:17] DEBUG  mymodbus::getEqConfiguration
[2026-02-12 22:26:17] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
[2026-02-12 22:26:22] DEBUG  jeemymodbus.php: $input *{"values":{"cycle_ok":{"value":1,"eqId":415}}}* type: array
[2026-02-12 22:26:22] DEBUG  jeemymodbus.php: Mise à jour cmd 'Cycle OK' -> new value: '1'
[2026-02-12 22:26:23] DEBUG  mymodbus::deamon_info
[2026-02-12 22:26:23] DEBUG  mymodbus::getDeamonLaunchable
[2026-02-12 22:26:23] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-12 22:26:23] DEBUG  mymodbus::getEqConfiguration
[2026-02-12 22:26:23] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
[2026-02-12 22:26:25] DEBUG  mymodbusCmd::execute **************** execute *****: {"select":"36","user_login":"sim140680","user_id":"2"}
[2026-02-12 22:26:28] DEBUG  mymodbus::deamon_info
[2026-02-12 22:26:28] DEBUG  mymodbus::getDeamonLaunchable
[2026-02-12 22:26:28] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-12 22:26:28] DEBUG  mymodbus::getEqConfiguration
[2026-02-12 22:26:28] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
[2026-02-12 22:26:32] DEBUG  jeemymodbus.php: $input *{"values":{"cycle_ok":{"value":1,"eqId":415}}}* type: array
[2026-02-12 22:26:32] DEBUG  jeemymodbus.php: Mise à jour cmd 'Cycle OK' -> new value: '1'
[2026-02-12 22:26:33] DEBUG  mymodbus::deamon_info
[2026-02-12 22:26:33] DEBUG  mymodbus::getDeamonLaunchable
[2026-02-12 22:26:33] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-12 22:26:33] DEBUG  mymodbus::getEqConfiguration
[2026-02-12 22:26:33] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
[2026-02-12 22:26:38] DEBUG  mymodbus::deamon_info
[2026-02-12 22:26:38] DEBUG  mymodbus::getDeamonLaunchable
[2026-02-12 22:26:38] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-12 22:26:38] DEBUG  mymodbus::getEqConfiguration
[2026-02-12 22:26:38] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
[2026-02-12 22:26:42] DEBUG  jeemymodbus.php: $input *{"values":{"cycle_ok":{"value":1,"eqId":415}}}* type: array
[2026-02-12 22:26:42] DEBUG  jeemymodbus.php: Mise à jour cmd 'Cycle OK' -> new value: '1'
[2026-02-12 22:26:44] DEBUG  mymodbus::deamon_info
[2026-02-12 22:26:44] DEBUG  mymodbus::getDeamonLaunchable
[2026-02-12 22:26:44] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-12 22:26:44] DEBUG  mymodbus::getEqConfiguration
[2026-02-12 22:26:44] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
[2026-02-12 22:26:44] DEBUG  mymodbus::supportedProtocols
[2026-02-12 22:26:44] DEBUG  mymodbus::getSharedInterfaces
[2026-02-12 22:26:44] DEBUG  mymodbus::getTtyInterfaces
[2026-02-12 22:26:48] DEBUG  mymodbus::supportedProtocols
[2026-02-12 22:26:48] DEBUG  mymodbus::getSharedInterfaces
[2026-02-12 22:26:48] DEBUG  mymodbus::getTtyInterfaces
[2026-02-12 22:26:50] DEBUG  mymodbus::deamon_info
[2026-02-12 22:26:50] DEBUG  mymodbus::getDeamonLaunchable
[2026-02-12 22:26:50] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-12 22:26:50] DEBUG  mymodbus::getEqConfiguration
[2026-02-12 22:26:50] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
[2026-02-12 22:26:52] DEBUG  jeemymodbus.php: $input *{"values":{"cycle_ok":{"value":1,"eqId":415}}}* type: array
[2026-02-12 22:26:52] DEBUG  jeemymodbus.php: Mise à jour cmd 'Cycle OK' -> new value: '1'
[2026-02-12 22:26:56] DEBUG  mymodbus::deamon_info
[2026-02-12 22:26:56] DEBUG  mymodbus::getDeamonLaunchable
[2026-02-12 22:26:56] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-12 22:26:56] DEBUG  mymodbus::getEqConfiguration
[2026-02-12 22:26:56] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
[2026-02-12 22:27:01] DEBUG  mymodbus::deamon_info
[2026-02-12 22:27:01] DEBUG  mymodbus::getDeamonLaunchable
[2026-02-12 22:27:01] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-12 22:27:01] DEBUG  mymodbus::getEqConfiguration
[2026-02-12 22:27:01] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
[2026-02-12 22:27:02] DEBUG  jeemymodbus.php: $input *{"values":{"cycle_ok":{"value":1,"eqId":415},"cycle_time":{"value":3.2788409636355937,"eqId":415}}}* type: array
[2026-02-12 22:27:02] DEBUG  jeemymodbus.php: Mise à jour cmd 'Cycle OK' -> new value: '1'
[2026-02-12 22:27:02] DEBUG  jeemymodbus.php: Mise à jour cmd 'Temps de rafraîchissement' -> new value: '3.2788409636356'
[2026-02-12 22:27:06] DEBUG  mymodbus::deamon_info
[2026-02-12 22:27:06] DEBUG  mymodbus::getDeamonLaunchable
[2026-02-12 22:27:06] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-12 22:27:06] DEBUG  mymodbus::getEqConfiguration
[2026-02-12 22:27:06] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
[2026-02-12 22:27:11] DEBUG  mymodbus::deamon_info
[2026-02-12 22:27:11] DEBUG  mymodbus::getDeamonLaunchable
[2026-02-12 22:27:11] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-12 22:27:11] DEBUG  mymodbus::getEqConfiguration
[2026-02-12 22:27:11] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
[2026-02-12 22:27:12] DEBUG  jeemymodbus.php: $input *{"values":{"cycle_ok":{"value":1,"eqId":415}}}* type: array
[2026-02-12 22:27:12] DEBUG  jeemymodbus.php: Mise à jour cmd 'Cycle OK' -> new value: '1'
[2026-02-12 22:27:16] DEBUG  mymodbus::deamon_info

Bonjour,

si une commande action est configurée avec un type de données sur 8 bit, il y a un warning dans les log qui stipule que cette commande sera ignorée au moment de la sauvegarde de l’équipement. Je vais changer ça pour que ce soit une erreur qui s’affiche, juste pour l’affichage, le reste de la gestion est identique.
Ce n’est pas précisé dans la documentation, c’est un oubli de ma part.

En Modbus, il n’est pas possible de n’écrire qu’un octet dans un registre et de laisser l’autre octet identique, la fonction n’existe pas, il faut le faire soi-même.
Je le fais dans un équipement de test :

ATTENTION, c’est un test avec le MSB qui est gardé (MB409) et le LSB est modifié

Le principe :

  • lire les 2 octets
  • écrire le registre entier avec une valeur calculée

Dans votre cas il faut :

  • lire le LSB et le MSB du registre 17
    → LSB Mode circuit A (existant) et MSB Mode MSB (par exemple)
  • écrire le registre entier avec en valeur :
    #[Buanderie][Chaudière][Mode MSB]# * 256 + #select#

Normalement ce sera bon.

A+
Michel

edit:
ERRATUM : c’était dans la doc :

Reformulation :

  1. Les commandes actions dont le type de variable est sur 8 bits génèrent une erreur lors de la sauvegarde. Lors de l’exécution de ces commandes action, rien n’est exécuté. Ces commandes sont tout simplement ignorées avec un avertissement.

Merci Michel
Je vais tester ça!

1 « J'aime »

Merci Michel, mais je fais ça avec un type liste et le #select#

avec #[Buanderie][TEST Chaudière][mode de fct circuit A MSB]# *256 + #select#

Et ça écrase toujours le registre 20

Et donc

Ce qui est normal.


Dans la capture c’est le registre 17…

:question:


Par contre votre commande action doit être de type uint16 pour être sûr que le format soit OK.

Si le MSB vaut 0, le fait d’écrire une valeur < 255 (ce qui est la cas de 8, 36, 34 et 1) dans le registre ne modifie pas le MSB, il restera à 0.

Pour que je comprenne, il me faudrait la doc constructeur sur ce registre 17 et l’état du registre après une écriture.

Bonsoir Michel,

Le registre a écrire est bien le 17 pour changer de mode
celui impacté est le 20 (pente de la courbe de chauffe du circuit principal de chaffage) qui ne devrait pas l’être.

avec ta recommandation pour le « Select » → [Buanderie][TEST Chaudière][mode de fct circuit A MSB]# *256 + #select#

Lors de mes tests avec ModBusDoctor, j’arrive à changer le registre 17 sans avoir d’impact colatéral sur le 20, c’est bizarre ?!

J’ai utilisé mon équipement de production plus complet et ça semble aussi impacter le registre 19 qui passe à 0 « Influence sonde ambiance A »

Je reformule pour être sûr de comprendre :

  • le fait d’écrire le registre 17 avec Modbus doctor n’a pas d’effet sur le registre 20.
  • le fait d’écrire le registre 17 avec MyModbus a un effet sur le registre 20.

C’est bien ça ?

Vos tests sont faits dans exactement les mêmes conditions ?

Oubliez le fait d’écrite ou de lire un octet et les histoires de MSB et LSB. Faites tout sur le registre complet en format uint16. Tant que vous ne lisez ou n’écrivez rien au-dessus de 255, c’est exactement la même chose. De cette manière, on sera comme Modbus Doctor et vous serez certain de l’ordre des octets (pour savoir s’il faut inverser les octets ou pas).

Commencez avec une lecture en uint16 du registre 17 pour voir comment régler l’ordre des octets.

C’est ça!

Oui les test sont effectués depuis la même machine dans le même mode de fonctionnement de la chaudière et via le même modem Modbus TCP.

Tout se lit bien en uint16

[2026-02-21 17:52:46] DEBUG  mymodbus::deamon_info
[2026-02-21 17:52:46] DEBUG  mymodbus::getDeamonLaunchable
[2026-02-21 17:52:46] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-21 17:52:46] DEBUG  mymodbus::getEqConfiguration
[2026-02-21 17:52:46] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
[2026-02-21 17:52:48] DEBUG  mymodbus::deamon_info
[2026-02-21 17:52:48] DEBUG  mymodbus::getDeamonLaunchable
[2026-02-21 17:52:48] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-21 17:52:48] DEBUG  mymodbus::getEqConfiguration
[2026-02-21 17:52:48] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
[2026-02-21 17:52:48] DEBUG  mymodbus::deamon_stop
[2026-02-21 17:52:48] DEBUG  mymodbus::deamon_stop * $deamon_state ok
[2026-02-21 17:52:48] INFO  mymodbus::deamon_stop * Arrêt du démon...
[2026-02-21 17:52:48] DEBUG  mymodbus::sendToDaemon * params = array (
'CMD' => 'quit',
)
[2026-02-21 17:52:48] DEBUG  mymodbus::getSocketPort
[2026-02-21 17:52:49] INFO  mymodbus::deamon_stop * Démon arrêté
[2026-02-21 17:52:49] DEBUG  mymodbus::deamon_info
[2026-02-21 17:52:49] DEBUG  mymodbus::getDeamonLaunchable
[2026-02-21 17:52:49] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-21 17:52:49] DEBUG  mymodbus::getEqConfiguration
[2026-02-21 17:52:49] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"nok","launchable":"ok"}'
[2026-02-21 17:52:49] DEBUG  mymodbus::deamon_start
[2026-02-21 17:52:49] DEBUG  mymodbus::deamon_stop
[2026-02-21 17:52:49] DEBUG  mymodbus::deamon_stop * $deamon_state nok
[2026-02-21 17:52:49] DEBUG  mymodbus::getDeamonLaunchable
[2026-02-21 17:52:49] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-21 17:52:49] DEBUG  mymodbus::getEqConfiguration
[2026-02-21 17:52:49] DEBUG  mymodbus::getSocketPort
[2026-02-21 17:52:49] DEBUG  mymodbus::getCallbackUrl
[2026-02-21 17:52:49] DEBUG  mymodbus::deamon_start * Ligne de commande : /var/www/html/plugins/mymodbus/core/class/../../resources/venv/bin/python3 /var/www/html/plugins/mymodbus/resources/mymodbus/mymodbusd.py --loglevel 'debug' --socketport 55502 --callback 'http://127.0.0.1:80/plugins/mymodbus/core/php/jeemymodbus.php' --apikey 'gr5m7d4osFAa25cWpQtPfk4YGcDStKxDNYPZpXrXCdtovxr8w2wpYxNj7xTeCkkQ' --pid /tmp/jeedom/mymodbus/daemon.pid
[2026-02-21 17:52:49] INFO  mymodbus::deamon_start * Lancement du démon MyModbus
[2026-02-21 17:52:49] DEBUG  jeemymodbus.php: Premier message de test reçu
[2026-02-21 17:52:49] DEBUG  mymodbus::sendNewConfig
[2026-02-21 17:52:49] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-21 17:52:49] DEBUG  mymodbus::getEqConfiguration
[2026-02-21 17:52:49] DEBUG  mymodbus::sendToDaemon * params = array (
'CMD' => 'newDaemonConfig',
'config' =>
array (
0 =>
array (
'id' => 415,
'name' => 'TEST Chaudière',
'eqProtocol' => 'tcp',
'eqRefreshMode' => 'polling',
'eqPolling' => '10',
'eqTimeout' => '1',
'eqWriteCmdCheckTimeout' => '1',
'eqRetries' => '3',
'eqFirstDelay' => '1',
'eqErrorDelay' => '1',
'eqAddr' => '192.168.1.130',
'eqPort' => '8899',
'eqRegTest' => '0',
'cmds' =>
array (
0 =>
array (
'id' => 4731,
'name' => 'T° Ambiance A',
'type' => 'info',
'cmdDevID' => '10',
'cmdFctModbus' => '3',
'cmdFormat' => 'h',
'cmdAddress' => '18',
'cmdFrequency' => '1',
'cmdInvertBytes' => '0',
'cmdInvertWords' => '0',
'cmdInvertDWords' => '0',
'repeat' => '0',
),
1 =>
array (
'id' => 4732,
'name' => 'mode de fct circuit A',
'type' => 'info',
'cmdDevID' => '10',
'cmdFctModbus' => '3',
'cmdFormat' => 'H',
'cmdAddress' => '17',
'cmdFrequency' => '1',
'cmdInvertBytes' => '0',
'cmdInvertWords' => '0',
'cmdInvertDWords' => '0',
'repeat' => '0',
),
2 =>
array (
'id' => 4733,
'name' => 'Mode circuit A (cmd)',
'type' => 'action',
'cmdDevID' => '10',
'cmdFctModbus' => '6',
'cmdFormat' => 'H',
'cmdAddress' => '17',
'cmdFrequency' => '1',
'cmdInvertBytes' => '0',
'cmdInvertWords' => '0',
'cmdInvertDWords' => '0',
'repeat' => '0',
),
3 =>
array (
'id' => 4735,
'name' => 'Pente Circuit A',
'type' => 'info',
'cmdDevID' => '10',
'cmdFctModbus' => '3',
'cmdFormat' => 'H',
'cmdAddress' => '20',
'cmdFrequency' => '1',
'cmdInvertBytes' => '0',
'cmdInvertWords' => '0',
'cmdInvertDWords' => '0',
'repeat' => '0',
),
4 =>
array (
'id' => 4736,
'name' => 'Pente circuit A (cmd)',
'type' => 'action',
'cmdDevID' => '10',
'cmdFctModbus' => '6',
'cmdFormat' => 'H',
'cmdAddress' => '20',
'cmdFrequency' => '1',
'cmdInvertBytes' => '0',
'cmdInvertWords' => '0',
'cmdInvertDWords' => '0',
'repeat' => '0',
),
),
),
),
)
[2026-02-21 17:52:49] DEBUG  mymodbus::getSocketPort
[2026-02-21 17:52:50] DEBUG  mymodbus::deamon_info
[2026-02-21 17:52:50] DEBUG  mymodbus::getDeamonLaunchable
[2026-02-21 17:52:50] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-21 17:52:50] DEBUG  mymodbus::getEqConfiguration
[2026-02-21 17:52:50] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
[2026-02-21 17:52:50] DEBUG  jeemymodbus.php: $input *{"values":{"polling":{"value":10,"eqId":415},"4731":219}}* type: array
[2026-02-21 17:52:50] DEBUG  jeemymodbus.php: Mise à jour cmd 'Polling' -> new value: '10'
[2026-02-21 17:52:50] DEBUG  jeemymodbus.php: Mise à jour cmd 'T° Ambiance A' -> new value: '219'
[2026-02-21 17:52:51] DEBUG  jeemymodbus.php: $input *{"values":{"4732":8}}* type: array
[2026-02-21 17:52:51] DEBUG  jeemymodbus.php: Mise à jour cmd 'mode de fct circuit A' -> new value: '8'
[2026-02-21 17:52:52] DEBUG  jeemymodbus.php: $input *{"values":{"4735":15}}* type: array
[2026-02-21 17:52:52] DEBUG  jeemymodbus.php: Mise à jour cmd 'Pente Circuit A' -> new value: '15'
[2026-02-21 17:52:55] DEBUG  mymodbus::deamon_info
[2026-02-21 17:52:55] DEBUG  mymodbus::getDeamonLaunchable
[2026-02-21 17:52:55] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-21 17:52:55] DEBUG  mymodbus::getEqConfiguration
[2026-02-21 17:52:55] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
[2026-02-21 17:53:00] DEBUG  mymodbus::deamon_info
[2026-02-21 17:53:00] DEBUG  mymodbus::getDeamonLaunchable
[2026-02-21 17:53:00] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-21 17:53:00] DEBUG  mymodbus::getEqConfiguration
[2026-02-21 17:53:00] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
[2026-02-21 17:53:00] DEBUG  jeemymodbus.php: $input *{"values":{"cycle_ok":{"value":1,"eqId":415}}}* type: array
[2026-02-21 17:53:00] DEBUG  jeemymodbus.php: Mise à jour cmd 'Cycle OK' -> new value: '1'
[2026-02-21 17:53:05] DEBUG  mymodbus::deamon_info
[2026-02-21 17:53:05] DEBUG  mymodbus::getDeamonLaunchable
[2026-02-21 17:53:05] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-21 17:53:05] DEBUG  mymodbus::getEqConfiguration
[2026-02-21 17:53:05] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'

Bien, donc l’ordre des octets est OK pour les 2 registres.

Et en uint16, une écriture du registre 17 a toujours un effet différent que si c’est fait avec Modbus Doctor ?

Voilà l’effet avec MyModbus:

[2026-02-21 18:07:03] INFO  mymodbus::deamon_start * Lancement du démon MyModbus
[2026-02-21 18:07:03] DEBUG  jeemymodbus.php: Premier message de test reçu
[2026-02-21 18:07:03] DEBUG  mymodbus::sendNewConfig
[2026-02-21 18:07:03] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-21 18:07:03] DEBUG  mymodbus::getEqConfiguration
[2026-02-21 18:07:03] DEBUG  mymodbus::sendToDaemon * params = array (
'CMD' => 'newDaemonConfig',
'config' =>
array (
0 =>
array (
'id' => 415,
'name' => 'TEST Chaudière',
'eqProtocol' => 'tcp',
'eqRefreshMode' => 'polling',
'eqPolling' => '10',
'eqTimeout' => '1',
'eqWriteCmdCheckTimeout' => '1',
'eqRetries' => '3',
'eqFirstDelay' => '1',
'eqErrorDelay' => '1',
'eqAddr' => '192.168.1.130',
'eqPort' => '8899',
'eqRegTest' => '0',
'cmds' =>
array (
0 =>
array (
'id' => 4731,
'name' => 'T° Ambiance A',
'type' => 'info',
'cmdDevID' => '10',
'cmdFctModbus' => '3',
'cmdFormat' => 'H',
'cmdAddress' => '18',
'cmdFrequency' => '1',
'cmdInvertBytes' => '0',
'cmdInvertWords' => '0',
'cmdInvertDWords' => '0',
'repeat' => '0',
),
1 =>
array (
'id' => 4732,
'name' => 'mode de fct circuit A',
'type' => 'info',
'cmdDevID' => '10',
'cmdFctModbus' => '3',
'cmdFormat' => 'H',
'cmdAddress' => '17',
'cmdFrequency' => '1',
'cmdInvertBytes' => '0',
'cmdInvertWords' => '0',
'cmdInvertDWords' => '0',
'repeat' => '0',
),
2 =>
array (
'id' => 4733,
'name' => 'Mode circuit A (cmd)',
'type' => 'action',
'cmdDevID' => '10',
'cmdFctModbus' => '6',
'cmdFormat' => 'H',
'cmdAddress' => '17',
'cmdFrequency' => '1',
'cmdInvertBytes' => '0',
'cmdInvertWords' => '0',
'cmdInvertDWords' => '0',
'repeat' => '0',
),
3 =>
array (
'id' => 4735,
'name' => 'Pente Circuit A',
'type' => 'info',
'cmdDevID' => '10',
'cmdFctModbus' => '3',
'cmdFormat' => 'H',
'cmdAddress' => '20',
'cmdFrequency' => '1',
'cmdInvertBytes' => '0',
'cmdInvertWords' => '0',
'cmdInvertDWords' => '0',
'repeat' => '0',
),
4 =>
array (
'id' => 4736,
'name' => 'Pente circuit A (cmd)',
'type' => 'action',
'cmdDevID' => '10',
'cmdFctModbus' => '6',
'cmdFormat' => 'H',
'cmdAddress' => '20',
'cmdFrequency' => '1',
'cmdInvertBytes' => '0',
'cmdInvertWords' => '0',
'cmdInvertDWords' => '0',
'repeat' => '0',
),
),
),
),
)
[2026-02-21 18:07:03] DEBUG  mymodbus::getSocketPort
[2026-02-21 18:07:04] DEBUG  mymodbus::deamon_info
[2026-02-21 18:07:04] DEBUG  mymodbus::getDeamonLaunchable
[2026-02-21 18:07:04] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-21 18:07:04] DEBUG  mymodbus::getEqConfiguration
[2026-02-21 18:07:04] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
[2026-02-21 18:07:04] DEBUG  jeemymodbus.php: $input *{"values":{"polling":{"value":10,"eqId":415},"4731":219}}* type: array
[2026-02-21 18:07:04] DEBUG  jeemymodbus.php: Mise à jour cmd 'Polling' -> new value: '10'
[2026-02-21 18:07:04] DEBUG  jeemymodbus.php: Mise à jour cmd 'T° Ambiance A' -> new value: '219'
[2026-02-21 18:07:05] DEBUG  jeemymodbus.php: $input *{"values":{"4732":8}}* type: array
[2026-02-21 18:07:05] DEBUG  jeemymodbus.php: Mise à jour cmd 'mode de fct circuit A' -> new value: '8'
[2026-02-21 18:07:06] DEBUG  jeemymodbus.php: $input *{"values":{"4735":15}}* type: array
[2026-02-21 18:07:06] DEBUG  jeemymodbus.php: Mise à jour cmd 'Pente Circuit A' -> new value: '15'
[2026-02-21 18:07:09] DEBUG  mymodbus::deamon_info
[2026-02-21 18:07:09] DEBUG  mymodbus::getDeamonLaunchable
[2026-02-21 18:07:09] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-21 18:07:09] DEBUG  mymodbus::getEqConfiguration
[2026-02-21 18:07:09] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
[2026-02-21 18:07:12] DEBUG  mymodbusCmd::execute **************** execute *****: {"select":"36","user_login":"sim140680","user_id":"2"}
[2026-02-21 18:07:12] DEBUG  mymodbus::sendToDaemon * params = array (
'CMD' => 'write',
'write_cmd' =>
array (
'eqId' => 415,
'cmdWriteValue' => 36,
'cmdId' => 4733,
),
)
[2026-02-21 18:07:12] DEBUG  mymodbus::getSocketPort
[2026-02-21 18:07:14] DEBUG  mymodbus::deamon_info
[2026-02-21 18:07:14] DEBUG  mymodbus::getDeamonLaunchable
[2026-02-21 18:07:14] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-21 18:07:14] DEBUG  mymodbus::getEqConfiguration
[2026-02-21 18:07:14] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
[2026-02-21 18:07:14] DEBUG  jeemymodbus.php: $input *{"values":{"cycle_ok":{"value":1,"eqId":415}}}* type: array
[2026-02-21 18:07:14] DEBUG  jeemymodbus.php: Mise à jour cmd 'Cycle OK' -> new value: '1'
[2026-02-21 18:07:15] DEBUG  jeemymodbus.php: $input *{"values":{"4732":36}}* type: array
[2026-02-21 18:07:15] DEBUG  jeemymodbus.php: Mise à jour cmd 'mode de fct circuit A' -> new value: '36'
[2026-02-21 18:07:16] DEBUG  jeemymodbus.php: $input *{"values":{"4735":0}}* type: array
[2026-02-21 18:07:16] DEBUG  jeemymodbus.php: Mise à jour cmd 'Pente Circuit A' -> new value: '0'
[2026-02-21 18:07:19] DEBUG  mymodbus::deamon_info
[2026-02-21 18:07:19] DEBUG  mymodbus::getDeamonLaunchable
[2026-02-21 18:07:19] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-21 18:07:19] DEBUG  mymodbus::getEqConfiguration
[2026-02-21 18:07:19] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
[2026-02-21 18:07:24] DEBUG  jeemymodbus.php: $input *{"values":{"cycle_ok":{"value":1,"eqId":415}}}* type: array
[2026-02-21 18:07:24] DEBUG  jeemymodbus.php: Mise à jour cmd 'Cycle OK' -> new value: '1'
[2026-02-21 18:07:24] DEBUG  mymodbus::deamon_info
[2026-02-21 18:07:24] DEBUG  mymodbus::getDeamonLaunchable
[2026-02-21 18:07:24] DEBUG  mymodbus::getCompleteConfiguration
[2026-02-21 18:07:24] DEBUG  mymodbus::getEqConfiguration
[2026-02-21 18:07:24] DEBUG  mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'

Ps d’écrasement du reg20 avec ModbusDoctor