Erreurs en continue sur le log mymodbus_deamon

Bonjour,

À la suite d’un problème d’Espace disque libre qui se réduisait sans arrêt (traité ici), j’ai découvert que le log mymodbus_deamon ne cessait de grossir en affichant des erreurs récurrentes comme ceci :

0000|[2026-01-18 13:25:55] ERROR  : ERROR: request ask for transaction_id=4 but got id=260, Skipping.
0001|>>>>> recv: 0x1 0x4 0x40 0x45 0x0 0x6 0x1 0x10 0x23 0x75 0x0 0x1 extra data:
0002|[2026-01-18 13:25:55] ERROR  : ERROR: request ask for transaction_id=4 but got id=260, Skipping.
0003|>>>>> recv: 0x1 0x4 0x40 0x45 0x0 0x9 0x1 0x10 0x23 0x92 0x0 0x1 0x2 0x0 0x2b extra data:
0004|[2026-01-18 13:25:55] ERROR  : ERROR: request ask for transaction_id=4 but got id=260, Skipping.
0005|>>>>> recv: 0x1 0x4 0x40 0x45 0x0 0x6 0x1 0x10 0x23 0x92 0x0 0x1 extra data:
0006|[2026-01-18 13:25:55] ERROR  : ERROR: request ask for transaction_id=4 but got id=261, Skipping.
0007|>>>>> recv: 0x1 0x5 0x40 0x45 0x0 0x9 0x1 0x10 0x23 0x6f 0x0 0x1 0x2 0x0 0x2f extra data:
0008|[2026-01-18 13:25:55] ERROR  : ERROR: request ask for transaction_id=4 but got id=261, Skipping.
0009|>>>>> recv: 0x1 0x5 0x40 0x45 0x0 0x6 0x1 0x10 0x23 0x6f 0x0 0x1 extra data:
0010|[2026-01-18 13:25:55] ERROR  : ERROR: request ask for transaction_id=4 but got id=261, Skipping.
0011|>>>>> recv: 0x1 0x5 0x40 0x45 0x0 0x9 0x1 0x10 0x23 0x58 0x0 0x1 0x2 0x0 0xfc extra data:
0012|[2026-01-18 13:25:55] ERROR  : ERROR: request ask for transaction_id=4 but got id=261, Skipping.
0013|>>>>> recv: 0x1 0x5 0x40 0x45 0x0 0x6 0x1 0x10 0x23 0x58 0x0 0x1 extra data:
0014|[2026-01-18 13:25:55] ERROR  : ERROR: request ask for transaction_id=4 but got id=261, Skipping.
0015|>>>>> recv: 0x1 0x5 0x40 0x45 0x0 0x9 0x1 0x10 0x23 0x6e 0x0 0x1 0x2 0x0 0xd5 extra data:
0016|[2026-01-18 13:25:55] ERROR  : ERROR: request ask for transaction_id=4 but got id=261, Skipping.
0017|>>>>> recv: 0x1 0x5 0x40 0x45 0x0 0x6 0x1 0x10 0x23 0x6e 0x0 0x1 extra data:
0018|[2026-01-18 13:25:55] ERROR  : ERROR: request ask for transaction_id=4 but got id=262, Skipping.
0019|>>>>> recv: 0x1 0x6 0x40 0x45 0x0 0x9 0x1 0x10 0x23 0x6f 0x0 0x1 0x2 0x0 0x2f extra data:
0020|[2026-01-18 13:25:55] ERROR  : ERROR: request ask for transaction_id=4 but got id=262, Skipping.
0021|>>>>> recv: 0x1 0x6 0x40 0x45 0x0 0x6 0x1 0x10 0x23 0x6f 0x0 0x1 extra data:
0022|[2026-01-18 13:25:56] ERROR  : ERROR: request ask for id=1 but got id=11, Skipping.
0023|>>>>> recv: 0x1 0x6 0x40 0x45 0x0 0x9 0xb 0x10 0x0 0xd 0x0 0x1 0x2 0x0 0x0 extra data:
0024|[2026-01-18 13:25:56] ERROR  : ERROR: request ask for id=1 but got id=11, Skipping.
0025|>>>>> recv: 0x1 0x6 0x40 0x45 0x0 0x6 0xb 0x10 0x0 0xd 0x0 0x1 extra data:
0026|[2026-01-18 13:25:56] ERROR  : ERROR: request ask for id=1 but got id=12, Skipping.
0027|>>>>> recv: 0x1 0x6 0x40 0x45 0x0 0x9 0xc 0x10 0x0 0xd 0x0 0x1 0x2 0x0 0x0 extra data:
0028|[2026-01-18 13:25:56] ERROR  : ERROR: request ask for transaction_id=4 but got id=5, Skipping.
0029|>>>>> send: 0x0 0x4 0x0 0x0 0x0 0x6 0x1 0x3 0x40 0x45 0x0 0x2
0030|>>>>> recv: 0x0 0x5 0x0 0x0 0x0 0x6 0x1 0x3 0x23 0x2a 0x0 0x6 extra data:
0031|[2026-01-18 13:25:56] ERROR  : ERROR: request ask for transaction_id=4 but got id=5, Skipping.
0032|>>>>> recv: 0x0 0x5 0x0 0x0 0x0 0xf 0x1 0x3 0xc 0x1 0x72 0x0 0x2 0x0 0xf6 0x0 0xeb 0x0 0x88 0x0 0xa1 extra data:
0033|[2026-01-18 13:25:57] ERROR  : ERROR: request ask for transaction_id=4 but got id=5, Skipping.
0034|>>>>> recv: 0x0 0x5 0x0 0x0 0x0 0x6 0x1 0x3 0x23 0x4c 0x0 0x15 extra data:
0035|[2026-01-18 13:25:57] ERROR  : ERROR: request ask for transaction_id=4 but got id=5, Skipping.
0036|>>>>> recv: 0x0 0x5 0x0 0x0 0x0 0x2d 0x1 0x3 0x2a 0x0 0x0 0x41 0xb0 0x0 0x0 0x99 0x9a 0x41 0xb9 0x0 0x0 0x0 0x49 0x0 0x0 0x0 0x0 0x99 0x9a 0x41 0xc9 0x0 0x1 0x0 0xfc 0x1 0x81 0x0 0x0 0x0 0xda 0x0 0x0 0x0 0x2e 0x0 0x0 0x0 0x41 0x0 0x0 extra data:
0037|[2026-01-18 13:25:57] ERROR  : ERROR: request ask for transaction_id=4 but got id=5, Skipping.
0038|>>>>> recv: 0x0 0x5 0x0 0x0 0x0 0x6 0x1 0x3 0x23 0x6e 0x0 0x10 extra data:
0039|[2026-01-18 13:25:57] ERROR  : ERROR: request ask for transaction_id=4 but got id=5, Skipping.
0040|>>>>> recv: 0x0 0x5 0x0 0x0 0x0 0x23 0x1 0x3 0x20 0x0 0xd5 0x0 0x2f 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0xeb 0x0 0x0 0x41 0xb8 0x0 0x4 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 extra data:
0041|[2026-01-18 13:25:57] ERROR  : ERROR: request ask for transaction_id=4 but got id=5, Skipping.
0042|>>>>> send: 0x0 0x4 0x0 0x0 0x0 0x6 0x1 0x3 0x40 0x45 0x0 0x2
0043|>>>>> recv: 0x0 0x5 0x0 0x0 0x0 0x7 0x1 0x3 0x4 0x0 0x0 0x40 0xc0 extra data:
0044|[2026-01-18 13:25:57] ERROR  : ERROR: request ask for transaction_id=4 but got id=6, Skipping.
0045|>>>>> recv: 0x0 0x6 0x0 0x0 0x0 0x6 0x1 0x3 0x40 0x1 0x0 0x1 extra data:
0046|[2026-01-18 13:25:57] ERROR  : ERROR: request ask for transaction_id=4 but got id=6, Skipping.
0047|>>>>> recv: 0x0 0x6 0x0 0x0 0x0 0x5 0x1 0x3 0x2 0x0 0x0 extra data:
0048|[2026-01-18 13:25:57] ERROR  : ERROR: request ask for transaction_id=4 but got id=6, Skipping.
0049|>>>>> recv: 0x0 0x6 0x0 0x0 0x0 0x6 0x1 0x3 0x40 0x16 0x0 0x1 extra data:
0050|[2026-01-18 13:25:57] ERROR  : ERROR: request ask for transaction_id=4 but got id=6, Skipping.
0051|>>>>> recv: 0x0 0x6 0x0 0x0 0x0 0x5 0x1 0x3 0x2 0x3 0x20 extra data:
0052|[2026-01-18 13:25:57] ERROR  : ERROR: request ask for transaction_id=4 but got id=6, Skipping.
0053|>>>>> recv: 0x0 0x6 0x0 0x0 0x0 0x6 0x1 0x3 0x40 0x2b 0x0 0x4 extra data:
0054|[2026-01-18 13:25:57] ERROR  : ERROR: request ask for transaction_id=4 but got id=6, Skipping.
0055|>>>>> recv: 0x0 0x6 0x0 0x0 0x0 0xb 0x1 0x3 0x8 0x3 0x22 0x0 0x0 0x1 0x83 0x0 0x0 extra data:
0056|[2026-01-18 13:25:57] ERROR  : ERROR: request ask for transaction_id=4 but got id=6, Skipping.
0057|>>>>> recv: 0x0 0x6 0x0 0x0 0x0 0x6 0x1 0x3 0x40 0x3b 0x0 0x10 extra data:
0058|[2026-01-18 13:25:57] ERROR  : ERROR: request ask for transaction_id=4 but got id=6, Skipping.
0059|>>>>> recv: 0x0 0x6 0x0 0x0 0x0 0x23 0x1 0x3 0x20 0x0 0x0 0x40 0x0 0x0 0x0 0x40 0x0 0x0 0x0 0x40 0x0 0x0 0x0 0x40 0x0 0x66 0x66 0x40 0xc6 0x0 0x0 0x40 0xc0 0x0 0x0 0x41 0x20 0xcc 0xcd 0x40 0xcc extra data:
0060|[2026-01-18 13:25:57] ERROR  : ERROR: request ask for transaction_id=4 but got id=6, Skipping.
0061|>>>>> recv: 0x0 0x6 0x0 0x0 0x0 0x6 0x1 0x3 0x40 0x57 0x0 0x1d extra data:
0062|[2026-01-18 13:25:57] ERROR  : ERROR: request ask for transaction_id=4 but got id=7, Skipping.
0063|>>>>> recv: 0x0 0x7 0x0 0x0 0x0 0x3d 0x1 0x3 0x3a 0x0 0x0 0x41 0xb0 0x0 0x0 0x3f 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x41 0x20 0x0 0x0 0x41 0x20 0x0 0x5a 0x0 0x0 0x6 0xd6 0x0 0x1 0x0 0x0 0x0 0x0 0x0 0x1 0x0 0x0 0xc0 0x0 0x3 0x84 0x0 0x3c 0x0 0x0 0x41 0xd0 0x41 0xb0 0x0 0x0 0x0 0x0 extra data:
0064|[2026-01-18 13:25:57] ERROR  : ERROR: request ask for transaction_id=4 but got id=7, Skipping.
0065|>>>>> recv: 0x0 0x7 0x0 0x0 0x0 0x6 0x1 0x3 0x40 0x75 0x0 0xa extra data:

