Bonjour,
J’ai fait une montée de version de mymodbus beta et depuis je ne récupère plus les infos de mon onduleur Huawei Sun2000. A la base j’étais sur une debian 10 DIY.
Suite à une recommandation de @Michel_F j’ai upgradé en debian 11 puis debian 12, toujours avec le même souci.
Ce matin j’ai refait une install complète de Debian 11 et remis le plugin. J’ai l’impression que les valeurs sont lues, mais ne sont pas interprétées correctement. L’installation des dépendances se passe sans souci.
J’ai installé le plugin pyenv mais j’ai l’impression que ce n’est plus utile car mymodbus l’installe dans sa mise à jour de dépendance.
Voici mes logs:
[2024-09-20 11:44:41] ERROR : Huawei/test: return error during read request on slave id 0, address 32080 -> None
[2024-09-20 11:44:41] DEBUG : recv: 0x1 0x48 0x0 0x0 0x0 0x7 0x0 0x3 0x4 0x0 0x0 0xa 0x7 old_data: addr=None
[2024-09-20 11:44:41] DEBUG : Processing: 0x1 0x48 0x0 0x0 0x0 0x7 0x0 0x3 0x4 0x0 0x0 0xa 0x7
[2024-09-20 11:44:41] DEBUG : Factory Response[ReadHoldingRegistersResponse': 3]
[2024-09-20 11:44:41] DEBUG : Getting transaction 328
[2024-09-20 11:44:42] DEBUG : Huawei: 'one_cycle_read' treatment cmd_id = 3269
[2024-09-20 11:44:42] DEBUG : Huawei: 'one_cycle_read'/test2: requesting read
[2024-09-20 11:44:42] DEBUG : Adding transaction 329
[2024-09-20 11:44:42] DEBUG : Resetting frame - Current Frame in buffer -
[2024-09-20 11:44:42] DEBUG : send: 0x1 0x49 0x0 0x0 0x0 0x6 0x0 0x3 0x90 0xf9 0x0 0x2
[2024-09-20 11:44:42] ERROR : Huawei/test2: return error during read request on slave id 0, address 37113 -> None
[2024-09-20 11:44:43] DEBUG : recv: 0x1 0x49 0x0 0x0 0x0 0x7 0x0 0x3 0x4 0xff 0xff 0xfd 0x64 old_data: addr=None
[2024-09-20 11:44:43] DEBUG : Processing: 0x1 0x49 0x0 0x0 0x0 0x7 0x0 0x3 0x4 0xff 0xff 0xfd 0x64
[2024-09-20 11:44:43] DEBUG : Factory Response[ReadHoldingRegistersResponse': 3]
[2024-09-20 11:44:43] DEBUG : Getting transaction 329
[2024-09-20 11:44:43] DEBUG : Huawei: 'one_cycle_read' treatment cmd_id = 3270
[2024-09-20 11:44:43] DEBUG : Huawei: 'one_cycle_read'/test3: requesting read
[2024-09-20 11:44:43] DEBUG : Adding transaction 330
[2024-09-20 11:44:43] DEBUG : Resetting frame - Current Frame in buffer -
[2024-09-20 11:44:43] DEBUG : send: 0x1 0x4a 0x0 0x0 0x0 0x6 0x0 0x3 0x90 0xed 0x0 0x2
[2024-09-20 11:44:43] ERROR : Huawei/test3: return error during read request on slave id 0, address 37101 -> None
[2024-09-20 11:44:43] DEBUG : Huawei: 'one_cycle_read' exit with error_or_exception = True
[2024-09-20 11:44:43] DEBUG : recv: 0x1 0x4a 0x0 0x0 0x0 0x7 0x0 0x3 0x4 0x0 0x0 0x8 0xf5 old_data: addr=None
[2024-09-20 11:44:43] DEBUG : Processing: 0x1 0x4a 0x0 0x0 0x0 0x7 0x0 0x3 0x4 0x0 0x0 0x8 0xf5
[2024-09-20 11:44:43] DEBUG : Factory Response[ReadHoldingRegistersResponse': 3]
[2024-09-20 11:44:43] DEBUG : Getting transaction 330
[2024-09-20 11:45:10] DEBUG : Huawei: 'one_cycle_read' launched
[2024-09-20 11:45:10] DEBUG : Huawei: 'add_change' launched with payload = {'values::cycle_ok': {'value': 0, 'eqId': '262'}}
[2024-09-20 11:45:10] DEBUG : Huawei: 'add_change' No modification to send
[2024-09-20 11:45:11] DEBUG : Huawei: 'one_cycle_read' treatment cmd_id = 3268
[2024-09-20 11:45:11] DEBUG : Huawei: 'one_cycle_read'/test: requesting read
[2024-09-20 11:45:11] DEBUG : Adding transaction 331
[2024-09-20 11:45:11] DEBUG : Resetting frame - Current Frame in buffer -
[2024-09-20 11:45:11] DEBUG : send: 0x1 0x4b 0x0 0x0 0x0 0x6 0x0 0x3 0x7d 0x50 0x0 0x2
[2024-09-20 11:45:11] ERROR : Huawei/test: return error during read request on slave id 0, address 32080 -> None
[2024-09-20 11:45:11] DEBUG : recv: 0x1 0x4b 0x0 0x0 0x0 0x7 0x0 0x3 0x4 0x0 0x0 0xb 0x8e old_data: addr=None
[2024-09-20 11:45:11] DEBUG : Processing: 0x1 0x4b 0x0 0x0 0x0 0x7 0x0 0x3 0x4 0x0 0x0 0xb 0x8e
[2024-09-20 11:45:11] DEBUG : Factory Response[ReadHoldingRegistersResponse': 3]
[2024-09-20 11:45:11] DEBUG : Getting transaction 331
[2024-09-20 11:45:12] DEBUG : Huawei: 'one_cycle_read' treatment cmd_id = 3269
[2024-09-20 11:45:12] DEBUG : Huawei: 'one_cycle_read'/test2: requesting read
[2024-09-20 11:45:12] DEBUG : Adding transaction 332
[2024-09-20 11:45:12] DEBUG : Resetting frame - Current Frame in buffer -
[2024-09-20 11:45:12] DEBUG : send: 0x1 0x4c 0x0 0x0 0x0 0x6 0x0 0x3 0x90 0xf9 0x0 0x2
[2024-09-20 11:45:12] ERROR : Huawei/test2: return error during read request on slave id 0, address 37113 -> None
[2024-09-20 11:45:12] DEBUG : recv: 0x1 0x4c 0x0 0x0 0x0 0x7 0x0 0x3 0x4 0xff 0xff 0xff 0xef old_data: addr=None
[2024-09-20 11:45:12] DEBUG : Processing: 0x1 0x4c 0x0 0x0 0x0 0x7 0x0 0x3 0x4 0xff 0xff 0xff 0xef
[2024-09-20 11:45:12] DEBUG : Factory Response[ReadHoldingRegistersResponse': 3]
[2024-09-20 11:45:12] DEBUG : Getting transaction 332
[2024-09-20 11:45:13] DEBUG : Huawei: 'one_cycle_read' treatment cmd_id = 3270
[2024-09-20 11:45:13] DEBUG : Huawei: 'one_cycle_read'/test3: requesting read
[2024-09-20 11:45:13] DEBUG : Adding transaction 333
[2024-09-20 11:45:13] DEBUG : Resetting frame - Current Frame in buffer -
[2024-09-20 11:45:13] DEBUG : send: 0x1 0x4d 0x0 0x0 0x0 0x6 0x0 0x3 0x90 0xed 0x0 0x2
[2024-09-20 11:45:13] ERROR : Huawei/test3: return error during read request on slave id 0, address 37101 -> None
[2024-09-20 11:45:13] DEBUG : Huawei: 'one_cycle_read' exit with error_or_exception = True
[2024-09-20 11:45:13] DEBUG : recv: 0x1 0x4d 0x0 0x0 0x0 0x7 0x0 0x3 0x4 0x0 0x0 0x9 0xc old_data: addr=None
[2024-09-20 11:45:13] DEBUG : Processing: 0x1 0x4d 0x0 0x0 0x0 0x7 0x0 0x3 0x4 0x0 0x0 0x9 0xc
[2024-09-20 11:45:13] DEBUG : Factory Response[ReadHoldingRegistersResponse': 3]
[2024-09-20 11:45:13] DEBUG : Getting transaction 333
Informations Jeedom
Core : 4.4.12 (V4-stable)
DNS Jeedom : non
Plugin : MyModbus
Version : 2024-09-18 01:01:56 (beta)
Statut Démon : Démarré - (2024-09-19 07:17:09)
Bonjour,
Bien, on y voit plus clair
Première chose qui me passe par la tête : pyenv4Jeedom n’est plus nécessaire et peut être désinstallé sans problème (à moins qu’un autre plugin ne s’en serve, ce dont je doute très fortement).
La sauvegarde de l’équipement génère-t-elle des erreurs ?
Il y a plusieurs équipements qui interrogent le même onduleur (test, test2 et test3), il faudrait réduire à un seul, il me semble que cet onduleur ne supporte pas ça, j’avais essayé de séparer les lecture de production, de consommation et de stockage mais sans succès. L’onduleur ne réagissait pas correctement.
Des captures de config de l’équipement et des commandes seraient un plus pour que je sache un peu plus de choses…
A+
Michel
Alors j’ai vu dans le changelog que pyenv4Jeedom n’était plus nécessaire, mais dans le doute, et comme je ne remonte pas d’info concrète, je l’ai ajouté.
En fait j’ai un seul équipement avec plusieurs adresses que je souhaiterais lire.
Je n’ai aucune erreur, à la sauvegarde, relance du démon ou installation de dépendance.
La réponse est dans le changelog
depuis la bêta 42
1 « J'aime »
Adresse esclave à passer à 1 pour les 3 commandes
Oui j’ai vu ce message et j’avais déjà essayé.
Le slave 1 est à positionné lorsque l’on utilise un dongle.
De mon côté j’interroge en wifi l’onduleur.
Si je mets slave 1 j’ai une erreur de timeout
[2024-09-20 12:11:57] DEBUG : Huawei: connection opened
[2024-09-20 12:11:57] INFO : Huawei: connection opened
[2024-09-20 12:11:58] DEBUG : Huawei: 'run_loop' launched in mode 'cyclic'
[2024-09-20 12:11:58] DEBUG : Huawei: 'one_cycle_read' launched
[2024-09-20 12:11:59] DEBUG : Huawei: 'one_cycle_read' treatment cmd_id = 3268
[2024-09-20 12:11:59] DEBUG : Huawei: 'one_cycle_read'/test: requesting read
[2024-09-20 12:11:59] DEBUG : Adding transaction 1
[2024-09-20 12:11:59] DEBUG : Resetting frame - Current Frame in buffer -
[2024-09-20 12:11:59] DEBUG : send: 0x0 0x1 0x0 0x0 0x0 0x6 0x1 0x3 0x7d 0x50 0x0 0x2
[2024-09-20 12:12:04] DEBUG : Adding transaction 1
[2024-09-20 12:12:04] DEBUG : Resetting frame - Current Frame in buffer -
[2024-09-20 12:12:04] DEBUG : send: 0x0 0x1 0x0 0x0 0x0 0x6 0x1 0x3 0x7d 0x50 0x0 0x2
[2024-09-20 12:12:09] DEBUG : Adding transaction 1
[2024-09-20 12:12:09] DEBUG : Resetting frame - Current Frame in buffer -
[2024-09-20 12:12:09] DEBUG : send: 0x0 0x1 0x0 0x0 0x0 0x6 0x1 0x3 0x7d 0x50 0x0 0x2
[2024-09-20 12:12:14] DEBUG : Adding transaction 1
[2024-09-20 12:12:14] DEBUG : Resetting frame - Current Frame in buffer -
[2024-09-20 12:12:14] DEBUG : send: 0x0 0x1 0x0 0x0 0x0 0x6 0x1 0x3 0x7d 0x50 0x0 0x2
[2024-09-20 12:12:19] DEBUG : Connection lost Huawei due to Server not responding
[2024-09-20 12:12:19] DEBUG : callback_disconnected called: Server not responding
[2024-09-20 12:12:19] ERROR : Huawei/test: exception during read request on slave id 1, address 32080 -> Modbus Error: [Input/Output] ERROR: No response received after 3.0 retries
[2024-09-20 12:12:19] DEBUG : Huawei: 'one_cycle_read' exit with error_or_exception = False
[2024-09-20 12:12:19] DEBUG : Huawei: 'one_cycle_read' launched
[2024-09-20 12:12:19] DEBUG : Wait Huawei 100.0 ms before reconnecting.
[2024-09-20 12:12:19] DEBUG : Huawei: 'on_connect_callback' called with connected = False
[2024-09-20 12:12:19] DEBUG : Huawei: 'add_change' launched with payload = {'values::cycle_ok': {'value': 1, 'eqId': '262'}}
[2024-09-20 12:12:19] DEBUG : Huawei: 'add_change' No modification to send
[2024-09-20 12:12:19] DEBUG : Connecting Huawei
[2024-09-20 12:12:19] DEBUG : Connected to Huawei
[2024-09-20 12:12:19] DEBUG : Resetting frame - Current Frame in buffer -
[2024-09-20 12:12:19] DEBUG : Huawei: 'on_connect_callback' called with connected = True
[2024-09-20 12:12:20] DEBUG : Huawei: 'one_cycle_read' treatment cmd_id = 3268
[2024-09-20 12:12:20] DEBUG : Huawei: 'one_cycle_read'/test: requesting read
[2024-09-20 12:12:20] DEBUG : Adding transaction 2
[2024-09-20 12:12:20] DEBUG : Resetting frame - Current Frame in buffer -
[2024-09-20 12:12:20] DEBUG : send: 0x0 0x2 0x0 0x0 0x0 0x6 0x1 0x3 0x7d 0x50 0x0 0x2
[2024-09-20 12:12:25] DEBUG : Adding transaction 2
[2024-09-20 12:12:25] DEBUG : Resetting frame - Current Frame in buffer -
[2024-09-20 12:12:25] DEBUG : send: 0x0 0x2 0x0 0x0 0x0 0x6 0x1 0x3 0x7d 0x50 0x0 0x2
[2024-09-20 12:12:30] DEBUG : Adding transaction 2
[2024-09-20 12:12:30] DEBUG : Resetting frame - Current Frame in buffer -
[2024-09-20 12:12:30] DEBUG : send: 0x0 0x2 0x0 0x0 0x0 0x6 0x1 0x3 0x7d 0x50 0x0 0x2
Dans cette discussion wanabo avait le même problème. Je ne sais si ni comment il l’a résolu.
Vous avez un accès ssh ? Si je vous donne des commandes, vous saurez les lancer ?
Oui tout à fait je suis déjà connecté en ssh sur la VM
En théorie, 0 c’est du broadcast. De plus la version pymodbus 3.7.2 ne gère pas correctement le slave_id 0, j’ai vu ça sur le dépôt github. Je ne sais pas quand sortira le correctif et ne sais pas depuis quelle version c’est le cas.
OK, donc 0 c’est broadcast.
1 n’est pas le bon slave.
Y a-t-il une commande pour tester les slaves id ?
En ligne de commande ce serait plus rapide que sur l’interface web.
OK, il faudrait copier provisoirement ce fichier dans un répertoire de la machine Jeedom, par exemple sous ‹ tests ›.
Il faut adapter les paramètre HOST et PORT dans le script
Ensuite il faudrait couper MyModbus.
Et lancer ceci, MAIS je ne sais plus quel est le chemin vers python et ne sais plus si c’est ‹ python › ou ‹ python3 ›. Et cette commande suppose que le fichier ‹ solar.py › est sauvegardé sous ‹ tests ›
~www-data/html/plugins/mymodbus/resources/venv/bin/python ~www-data/html/tests/solar.py
Je ne mets qu’une partie du log, mais globalement il n’arrive pas à récupérer de la donnée.
Dans le fichier pyhon je n’ai pas trouvé où mettre le slave_id. Il se débrouille tout seul ?
Un telnet 192.168.0.104 6607 me connecte bien à l’onduleur
/var/www/html/plugins/mymodbus/core/class/../../resources/venv/bin/python3 ./solar1.py
2024-09-20 12:51:44,079 INFO ### Client starting
2024-09-20 12:51:44,086 INFO ### Client connected
2024-09-20 12:51:45,088 INFO ### Client starting
2024-09-20 12:51:45,088 INFO Running loop 0
2024-09-20 12:51:45,088 INFO *** Reading Alarm 1 (UINT16)
2024-09-20 12:51:50,095 ERROR Error
2024-09-20 12:51:51,221 INFO *** Reading Alarm 2 (UINT16)
2024-09-20 12:51:56,228 ERROR Error
2024-09-20 12:51:57,364 INFO *** Reading Alarm 3 (UINT16)
2024-09-20 12:52:02,368 ERROR Error
2024-09-20 12:52:03,478 INFO *** Reading PV 1 voltage (INT16)
2024-09-20 12:52:08,484 ERROR Error
2024-09-20 12:52:09,602 INFO *** Reading PV 1 current (INT16)
2024-09-20 12:52:14,608 ERROR Error
2024-09-20 12:52:15,712 INFO *** Reading PV 2 voltage (INT16)
2024-09-20 12:52:20,719 ERROR Error
2024-09-20 12:52:21,839 INFO *** Reading PV 2 current (INT16)
2024-09-20 12:52:26,845 ERROR Error
Bonjour,
Je vais essayer de résumer ce que j’ai fait.
Avec le script solar.py j’ai scanné tous les id. Il y en a 255 au total. Aucun des id ne répond.
J’ai essayé de downgrader la lib python mymodbus en 3.71, puis 3.70. Toujours la même erreur.
En 3.69 les appels ne fonctionnent pas à cause de fonctions non implémentées du côté de framer…
En regardant le code du module pymodbus il y a bien un souci. En commentant 3 lignes dans le code base/client.py le plugin récupère bien les infos de l’onduleur.
Aujourd’hui j’ai fait la mise à jour du plugin et mon souci est revenu, pourtant le module python n’a pas bougé. Je vis essayer d’analyser cela.
Merci en tout cas pour votre aide !
Bonsoir, je n’ai plus d’erreurs en debug cependant les valeurs ne remontent pas en beta48. Une idée ?
En faisant « inverser mots », le plugin répond ce que j’attends. Désolé du dérangement
La version 3.7.3 du 9.10.2024 corrige le problème du slave_id = 0
Il suffit de relancer les dépendances de MyModbus bêta. Si vous attendez demain après mise à jour du plugin, ça va mettre jeedomdaemon à jour aussi.
1 « J'aime »