Télé relevé de compteur d’eau avec ajout dans domoticz

Compteur d’eau et Domoticz

Bonjour à tous,

j’ai passé un peu de temps à contruire un module permettant de relever moi même mon compteur d’eau EverBlue Cyble (marque Itron ) et je voulais vous partager le mode opératoire en details.

Premièrement je dois dire que tout est déjà très bien expliqué sur ce cite : www.lamaisonsimon.fr et donc un grand merci à tous les contributeurs pour leur precieuses recherches.

Dans le passé j’habitais une maison ou le compteur était relevé 1 fois par jour automatiquement par Suez et les informations partagées sur leur site. J’avais à l’époque créé un script permettant de collecter ces information et les ajouter directement dans domoticz. Il semble que suez et mis a jour son portail et que la connexion via script ne soit plus possible… Quand à une eventuelle API il faut pas trop y compter je pense…
Où j’habites actuelemnt le service des eaux a mis en place des compteurs de même type (permettant le télé-relevé) mais le relevé ne se fait que 2 fois pas an par un technicien.

En cherchant sur internet je suis tombé sur le site lamaisonsimon.fr qui detaille comment avec un petit recepteur compteur d’eau 433Mhz (~10€) et un Raspberry PI Zero (~9€). Donc pour moins de 20€ et un peu de temps vous allez pouvoir ajouter dans domoticz la valeur journaliere de votre compteur d’eau.

ecran cdomoticz relevé d'eau

Affichage dans domoticz

Composants :

  • Un recepteur Sans Fil Module CC1101 par exemple (ex lien 1)
  • Un Raspberry PI Zero ou autre modèle

Cablage :

Il faut connecter le CC1101 sur la Raspberry comme suit : 

CC1101 Pin Raspberry

 

Configuration du Raspberry :

Sur votre Raspberry vous devez avoir installé ksh, si ce n’est pas le cas : :

sudo apt-get update
sudo apt-get install ksh

Puis :

cd /home/pi/
git clone https://github.com/Sirus10/consoEAU.git
cd consoEAU
chmod +x get_water.sh

Il faut ensuite modifier le fichier cc1101.c ligne 672 modifier les XXXXX comme indiqué par le numéro de compteur :

// replace XXXXXXX with the servia of our device YY-XXXXXXX-ZZZ
// If the serial XXXXXXX start with a 0 remove it. 
// Ex 20-0123456-987 -> replace XXXXXXX below with 123456 
TS_len_u8=Make_Radian_Master_req(txbuffer, 17  , XXXXXXX ); 

Compilez le code :

gcc radian_trx.c -o radian_trx -lwiringPi -lpthread -Wall

Vouc pouvez ignorer les waring suivant lors de la compilation:warning compilation

Tester et verifiez que vous collectez bien les données (tester au plus près du compteur pour commencer) :

/home/pi/conoEAU/radian_trx
raspian radian trx builded:Sep  2 2022 18:02:38

command list :
exit:x ;cc1101 version:v; read config : c
m:MARCSTATE a:MCSM1_val s:full_status
H:scenario de l'outil de releve !
S:scan
R:Reset CC1101

puis tapez H
radian_trx putty
radian_trx collecte donnée

Si la collecte se passe correctement vous deviez avoir un retour dece type :

command list :
exit:x ;cc1101 version:v; read config : c
m:MARCSTATE a:MCSM1_val s:full_status
H:scenario de l'outil de releve !
S:scan
R:Reset CC1101

HMARCSTATE : raw:0x13 0x13 free_byte:0x0F sts:0x02 sending 2s WUP...

50 00 00 00 03 FF FF FF FF 64 70 47 00 75 17 44
76 07 71 71 11 00 75 17 02 72 87 05 71 47 00 72
87 01 72 77 3F FF FF
186free_byte:0x0D sts:0x07
MARCSTATE : raw:0x0D 0x0D(RX RX)
GDO0! 00 1st synch received rssi=171 lqi=128 F_est=255
MARCSTATE : raw:0x0D 0x0D(RX RX)
GDO0! frame received
MARCSTATE : raw:0x0D 0x0D(RX RX)
GDO0! 00 1st synch received rssi=171 lqi=128 F_est=255
MARCSTATE : raw:0x0D 0x0D(RX RX)
GDO0! frame received