Le bilan santé de Jeedom est néanmoins plutôt correct :

Pour information, il s’agit de communiquer en Modbus avec une VMC thermodynamique Mydatec via une passerelle ZLan en TCP to RTU vers Jeedom.
Configuration du ZLan :

Ma version du plugin Mymodbus est la version Beta du 12/01/2026.
Lorsque j’utilise Modbus Doctor pour vérifier la connexion, la communication semble fonctionner normalement (quelques ratés subsistent néanmoins).

Quelqu’un aurait-il remarqué un problème équivalent ?

Merci d’avance pour votre aide et bon dimanche.

Dom.

Bonjour,

Y a-t-il un autre appareil qui fait des requêtes Modbus sur le bus série ?

À+
Michel

Bonjour @Michel_F ,

Y a-t-il un autre appareil qui fait des requêtes Modbus sur le bus série ?

Pour répondre à ta question, le bus est connecté à un écran tactile programmable qui peut lui-même envoyer des ordres (déclenchement de la PAC intégrée, contrôle de la vitesse de ventilation…) en fonction de l’état des différents capteurs.
Par précaution, j’avais hier passé le niveau de log du Plugin Mymodbus sur « Aucun ».
Est-ce la solution ?

Ce matin tout semble être rentré dans l’ordre :

  1. Le log mymodbus_deamon a disparu (plus de rubrique et donc plus d’erreur affichée),
  2. L’espace disque libre est stable à 77%.

