[Capteur Custom] Écart entre données envoyées et affichées

Forum dédié au Rflink : installation, paramétrage, utilisation, interfaces ...
BenoitJY
Messages : 5
Inscription : 24 avr. 2018, 23:21

[Capteur Custom] Écart entre données envoyées et affichées

Message par BenoitJY »

Bonjour à tous,

J'ai réalisé un capteur de profondeur de puits, avec un arduino uno, un capteur MPX5500, et un émetteur 433mhz. Le capteur fonctionne bien, et envoie à domoticz, qui reçoit les données. Le capteur est référencé comme RFX10METER.
Je sais, en branchant une liaison série à mon arduino, que ce qui est envoyé, c'est (par exemple) 310120, mais ce que reçoit Domoticz via RFlink c'est 336200 (ça apparaît dans les logs).
Ma question est peut-être bête, mais qu'est-ce qui explique cette différence? Pourquoi le nombre envoyé ne correspond jamais à celui reçu? Du coup, je suis obligé, via un script lua, de faire des calculs savants pour obtenir un nombre à peu près cohérent...
Si quelqu'un a un indice, je suis preneur!
Domoticz 4.9700 sur Raspberry pi B+ - RFlink r48
snips
Messages : 272
Inscription : 18 mars 2015, 22:37

Re: [Capteur Custom] Écart entre données envoyées et affichées

Message par snips »

Bonjour

dans l'exemple vous devez transmettre la valeur "310120"
310120 >>> encodage (A) suivant un protocole particulier côté sonde >>> transmission -------- réception par rflink >>>> décodage (B) du protocole >>>> récupération de la valeur (normalement 310120).

En l'espèce vous récupérez 336200 !

1) donc soit : il y a eu des erreurs lors de la transmission/réception.... (si le protocole prévoit des mécanismes de contrôle d'erreurs type bit de parité ou mieux CRC.. cela ne devrait pas se produire souvent).

2) soit il y a une erreur d'implémentation du protocole (A) (c'est à dire le protocole implémenté dans le logiciel dans votre sonde) ou .... une erreur côté (B) (c'est a dire le protocole implémenté dans le logiciel RFLINK)

Ce que vous pouvez faire si vous pouvez modifier le code de votre sonde, c'est d'émettre tout le temps une même valeur fixe.... et regarder si domoticz donne tout le temps la même valeur erronée.... si c'est le cas, c'est que vous êtes dans le cas 2) ci-dessus.
Et si vous êtes dans le cas 2) ci-dessus.... essayer d'émettre différentes valeurs, regarder ce qui sort côté rflink-domoticz, si vous repérez un algorithme, une formule de calcul qui permet de passer de la (bonne) valeur envoyée à la (mauvaise) valeur reçue... vous pouvez alors soit tenter de corriger (compenser) l'erreur dans le code de votre sonde et faire en sorte que la bonne valeur soit calculée par rflink.... soit vous contactez l'auteur du code de rflink pour faire part de vos essais en espérant une correction dans la prochaine version de RFLINK (s'il s'agit bien sur d'une erreur de protocole côté RFLINK !).

Bon courage (ou amusement !).
BenoitJY
Messages : 5
Inscription : 24 avr. 2018, 23:21

Re: [Capteur Custom] Écart entre données envoyées et affichées

Message par BenoitJY »

Merci pour cette réponse!

En fait, ni l'un ni l'autre, je m'explique: L'envoie se passe bien. Il arrive à RFLink, mais j'intercepte les données brutes avant traitement par domoticz. Et c'est là que ça bloque. Car je ne "décode" pas les données comme le ferait domoticz. J'ai donc juste calculé le résultat, en comparant la hauteur réelle du puits, vive la ficelle, et le nombre reçu par domoticz. Calcul savant, et j'injecte dans un capteur virtuel le résultat, via script LUA.

Pour ceux que ça intéresse, j'ai continué sur la voie de l'exploration, en décortiquant la bibliothèque x10rf pour trouver comment c'est "codé". J'ai reçu de l'aide, l'histoire continue sur un autre forum:
http://alis44110.solidarite-locale.fr/f ... d=389#p389
Domoticz 4.9700 sur Raspberry pi B+ - RFlink r48
Répondre