0x00,0xFF [puis un long message en hexa]

Pour finir par la ligne qui affiche les infos :
2/9/2022 15:6:25 264903litres Num189 113Mois 6h-18h serial:<serial de mon compteur>

Si vous rencontrez des soucis pour collecter des données il faudra peut être ajuster la fréquence du transmeteur. Je vous ferai un arctile sur ce point mais plus tards. Vous avez aussi ces détail sur le wiki de lamaisonsimon.fr. A noter que radian_trx que je vous propose dispode d’une fonction scan (option S voir détail plus tard)…

Une fois que vous obtenez les données de votre compteru, vous pouvez modifier le fichier  get_water.sh :

Ajouter l’IP de domoticz (127.0.0.1 ) et remplacer idx=22 par la valeur du compteur dans domoticz :

curl "http://<ip domotique>:8080/json.htm?type=command&param=udevice&idx=22&svalue=$value"

Enfin ligne 25 remplacer put@your.email par votre adresse email. Vous serez alerté si la collecte n’a pas pu avoir lieu.

echo "Compteur d'eau pas de valeur relevée" | mail -s "Compteur d'eau" put@your.email 

Executer en mode test :

./radian_trx puis tapper H

Executer avec ajout de l’information dans Domoticz :

./get_water.sh

Planifier en Crontab :

0 8-17 * * 1-5 /home/pi/consoEAU/get_water.sh >> /tmp/get_water.sh.log

Plus de detail viendrons dans un second tesmp, je voulais juste vous donner quelques piste et ma procedure pas à pas pour permettre de reciuperer dans domoticz les données de votre compteur d’eau.

 

 