Merci pour ton aide et bonne journée !

Dom.

Les log indiquent des trames de réponses contenant un id de transaction différent du dernier envoyé, donc MyModbus a capté des trames de réponses dédiées à un autre appareil client.
Le mode « multi-master », qui devrait s’appeler « multi-client », sur un bus série n’est pas pris en charge par MyModbus.

Je ne sais pas si même les erreurs sont ignorées.
Dans tous les cas ignorer des erreurs ne les résoud pas.

C’est un peu flou pour moi, mais je comprends qu’une sorte de conflit se produit entre plusieurs appareils connectés sur le même bus, c’est ça ?

Ce mode « Multi-Master » est désactivé sur la passerelle (voir la copie d’écran de sa configuration plus haut), donc cela devrait être correct, non ?

L’idée de départ était d’éviter le gonflement du fichier log afin de garder un espace disque libre normal.
En fait, j’ai remis le log de Mymodbus sur « Default » ce matin et rien n’est réapparu.

Merci pour ta réactivité et pour ton aide.

Dom.

Tout à fait.

En activant ce mode, les erreurs pourraient être filtrées. C’est en tout cas le résultat que j’en attendrais, mais je n’ai as de doc de cette passerelle.

Dans ce cas, il faut absolument éviter le niveau debug. C’est précisé dans la doc du plugin que ce niveau génère beaucoup de log.

