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 ›.