Plus de communication depuis MAJ

Bonjour,
Depuis la dernière MAJ une grande partie des mes commandes et infos ne se font plus avec mes automates. Voici le type de log que j’ai en retour. Avez vous une idée?

[2024-09-21 21:41:25] ERROR  : Automate secondaire/Etat ecl ext: return error during read request on slave id 0, address 848 -> None
[2024-09-21 21:41:26] ERROR  : Système de pompage/00: return error during read request on slave id 0, address 856 -> None
[2024-09-21 21:41:27] ERROR  : Système de pompage/25: return error during read request on slave id 0, address 855 -> None
[2024-09-21 21:41:28] ERROR  : Système de pompage/50: return error during read request on slave id 0, address 854 -> None
[2024-09-21 21:41:29] ERROR  : Système de pompage/100: return error during read request on slave id 0, address 853 -> None
[2024-09-21 21:41:30] ERROR  : Système de pompage/Vide: return error during read request on slave id 0, address 857 -> None
[2024-09-21 21:41:30] ERROR  : Automate secondaire/Temps restant: return error during read request on slave id 0, address 61 -> None
[2024-09-21 21:41:31] ERROR  : Système de pompage/00: return error during read request on slave id 0, address 856 -> None
[2024-09-21 21:41:31] ERROR  : Automate secondaire/FB Ballon eau chaude: return error during read request on slave id 0, address 864 -> None
[2024-09-21 21:41:32] ERROR  : Système de pompage/25: return error during read request on slave id 0, address 855 -> None
[2024-09-21 21:41:32] ERROR  : Automate secondaire/Info garage ouvert: return error during read request on slave id 0, address 851 -> None
[2024-09-21 21:41:33] ERROR  : Système de pompage/50: return error during read request on slave id 0, address 854 -> None
[2024-09-21 21:41:33] ERROR  : Automate secondaire/Info garage fermé: return error during read request on slave id 0, address 850 -> None
[2024-09-21 21:41:34] ERROR  : Système de pompage/100: return error during read request on slave id 0, address 853 -> None
[2024-09-21 21:41:34] ERROR  : Automate secondaire/Position portail: return error during read request on slave id 0, address 849 -> None
[2024-09-21 21:41:35] ERROR  : Système de pompage/Vide: return error during read request on slave id 0, address 857 -> None
[2024-09-21 21:41:35] ERROR  : Automate secondaire/Garage mal fermé: return error during read request on slave id 0, address 852 -> None
[2024-09-21 21:41:36] ERROR  : Système de pompage/00: return error during read request on slave id 0, address 856 -> None
[2024-09-21 21:41:36] ERROR  : Automate secondaire/Etat ecl ext: return error during read request on slave id 0, address 848 -> None
[2024-09-21 21:41:37] ERROR  : Système de pompage/25: return error during read request on slave id 0, address 855 -> None
[2024-09-21 21:41:38] ERROR  : Système de pompage/50: return error during read request on slave id 0, address 854 -> None
[2024-09-21 21:41:39] ERROR  : Système de pompage/100: return error during read request on slave id 0, address 853 -> None
[2024-09-21 21:41:40] ERROR  : Système de pompage/Vide: return error during read request on slave id 0, address 857 -> None
[2024-09-21 21:41:41] ERROR  : Système de pompage/00: return error during read request on slave id 0, address 856 -> None
[2024-09-21 21:41:41] ERROR  : Automate secondaire/Temps restant: return error during read request on slave id 0, address 61 -> None
[2024-09-21 21:41:42] ERROR  : Système de pompage/25: return error during read request on slave id 0, address 855 -> None
[2024-09-21 21:41:42] ERROR  : Automate secondaire/FB Ballon eau chaude: return error during read request on slave id 0, address 864 -> None
[2024-09-21 21:41:43] ERROR  : Système de pompage/50: return error during read request on slave id 0, address 854 -> None
[2024-09-21 21:41:43] ERROR  : Automate secondaire/Info garage ouvert: return error during read request on slave id 0, address 851 -> None
[2024-09-21 21:41:44] ERROR  : Système de pompage/100: return error during read request on slave id 0, address 853 -> None
[2024-09-21 21:41:44] ERROR  : Automate secondaire/Info garage fermé: return error during read request on slave id 0, address 850 -> None
[2024-09-21 21:41:45] ERROR  : Système de pompage/Vide: return error during read request on slave id 0, address 857 -> None