20 réflexions sur « Télé relevé de compteur d’eau avec ajout dans domoticz »

  1. SOAD08

    Bonjour

    J’ai un compteur d’eau identique à celui que vous décrivez.
    Il est situé au fond d’un regard profond de 2m donc pas de lecture directe et régulière possible.
    J’ai découvert deux importantes surconsommations d’eau lors du télé relevé qui a lieu tous les 6 mois et suis depuis longtemps en besoin de trouver un moyen de télé relever moi-même ce compteur.
    J’ai lu votre mode opératoire et envisage de le suivre.
    Je ne sais pas programmer en Python mais je ne part pas totalement de 0 dans le domaine de la programmation, donc je vais essayer de me lancer.

    Ma question porte sur le matériel nécessaire, préalable à cette démarche.
    Le Raspberry PI Zero (w ou 2w) est introuvable en stock, sinon à des prix délirants proche de 100€.

    Par contre, on trouve encore le Raspberry Pi Nano

    https://all3dp.com/2/raspberry-pi-pico-vs-zero-compared/

    Répondre
      1. GAUBERTIER JEANCLAUDE

        Bonsoir,

        J’ai fait un commentaire qui a disparu!
        Merci pour le partage qui semble un très bonne synthèse des travaux de recherches auxquels vous vous referez.
        C’était juste pour vous demandez , compte tenu que le raspi Pico ne peut pas porter Raspbian, comment appliquer ce tuto ?
        Merci

        Répondre
  2. Phil

    Bonjour, tout d’abord merci pour le partage de vos travaux. J’ai suivi vos instruction mais j’ai une erreur de compilation. qu’en pensez vous ?

     »
    pi@raspberrypi:~/consoEAU $ gcc radian_trx.c -o radian_trx -lwiringPi -lpthread -Wall
    In file included from radian_trx.h:97,
    from radian_trx.c:5:
    cc1101.c: In function ‘scenario_releve’:
    cc1101.c:729:8: warning: implicit declaration of function ‘display_meter_cron’; did you mean ‘display_meter_report’? [-Wimplicit-function-declaration]
    else display_meter_cron(meter_data,meter_data_size);
    ^~~~~~~~~~~~~~~~~~
    display_meter_report
    cc1101.c:668:13: warning: variable ‘TS_len_u8’ set but not used [-Wunused-but-se t-variable]
    uint8_t TS_len_u8;
    ^~~~~~~~~
    cc1101.c: At top level:
    cc1101.c:756:6: warning: conflicting types for ‘display_meter_cron’
    void display_meter_cron (uint8_t *decoded_buffer , uint8_t size)
    ^~~~~~~~~~~~~~~~~~
    cc1101.c:729:8: note: previous implicit declaration of ‘display_meter_cron’ was here
    else display_meter_cron(meter_data,meter_data_size);
    ^~~~~~~~~~~~~~~~~~
    pi@raspberrypi:~/consoEAU $
    « 

    Répondre
    1. Manu Auteur de l’article

      Bonjour et desolé de la reponse si tardive vous avez sans doute trouve la solution entre temps…
      ce ne sont que des warning. le code devrait fonctionner malgré tout
      Manu

      Répondre
  3. Julien

    Bonjour,

    Suite a un scan, je pense avoir trouvé la bonne fréquence (Freq0=71).
    Que faut-il modifier exactement dans le fichier cc1101.c pour modifier la bonne fréquence?

    En vous remerciant d’avance.
    Julien

    Répondre
    1. Julien

      Je me répond,

      La fréquence de base est OK

      Par contre, il faut changer aussi l’année du compteur :

      // replace XXXXXXX with the servia of our device YY-XXXXXXX-ZZZ
      // If the serial XXXXXXX start with a 0 remove it.
      // Ex 20-0123456-987 -> replace XXXXXXX below with 123456
      TS_len_u8=Make_Radian_Master_req(txbuffer, 17 , XXXXXXX ); // le 17 est a replacer par l’année du compteur (représenté par YY sur la 1er ligne)

      Répondre
  4. Papiche

    Bonjour à tous
    En lisant cette page bien documentée j’ai décidé de me lancer.
    j’ai fait acquisition d’un Pi zéro et d’un CC1101 868Mhz
    Je les ai câblé puis j’ai installé l’ OS Raspberry Pi Legacy disponible dans Pi Imager.
    j’ai eu ce message au 1er boot :
    [ 43.872858] reboot: Restarting system
    [ 52.062927] [342]: Failed to remount ‘/’ read-only: Device or resource busy
    [ 52.083086] systemd-shutdown[1]: Failed to finalize file systems, ignoring.
    [ 52.186883] reboot: Restarting system

    Raspbian GNU/Linux 11 raspberrypi ttyAMA0
    Déjà c’est pas sain.
    Bref, j’applique la procédure décrite ici et ça marche sauf qu’ au moment de compiler j’ai ce message :
    /usr/bin/ld: cannot find -lwiringPi
    collect2: error: ld returned 1 exit status
    pi@raspberrypi:~/consoEAU$
    Et là, vu que je débute je suis bloqué.
    A l’aide SVP
    Je vous remercie

    Répondre
  5. NOTARAS

    Bonjour,
    Merci pour ce tuto détaillé, le partage est une vraie valeur.
    Je recherche un outil pour plus de sobriété dans les energies de ma maison, et cela veut d’abord dire les rendre visibles au quotidien. idéalement un outil comme GEO TRIO (UK seulement) ou homewizard mais qui ne sont pas dispo pour moi ( compteur eau Itron 868mhz, gazpar et edf electromecanique)
    L’idée est de mettre un afficheur dans la piece principale, avec un graphique temporel de conso.
    Pensez-vous qu’on pourrait élargir votre systeme au gaz et à EDF ?

    Répondre
  6. GAUBERTIER JEAN-CLAUDE

    bonsoir,

    Je m’apprête a utiliser le tuto , j’ai lu une réponse a un post que vous envisagiez la possibilité de passer un raspi PICO W.
    Or ce type microcontrôleur ne fonctionne pas sous raspbian (linux) et dans ce cas je ne vois pas comment appliquer votre tuto.
    Bonne soirée

    Répondre
  7. Seb

    Bonsoir,

    Merci pour la documentation, en revanche j’ai cette erreur au lancement

    pi@raspberrypi:~/consoEAU $ ./radian_trx
    Unable to open SPI device: No such file or directory

    Répondre
  8. lambrouille

    le premier chiffre sur ton module c’est l’année 20 =2020
    gros défauts pour les années 2015 ils sous comptent ou s arrêtent
    durée de vie par le constructeur itron 10 ans mais les 2016 et 2017 en fosse ne tiennent pas
    problème sur les 2018 alarme fer a cheval défaut magnétique et 2019 itron passe les reparamétrer

    Répondre
  9. Xavier

    Bonjour,
    Je me lance : RaspBerry Pi 4, CC1101, Compteur itron NARVAL +, Telereleve EverBlu Cyble
    Compilation radian_trx
    J’attends le CC1101.
    Je ne comprends pas trop le réglage de fréquence si j’en ai besoin….
    halRfWriteReg(FREQ2,0x10); //Frequency Control Word, High Byte Base frequency = 433.82
    halRfWriteReg(FREQ1,0xAF); //Frequency Control Word, Middle Byte
    //halRfWriteReg(FREQ0,0x77); //Frequency Control Word, Low Byte la fréquence reel etait 433.790 (centre)
    Je posterai mon avancement…

    Répondre
  10. xavier

    bonjour,

    Je me suis lancé

    Un compteur ITRON Compteur eau divisionnaire MID R100 Itron – NARVAL+

    – Un module de télérelève ITRON – EverBlu Cyble Enhanced v2.1

    + Un raspberry Pi 4

    + CC1101

    Super tuto merci

    Après qqs essais j’obtiens

    xxx

    H1 MARCSTATE 1 : raw:0x13 0x13 free_byte:0x0F sts:0x02 sending 2s WUP…

    50 00 00 00 03 FF FF FF FF 64 70 47 00 75 17 44

    75 87 4B F5 4F 00 75 17 02 72 87 05 71 47 00 72

    87 01 70 07 4F FF FF

    2 184 free_byte:0x0F sts:0x07

    MARCSTATE : raw:0x0D 0x0D(RX RX)

    Time Out on REC1

    MARCSTATE : raw:0x0D 0x0D(RX RX)

    TimeOut on REC2

    xxx

    En scannat les fréquences j’obtiens de temps un temps une répone partielle

    xxx

    Essai avec Freq0=37

    MARCSTATE : raw:0x13 0x13 free_byte:0x0F sts:0x02 sending 2s WUP…

    50 00 00 00 03 FF FF FF FF 64 70 47 00 75 17 44

    75 87 4B F5 4F 00 75 17 02 72 87 05 71 47 00 72

    87 01 70 07 4F FF FF

    194free_byte:0x0D sts:0x07

    MARCSTATE : raw:0x0D 0x0D(RX RX)

    TMO on REC

    MARCSTATE : raw:0x0D 0x0D(RX RX)

    GDO0! A2 1st synch received rssi=174 lqi=128 F_est=255

    MARCSTATE : raw:0x0D 0x0D(RX RX)

    TMO on REC

    xxx
    J’ai réglé Freq0 mais je n’ai jamais les résultats comme décrit

    Que faut il régler ?

    Merci

    Répondre
  11. xavier

    Bonjour,
    Super travail…
    Everblu 1 : 17 xxxxx => J’ai les mesures
    Everblu 2 : 23 yyyyy => Aucune mesure
    Pas de litres,working hours, Serial … => 28/10/2024 17:18:51 0=litres Num=14 163Mois 0h-0h serial:
    Entre 2 mesures si je fais bouger le compteur, rien ne change à part l’heure dans le buffer décodé par display_meter_report
    Qqun a fait fonction un everblu de 2023 ? Quelles adaptations ?
    Merci

    Répondre
    1. Julien

      La fréquence de base est OK

      Par contre, il faut changer aussi l’année du compteur :

      // replace XXXXXXX with the servia of our device YY-XXXXXXX-ZZZ
      // If the serial XXXXXXX start with a 0 remove it.
      // Ex 20-0123456-987 -> replace XXXXXXX below with 123456
      TS_len_u8=Make_Radian_Master_req(txbuffer, 17 , XXXXXXX ); // le 17 est a replacer par l’année du compteur (représenté par YY sur la 1er ligne)

      De plus, pour le 1er test, met ton raspberry à 1 mètre de ton compteur d’eau. Tu pourras l’éloigner âpres le test concluant…

      Répondre
    1. Julien

      Bonjour,
      Je précisais juste qu’il fallait ajouter l’année du compteur (2 chiffres représenter par YY) en plus du numéro de série (représenté par les XXXXXXX).

      Un fois que tu reçois tes relevés de compteur, il n’y a plus rien à modifier…

      Répondre
  12. xavier

    Bonjour,
    Merci Julien,
    j’allais jeter l’éponge. J’ai positionné l’Everblu sur le compteur (il était à moins d’1m avant) et j’ai les litres qui sont apparus !!!!

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

 

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.