Perte information float depuis mise à jour

Bonjour,

J’utilise depuis longtemps ce plugin, encore merci au développeur.
Depuis la dernière version, je rencontre un problème avec les floats.

Je récupère en TCP un registre float dont les valeurs sont autour de 1E-15.
Registre :

Configuration du plugin :

Jusqu’à présent, pour afficher la valeur, je rajoutais dans la configuration de la commande :

Cela fonctionnait sans problème.

Depuis la dernière mise à jour, rien n’ayant changé dans la configuration des équipements, la valeur remontée est 0.

Auriez vous une idée par hasard ?

Merci par avance.


Informations Jeedom

Core : 4.5 (master)
DNS Jeedom : non

Plugin : MyModbus
Version : 2025-11-30 17:36:58 (stable)
Statut Démon : Démarré - (2025-12-01 07:44:03)

Bonjour,

:heart:


Si la valeur retournée est incohérente il faut « jouer » avec les inversions d’octets et de mots jusqu’à obtenir une valeur cohérente. La multiplication comme vous la faites ne peut pas être la solution, JAMAIS.

À+

Le paramétrage d’inversion des octets est le bon, la preuve sur ModbusDoctor j’ai le même paramétrage.
La valeur retournée n’est pas incohérente, elle était bonne avant la mise à jour. Depuis je reçois 0 , car je suppose la valeur est trés petite (E-15).
Ce n’est pas lié à l’équipement car cela fonctionne sur le même poste avec ModbusDoctor.

Une valeur de l’ordre de 10e-15 qu’il faut ensuite multiplier par 10e+15 pour avoir une bonne valeur n’est pas cohérente par définition.
C’est une valeur qui représente quoi ? C’est quel appareil ?

C’est un appareil développé en interne sur lequel je ne peux pas donner plus de précision.
La grandeur physique mesurée est très faible, mais je pense que c’est hors sujet car quelle que soit la grandeur physique le problème serait le même.
La vraie différence est que cela fonctionnait très bien (depuis longtemps) avant la mise à jour.

Log en debug :

[2025-12-15 17:24:45][DEBUG] jeemymodbus.php: $input *{"values":{"3973":3.2654475369368885e-15,"3974":170278.71875,"3976":160.46876525878906,"3979":23.782150268554688}}* type: array
[2025-12-15 17:24:45][DEBUG] jeemymodbus.php: Mise à jour cmd 'MES_1' -> new value: '0.000'
[2025-12-15 17:24:45][DEBUG] jeemymodbus.php: Mise à jour cmd 'MES_2' -> new value: '170278.719'
[2025-12-15 17:24:45][DEBUG] jeemymodbus.php: Mise à jour cmd 'MES_3' -> new value: '160.469'
[2025-12-15 17:24:45][DEBUG] jeemymodbus.php: Mise à jour cmd 'MES_4' -> new value: '23.782'

On voit que la valeur à E-15 est bien récupérée mais ensuite elle est transférée avec la valeur ‹ 0.000 ›.

Pourtant la config de la commande est standard :

Il semble qu’il y ait un arrondi qui se soit ajouté depuis la dernière mise à jour.

Merci

Je confirme, je vais rendre ça optionnel dans la prochaine version bêta.

1 « J'aime »

Super, merci beaucoup.

Je viens de pousser la bêta, la mise à jour sera disponible vers 1h demain matin.

Comme l’option d’arrondi existe dans le core, j’ai supprimé l’arrondi et n’ai pas proposé d’option qui serait redondante.

1 « J'aime »

Ok je teste des que je peux. Merci beaucoup

Edit : test fait cela fonctionne, merci. :+1:

1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.