Le démon prend le niveau de log au démarrage et ce niveau de log n’est pas actualisé en cours de fonctionnement. Il faut donc redémarrer le démon pour prendre en compte tout changement de niveau de log.

:heart:

Encore un grand merci pour ton intervention @Michel_F

Concernant le mode « Multi-Masters » donc, j’ai essayé de me référer à la doc ici, cependant les paramètres sont très flous pour moi…

Mais oui bien sûr, j’avais oublié ce détail ! J’ai remis le log pour voir le comportement, puis vite enlevé, le temps de trouver l’amélioration qui évitera le gonflement du fichier.

Bonne soirée et encore merci !

Dom.

Le mode multi-host de la passerelle ne répond pas à ton besoin.

Ah d’accord, le laisse sur « disable », dans ce cas.
Merci pour ton aide !
Bonne nuit.
Dom.

Bonjour @Michel_F ,
Je reviens sur ce sujet car depuis les dernières modifications apportées visant à réduire le fichier log, la communication entre la VMC et Jeedom ne se fait plus (aucune valeur ne se met à jour - les anciennes valeurs datant d’avant les modifications restent figées).
Cependant, lorsque j’essaye de communiquer avec la VMC via ModbusDoctor avec un PC, j’obtiens bien les bonnes valeurs à jour.
J’en déduit qu’il y a un problème de communication avec la passerelle, mais lequel ?
Quel paramètre ne convient plus ?
J’avais eu le même problème lors de la mise à jour du plugin MyModbus en août 2025. J’étais alors revenu à la version précédente (via une sauvegarde) afin de retrouver une communication correcte. Mais cela me privait des mises à jour plus suivantes.
Toutes les idées sont les bienvenues !
Merci et bonne fin de journée.
Dom.

il va me falloir un peu plus d’info…

  • config de l’équipement
  • nombre d’équipement
  • y a-t-il des erreurs dans les log ?
  • est-ce qu’avec une seule commande ça fonctionne ?
  • les autres tests que tu as faits et leurs résultats

