Données unit64 bit erronées

Bonjour,

Après avoir installé de version beta de Mymodbus du 2024-09-23, j’ai du, comme il était recommandé cocher la case inversé mots.
Tous ces biens passé sur les valeurs float32, uint32, mais sur mon KSEM j’ai la valeur activenergie qui est codé en uint64.
Est la je me retrouve avec une valeur incohérente. L’adresse modbus est 512 coder en uint64.
Quand je lis l’adresse 514 coder en uint32 est 512 en uint32 je retrouve ma valeurs correct.
Avant cette version je n’avais aucun problème de lecture de la valeur.

La valeur correcte et 6355.269 KWh

Capture d’écran 2024-09-24 à 12.46.55

C’est bizarre, j’avais aussi le problème avec l’uint64, mais la version beta45 du 20/9 à corrigé mon problème. Dans l’attente du retour de Michel, n’hésite pas à simplement la passer en uint32 car ta valeur actuelle ne déborde pas sur l’autre mot et de toute façon comme on la constaté avec Michel, si on venait à avoir une valeur aussi grande quelle utilise les 2 mots, la version actuelle de php cracherait. Je cite son message reçu en MP:

La version de demain matin corrigera la lecture des uint64, mais des valeurs trop grandes seront tronquées coté Jeedom. Exemple 777_777_777_777_777_777 devient 777_777_777_777_777_800. Il n’y a « que » 16 chiffres significatifs…
Je corrigerai peut-être un jour, mais c’est pas sûr. Peut-être que sous debian 12 avec php8, ce problème disparaît ? Pas testé

Hello,

D’après ce que je vois l’adresse 512 devrait être le début du double mot de poid fort, or 512 est plus petit que 514. Donc en fait il faut aussi prévoir une inversion de double mot !!

Si plusieurs utilisateurs le demandent, je le ferai. En attendant :

  • Lecture adresse 512 : rien en option
  • Lecture adresse 514 : option : #value# + #[commande][lecture][adresse 512]# * 4294967296 (avec 6 à la fin sinon c’est faux)

A+
Michel

Merci messieurs pour cette réponse rapide.

Bon de toute j’avais appliqué la formule avec les uint32, et cela fonctionne. Mais il ne faudrait laisser en l’état le problème car tu risque d’avoir des remontées à chaque nouvelle utilisation de la fonction uint64. Les personnes ne comprendront pas.

Bonne journée.

Cordialement

Mes excuses mais je ne suis pas sûr de comprendre 100% de la réponse… je crois qu’il manque des mots

Des remontées = de retours ?
Si c’est bien ça que vous voulez dire, je doute que plusieurs appareils inversent les double mots comme le vôtre. Par exemple chez thomaspascal, ça fonctionne maintenant.

Comme expliqué c’est très bizarre qu’une valeur soit répartie volontairement avec le double mot de poid fort sur les premières adresses.

A effectivement, je pensais que c’était un cas plus général. Ne tiens pas compte de mes remarques. Merci encore. Bonne journée.

1 « J'aime »