Informations Jeedom

Core : 4.4.17 (master)
DNS Jeedom : non

Plugin : MyModbus
Version : 2024-09-20 01:01:50 (beta)
Statut Démon : Démarré - (2024-09-21 22:39:11)

Bonjour,

Dans le changelog de la bêta42, il est indiqué que l’adresse esclave 0 peut générer des erreurs, passer à 1 dans ce cas

A+
Michel

Je viens de le faire. Je n’ai plus les erreurs mais une grosse partie des commande ne passe toujours pas et sans lignes dans les logs

1 « J'aime »

Alors il me faut des détails si tu souhaites que je te dirige vers une solution

Par exemple sur la capture les commande de chauffe eau passe alors que celle du portail n’arrive pas à l’automate.

Il me faut des détails si tu souhaites que je te dirige vers une solution ou que je trouve où se situe le problème dans le plugin

Exemple
  • les logs en mode debug au moment de l’exécution d’une commande qui passe et d’une commande qui ne passe pas
  • le type d’automate
  • la config de l’équipement, notamment le temps d’attente entre 2 requêtes

  • Des infos, STP

edit: il faut que tu t’imagines que je vois pas ton écran, que je ne connais pas l’historique de tes tests et que je ne connais pas ton setup

En effet désolé.
Le plugin communique avec 2 automates Siemens Logo via le ModBus TCP depuis 3 ans environ.
Il passe des entrée reseau de 1 à 0 ou l’inverse et récupere egalement des valeurs numeriques (temperature, pression).
J’ai activé les logs debug et voici ce que j’ai lorsque j’envoi une commande vers l’automate. La commande est ouverture portail
Ce qui est etrange c’est que depuis cette mise à jour, seuleument une partie de commandes ne passent plus :

[2024-09-22 08:47:51] DEBUG  : mymodbus::deamon_info
[2024-09-22 08:47:51] DEBUG  : mymodbus::getDeamonLaunchable
[2024-09-22 08:47:51] DEBUG  : mymodbus::getCompleteConfiguration
[2024-09-22 08:47:51] DEBUG  : mymodbus::getEqConfiguration
[2024-09-22 08:47:51] DEBUG  : mymodbus::getEqConfiguration
[2024-09-22 08:47:51] DEBUG  : mymodbus::getEqConfiguration
[2024-09-22 08:47:51] DEBUG  : mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
[2024-09-22 08:47:54] DEBUG  : mymodbusCmd::execute **************** execute *****: {"user_login":"Ludo","user_id":"7","comingFrom":"JeedomConnect"}
[2024-09-22 08:47:54] DEBUG  : mymodbus::sendToDaemon * params = array (   'CMD' => 'write',   'write_cmd' =>    array (     'eqId' => '20',     'cmdWriteValue' => 1,     'cmdId' => '2730',   ), )
[2024-09-22 08:47:54] DEBUG  : mymodbusCmd::execute **************** execute *****: {"background":"0","source":"[Contr\u00f4le des acc\u00e8s][Automate secondaire][Ouverture portail]"}
[2024-09-22 08:47:54] DEBUG  : mymodbus::sendToDaemon * params = array (   'CMD' => 'write',   'write_cmd' =>    array (     'eqId' => '20',     'cmdWriteValue' => 0,     'cmdId' => '4472',   ), )
[2024-09-22 08:47:56] DEBUG  : mymodbus::deamon_info
[2024-09-22 08:47:56] DEBUG  : mymodbus::getDeamonLaunchable
[2024-09-22 08:47:56] DEBUG  : mymodbus::getCompleteConfiguration
[2024-09-22 08:47:56] DEBUG  : mymodbus::getEqConfiguration
[2024-09-22 08:47:56] DEBUG  : mymodbus::getEqConfiguration
[2024-09-22 08:47:56] DEBUG  : mymodbus::getEqConfiguration
[2024-09-22 08:47:56] DEBUG  : mymodbus::deamon_info * daemon_info = '{"log":"mymodbus","state":"ok","launchable":"ok"}'
[2024-09-22 08:47:56] DEBUG  : jeemymodbus.php: $result *{"values":{"5088":false}}* type: array
[2024-09-22 08:47:56] DEBUG  : jeemymodbus.php: Mise à jour cmd Etat soufflerie Boost -> new value:


J’ai créé une nouvelle commande identique (sauf le nom) et elle fonctionne. Ca me semble donc être un bug

Elle passe mais laisse le bit à 1.
En effet dans les autres commandes dans les option je repasse le bit à 0 mais depuis la MAJ j’ai l’impression que ce n’est plus après la commande mais en même temps . Du coup l’automate ne la voit pas passer (je pense)

J’ai fait ça en paliatif. Ca marche mais bon… ça fait bricole non?


Par contre j’ai toujours des soucis sur la reception des données venant de l’automate vers le Jeedom. Idem, modbus tcp port 510

@Bebel27

Bebel27 ne connait pas cette version et ne saura pas forcément aider à moins d’analyser le code que j’ai écrit.

Le principe pour laisser un temps entre les 2 commandes d’une impulsion, avec MyModbus, c’est de mettre 1 pause 2 (pour une impulsion de 2 secondes) et de lier une autre commande de remise à 0. Durant cette pause, aucune commande action ne sera exécutée et attendra la fin des 2 secondes. Je précise parce qu’on pourrait penser qu’avec une pause de 3600 secondes ça marche aussi : oui, mais aucune écriture ne sera permise sur cet équipement durant 1 heure.

Quand à savoir pourquoi « l’ancienne » commande d’écriture ne fonctionne pas, je ne sais pas.

Il me faudrait les log debug du démon mymodbus_daemon pour savoir ce qui est fait par le démon

Désolé je savais pas que c’était toi.
Pour le moment les commandes fonctionnent et les infos remontent. Par contre le dernier soucis que je n’explique pas c’est le delai de remonté de ces info numérique et analogique.
J’etais en polling à 3 secondes et maintenant peux importe le reglage (polling, cyclique) les infos ne s’actualisent que toutes les 30 secondes à 1 minute.
Sais tu ce que je peux partager comme info pour que y vois quelque chose?
Merci pour ton aide

Pas de soucis

La configuration de l’équipement.

A savoir que la dernière bêta (50 il me semble) modifie le mode d’ajustement du polling. Tu as cette version du plugin ?

Voici la configuration de l’équipement :


Oui j’ai bien la derniere version 50.

Passe le temps entre 2 requêtes de lecture à 0,05 voire 0.
Il faut un temps d’attente entre la connexion et la première requête ?

Ok je viens de mettre 0.05.
Je ne pense pas.
J’ai besoin de réactivité surtout pour une partie qui gère un delestage electrique. Si il ne réagit pas assez vite, il va faire noir dans la maison :slight_smile:

Alors tu peux passer le Temps d’attente après la connexion à 0

J’ai l’impression que c’est bon.
Le temps entre 2 requêtes de lecture c’est le temps entre d’attente avant d’interroger chaque ligne d’adresse?

Exactement. C’est pour les connexions série qui doivent être ralenties volontairement.

Je comprend mieux ! :smile: Je dois avoir pas loin de 50 lignes de lecture
Merci beaucoup pour ton aide!

Avec 50 lignes, j’espère pour toi que tu utilises les plages de registre