Merci @Michel_F ,
Voici les informations :

Il est composé d’une VMC Thermodynamique Mydatec reliée par câble modbus à un écran tactile et deux sondes de températures. Il y a donc 4 éléments connectés sur le même bus. Vient se greffer sur le même bus, la passerelle ZLAN5143D connectée d’un côté sur le bus, de l’autre via RJ45 à un switch (adresse statique) où se trouve connectée également à la box Atlas.

Oui, c’est ce qui est à l’origine de mon post (voir début du message).

On dirait que oui, lorsque j’utilise ModbusDoctor, par exemple, j’obtiens les bonnes valeurs.

Je n’ai pas testé autre chose qu’avec ModbusDoctor, mais l’info principale c’est que cela fonctionnait très bien avant la mise à jour du plugin Mymodbus (celle qui inclut les tests de registres).

J’espère que ces détails permettront d’entrevoir une explication/solution.

Merci et bonne journée.

Dom.

Tu as combien d’équipements MyModbus ?
Combien communiquent avec cette VMC ?

Poste une capture ou un export de la configuration de l’équipement.

Comment réagit la communication avec une seule commande pour un équipement MyModbus seul (aucun autre ne doit communiquer avec la VMC) ?

Y a-t-il d’autres erreurs dans les log ?
Ces erreurs sont liées au fait que d’autres appareils envoient des requêtes sur le bus série et pymodbus génère des erreurs et précise que ces trames sont ignorées.

Il est possible de créer un équipement de test sur la version bêta depuis février 2025. Tu étais en version stable de MyModbus ? Tu es en version stable aujourd’hui ?
A ma connaissance, tu es le seul à avoir des problèmes de ce genre, si ça vient du plugin c’est bien caché et très spécifique. Je penche plutôt sur un spécificité de ton installation qui est incompatible avec pymodbus ou alors sur une configuration erronée. Mais comme tu ne donnes pas de détails sur ta configuration…
Tout ce que tu ne veux pas me montrer m’empêchera de voir l’erreur. Il faut bien le comprendre.
→ Je n’ai toujours rien vu de ta configuration.

Est-ce qu’il y a un paramètre qui modifie l’id de transaction dans la config de la passerelle ?

Bonjour @Michel_F ,
D’abord je m’excuse car je n’avais pas compris ce que tu entendais par « équipements ». En effet, j’ai décrit l’installation physique et tu attendais des précisions sur la configuration du plugin :pray:.

Je n’ai donc qu’un seul « équipement » enregistré dans le plugin dont voici les détails :

Alors là, je ne sais pas comment tester cela.
Ce que je vois dans la partie « commandes » c’est que les valeurs ne sont pas à jour ou sont incohérentes, mais je n’ai pas la possibilité de déclencher une communication manuellement.
Voici un exemple de valeur incohérente :

En effet, j’ai essayé de créer un équipement test avec un groupe de registres limités. Et là, je n’obtiens aucune communication :

À ma connaissance non, mais voici les paramètres de configuration de la passerelle, tu y verras peut être plus clair :


J’aimerais bien savoir si d’autres propriétaires de cette VMC MyDatec ont essayé de communiquer avec, grâce au plugin Mymodbus !? Et si oui, avec quelle configuration ?

Encore un grand merci pour ton aide.

Bonne journée,

Dom.

Nouvelle info :
J’ai décidé de revenir à la version Mymodbus du 2025-07-13 grâce à une sauvegarde effectuée avant de migrer vers la version plus récente. Et là miracle, la communication est rétablie.

Néanmoins, si la communication semble meilleure, elle n’est pas parfaite. Il subsiste quelques données incohérentes (par intermittence) et le log mymodbus_daemon montre toujours des erreurs :

