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!
[Capteur Custom] Écart entre données envoyées et affichées
[Capteur Custom] Écart entre données envoyées et affichées
Domoticz 4.9700 sur Raspberry pi B+ - RFlink r48
Re: [Capteur Custom] Écart entre données envoyées et affichées
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 !).
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 !).
Re: [Capteur Custom] Écart entre données envoyées et affichées
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
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