0000|[2026-01-28 11:34:14] ERROR  : Fatal error: protocol.data_received() call failed.
0001|protocol: <pymodbus.transaction.transaction.TransactionManager object at 0xffffab940cd0>
0002|transport: <_SelectorSocketTransport fd=9 read=polling write=<idle, bufsize=0>>
0003|Traceback (most recent call last):
0004|File "/opt/pyenv/versions/3.11.14/lib/python3.11/asyncio/selector_events.py", line 1013, in _read_ready__data_received
0005|self._protocol.data_received(data)
0006|File "/var/www/html/plugins/mymodbus/resources/venv/lib/python3.11/site-packages/pymodbus/transport/transport.py", line 304, in data_received
0007|self.datagram_received(data, None)
0008|File "/var/www/html/plugins/mymodbus/resources/venv/lib/python3.11/site-packages/pymodbus/transport/transport.py", line 338, in datagram_received
0009|cut = self.callback_data(self.recv_buffer, addr=addr)
0010|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
0011|File "/var/www/html/plugins/mymodbus/resources/venv/lib/python3.11/site-packages/pymodbus/transaction/transaction.py", line 192, in callback_data
0012|self.response_future.set_result(pdu)
0013|asyncio.exceptions.InvalidStateError: invalid state
0014|[2026-01-28 11:34:14] ERROR  : Fatal error: protocol.data_received() call failed.
0015|protocol: <pymodbus.transaction.transaction.TransactionManager object at 0xffffab046890>
0016|transport: <_SelectorSocketTransport fd=8 read=polling write=<idle, bufsize=0>>
0017|Traceback (most recent call last):
0018|File "/opt/pyenv/versions/3.11.14/lib/python3.11/asyncio/selector_events.py", line 1013, in _read_ready__data_received
0019|self._protocol.data_received(data)
0020|File "/var/www/html/plugins/mymodbus/resources/venv/lib/python3.11/site-packages/pymodbus/transport/transport.py", line 304, in data_received
0021|self.datagram_received(data, None)
0022|File "/var/www/html/plugins/mymodbus/resources/venv/lib/python3.11/site-packages/pymodbus/transport/transport.py", line 338, in datagram_received
0023|cut = self.callback_data(self.recv_buffer, addr=addr)
0024|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
0025|File "/var/www/html/plugins/mymodbus/resources/venv/lib/python3.11/site-packages/pymodbus/transaction/transaction.py", line 192, in callback_data
0026|self.response_future.set_result(pdu)
0027|asyncio.exceptions.InvalidStateError: invalid state
0028|[2026-01-28 11:34:14] ERROR  : Fatal error: protocol.data_received() call failed.
0029|protocol: <pymodbus.transaction.transaction.TransactionManager object at 0xffffab940cd0>
0030|transport: <_SelectorSocketTransport fd=8 read=polling write=<idle, bufsize=0>>
0031|Traceback (most recent call last):
0032|File "/opt/pyenv/versions/3.11.14/lib/python3.11/asyncio/selector_events.py", line 1013, in _read_ready__data_received
0033|self._protocol.data_received(data)
0034|File "/var/www/html/plugins/mymodbus/resources/venv/lib/python3.11/site-packages/pymodbus/transport/transport.py", line 304, in data_received
0035|self.datagram_received(data, None)
0036|File "/var/www/html/plugins/mymodbus/resources/venv/lib/python3.11/site-packages/pymodbus/transport/transport.py", line 338, in datagram_received
0037|cut = self.callback_data(self.recv_buffer, addr=addr)
0038|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
0039|File "/var/www/html/plugins/mymodbus/resources/venv/lib/python3.11/site-packages/pymodbus/transaction/transaction.py", line 192, in callback_data
0040|self.response_future.set_result(pdu)
0041|asyncio.exceptions.InvalidStateError: invalid state
0042|[2026-01-28 11:34:14] ERROR  : Fatal error: protocol.data_received() call failed.
0043|protocol: <pymodbus.transaction.transaction.TransactionManager object at 0xffffab046890>
0044|transport: <_SelectorSocketTransport fd=9 read=polling write=<idle, bufsize=0>>
0045|Traceback (most recent call last):
0046|File "/opt/pyenv/versions/3.11.14/lib/python3.11/asyncio/selector_events.py", line 1013, in _read_ready__data_received
0047|self._protocol.data_received(data)
0048|File "/var/www/html/plugins/mymodbus/resources/venv/lib/python3.11/site-packages/pymodbus/transport/transport.py", line 304, in data_received
0049|self.datagram_received(data, None)
0050|File "/var/www/html/plugins/mymodbus/resources/venv/lib/python3.11/site-packages/pymodbus/transport/transport.py", line 338, in datagram_received
0051|cut = self.callback_data(self.recv_buffer, addr=addr)
0052|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
0053|File "/var/www/html/plugins/mymodbus/resources/venv/lib/python3.11/site-packages/pymodbus/transaction/transaction.py", line 192, in callback_data
0054|self.response_future.set_result(pdu)
0055|asyncio.exceptions.InvalidStateError: invalid state

En attendant mieux, les scénari qui déclenchent la VMC peuvent au moins être opérationnels. :wink:

Il faudrait créer un autre équipement MyModbus avec les mêmes paramètres que l’équipement que tu as mais avec une seule commande de lecture.
Bien sûr il ne faut activer que celui-ci.

S’il y a des erreurs, il faudrait passer en « sur événement », passer en log debug, redémarrer le démon, lancer un rafraichissement et poster les log depuis le démarrage jusqu’à la fin de la lecture des 2 fichiers log.

Merci @Michel_F ,
J’ai créé un autre équipement avec une seule commande et désactivé l’ancien.

En info complémentaire, je n’arrive à obtenir des infos de la VMC via ModbusDoctor qu’avec une requête sur 20 ! Le reste des requêtes se termine en « Timeout » ou « Invalid Answer » ou « internal error ».

Il n’y a rien sur le log mymodbus au démarrage du nouvel équipement en mode « Error ».

Voici le log mymodbus_deamon (toujours en mode « Error »). (Les erreurs se cumulent et font gonfler le fichier sans fin, comme signalé au début du post) :

0000|[2026-01-29 10:41:33] ERROR  : Fatal error: protocol.data_received() call failed.
0001|protocol: <pymodbus.transaction.transaction.TransactionManager object at 0xffffaeb0ad50>
0002|transport: <_SelectorSocketTransport fd=8 read=polling write=<idle, bufsize=0>>
0003|Traceback (most recent call last):
0004|File "/opt/pyenv/versions/3.11.14/lib/python3.11/asyncio/selector_events.py", line 1013, in _read_ready__data_received
0005|self._protocol.data_received(data)
0006|File "/var/www/html/plugins/mymodbus/resources/venv/lib/python3.11/site-packages/pymodbus/transport/transport.py", line 304, in data_received
0007|self.datagram_received(data, None)
0008|File "/var/www/html/plugins/mymodbus/resources/venv/lib/python3.11/site-packages/pymodbus/transport/transport.py", line 338, in datagram_received
0009|cut = self.callback_data(self.recv_buffer, addr=addr)
0010|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
0011|File "/var/www/html/plugins/mymodbus/resources/venv/lib/python3.11/site-packages/pymodbus/transaction/transaction.py", line 192, in callback_data
0012|self.response_future.set_result(pdu)
0013|asyncio.exceptions.InvalidStateError: invalid state
0014|[2026-01-29 10:41:34] ERROR  : Fatal error: protocol.data_received() call failed.
0015|protocol: <pymodbus.transaction.transaction.TransactionManager object at 0xffffaeb0ad50>
0016|transport: <_SelectorSocketTransport fd=8 read=polling write=<idle, bufsize=0>>
0017|Traceback (most recent call last):
0018|File "/opt/pyenv/versions/3.11.14/lib/python3.11/asyncio/selector_events.py", line 1013, in _read_ready__data_received
0019|self._protocol.data_received(data)
0020|File "/var/www/html/plugins/mymodbus/resources/venv/lib/python3.11/site-packages/pymodbus/transport/transport.py", line 304, in data_received
0021|self.datagram_received(data, None)
0022|File "/var/www/html/plugins/mymodbus/resources/venv/lib/python3.11/site-packages/pymodbus/transport/transport.py", line 338, in datagram_received
0023|cut = self.callback_data(self.recv_buffer, addr=addr)
0024|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
0025|File "/var/www/html/plugins/mymodbus/resources/venv/lib/python3.11/site-packages/pymodbus/transaction/transaction.py", line 192, in callback_data
0026|self.response_future.set_result(pdu)
0027|asyncio.exceptions.InvalidStateError: invalid state
0028|[2026-01-29 10:41:34] ERROR  : Fatal error: protocol.data_received() call failed.
0029|protocol: <pymodbus.transaction.transaction.TransactionManager object at 0xffffaeb0ad50>
0030|transport: <_SelectorSocketTransport fd=8 read=polling write=<idle, bufsize=0>>
0031|Traceback (most recent call last):
0032|File "/opt/pyenv/versions/3.11.14/lib/python3.11/asyncio/selector_events.py", line 1013, in _read_ready__data_received
0033|self._protocol.data_received(data)
0034|File "/var/www/html/plugins/mymodbus/resources/venv/lib/python3.11/site-packages/pymodbus/transport/transport.py", line 304, in data_received
0035|self.datagram_received(data, None)
0036|File "/var/www/html/plugins/mymodbus/resources/venv/lib/python3.11/site-packages/pymodbus/transport/transport.py", line 338, in datagram_received
0037|cut = self.callback_data(self.recv_buffer, addr=addr)
0038|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
0039|File "/var/www/html/plugins/mymodbus/resources/venv/lib/python3.11/site-packages/pymodbus/transaction/transaction.py", line 192, in callback_data
0040|self.response_future.set_result(pdu)
0041|asyncio.exceptions.InvalidStateError: invalid state
0042|[2026-01-29 10:41:34] ERROR  : Fatal error: protocol.data_received() call failed.
0043|protocol: <pymodbus.transaction.transaction.TransactionManager object at 0xffffaeb0ad50>
0044|transport: <_SelectorSocketTransport fd=8 read=polling write=<idle, bufsize=0>>
0045|Traceback (most recent call last):
0046|File "/opt/pyenv/versions/3.11.14/lib/python3.11/asyncio/selector_events.py", line 1013, in _read_ready__data_received
0047|self._protocol.data_received(data)
0048|File "/var/www/html/plugins/mymodbus/resources/venv/lib/python3.11/site-packages/pymodbus/transport/transport.py", line 304, in data_received
0049|self.datagram_received(data, None)
0050|File "/var/www/html/plugins/mymodbus/resources/venv/lib/python3.11/site-packages/pymodbus/transport/transport.py", line 338, in datagram_received
0051|cut = self.callback_data(self.recv_buffer, addr=addr)
0052|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
0053|File "/var/www/html/plugins/mymodbus/resources/venv/lib/python3.11/site-packages/pymodbus/transaction/transaction.py", line 192, in callback_data
0054|self.response_future.set_result(pdu)
0055|asyncio.exceptions.InvalidStateError: invalid state

Vois-tu une solution grâce à ces logs ?

Merci et bonne journée !

Dom.

En parallèle à l’essai suggéré, j’ai essayé de faire varier des paramètres de la passerelle que je suppose être à l’origine du problème de transmission des données (pas du problème d’erreur dans les logs du plugin).

J’ai essayé d’agir sur le « Transmit Delay » (retard de transmission) et là, j’ai récupéré :crossed_fingers: des remontées cohérentes de données de la VMC (8 lectures sur 10 sont cohérentes avec ModbusDoctor, ce qui est vraiment mieux !).

OK, donc le problème est global et ne vient pas de MyModbus. Selon moi, tu peux repasser en version stable actuelle, parce qu’il faudrait sinon que je revienne à une ancienne version du code pour suivre ce qui se passe chez toi et franchement, j’ai pas envie.


J’avais demandé niveau debug…

Les erreurs sont les mêmes.

On est d’accord.

Bonsoir @Michel_F ,
Je te remercie pour ton aide.
Même si des erreurs (incompréhensibles - pour moi) subsistent dans les logs, la communication avec la VMC semble redevenue correcte.
Je vais donc tout laisser comme c’est actuellement et ne pas repasser en version stable (pour ne pas risquer de rompre la communication de nouveau).
Si jamais un nouveau problème de communication se produit, j’opterais pour la version stable et reviendrai vers toi pour les tests.
Encore merci et bonne soirée.
Dom.