Je suis retombé récemment sur des optocoupleurs que j’avais acheté dans l’espoir de faire une lecture des trames de téléinfo qui sont mises à disposition sur mon compteur électrique EDF. Projet relativement simple quand couplé avec une Raspberry Pi, les tutoriels sont nombreux et détaillés (MagdiBlog, Montage teleinfo, Toute la domotique, documentation des informations reçues sur les trames, etc). Ma première tentative il y a plusieurs mois avait échoué pour raison inconnue, et j’avais remballé mon bazar car la pièce où se trouve le compteur n’est pas mon atelier, je peux pas laisser des câbles traîner en vrac.
Je m’y suis donc remis, et ai fini par réussir à le faire marcher. Je pense que ce qu’il me manquais à l’époque était la désactivation du port série prise par le kernel linux au démarrage comme port série virtuel (édition de /boot/bootcmd.txt et /etc/inittab voir ici). Voilà le matériel installé :
Du coup, plutôt que de ré-écrire un énième script pour extraire les informations, je suis aller chercher les projets libre qui font cela (et en particulier en python). J’ai trouve hallar/teleinfo, BmdOline/teleinfo, lhuet/teleinfo et j’ai fini par utiliser house-on-wire avec son script teleinfo_json qui me semblait pratique pour pouvoir reverser ces données dans autre chose.
J’avais donc les données brutes affichés dans un terminal, j’ai donc cherché un moyen de collecter ces données et pouvoir les exploiter. Au fil des lectures, je suis tombé sur un billet de Charles-Henri Hallard qui parlait de faire des POST HTTP sur le projet EmonCMS de OpenEnergyMonitor. Bingo. Ça me parait très adapté, un POST http pour envoyer mes données en JSON me paraissait un bon début à moindre frais. En plus, il y a du MQTT dedans pour la suite. Le tout en open source avec des gens qui font du open hardware, potentiel d’évolution inclus donc.
J’installe donc EmonCMS en auto-hébergement sur mon serveur maison. Et je colle un appel http (utilisant l’excellent httpie) dans un cron et je vois donc mes « inputs » se mettre à jour dans mon installation auto-hebergée de EmonCMS.
J’ai du ensuite configurer un « feed » pour enregistrer l’historique de cet « input » et hop, un graph des valeurs est visible.
On peut ensuite construire des dashboard en cliquant dans l’interface et c’est visuellement pas mal.
Lancé dans ces mesures, je me suis dit qu’un détecteur piezzo sur une Arduino permettrais d’enregistrer et superviser l’activité du chauffe eau. Un mini montage inspiré de Adafruit, une modification de AnalogInOutSerial du site Arduino, un montage « à l’arrache » de l’Arduino sur ma chaudière et un mini-script python dans un cron, et hop. L’installation est (pour l’instant) un peu sommaire, mais ça fonctionne.
Je garde en stock une amélioration du processus (un peu plus compliquée) : lire les données sans fil entre la télécommande et la base ou en sortie de la télécommande qui a une sorte de connecteur disponible.
EmonCMS semble être un projet sympathique (avec OpenEnergyMonitor ils ont des modules open-hardware pour alimenter les données), et leur application web est simple et de bon goût (je n’ai pas encore tout exploré ou bidouillé), mais c’est un bon début.
La suite :
- comprendre les mesures,
- faire une boucle de rétroaction sur nos habitudes de consommation énergétique,
- rendre tout cela un peu plus stable (arrêter le scotch),
- faire des rapports d’anomalies sur EmonCMS (accents, etc.),
- contribuer quelques idées à EmonCMS (identifier les appareils selon le type de courbe),
- renseigner et utiliser OpenBEM (Open Source Building Energy Model) qui vient préinstallé avec EmonCMS,
- faire marcher la mesure en alternant mode connecté et déconnecté (avec conservation de l’historique),
- remplacer la RaspberryPi par une carte basée Arduino qui peut probablement faire la même chose en consommant moins.
À la prochaine.
Bonjour,
« Lancé dans ces mesures, je me suis dit qu’un détecteur piezzo sur une Arduino permettrais d’enregistrer et superviser l’activité du chauffe eau. »
Pouvez vous en dire plus sur ce point ?
Merci
Eric
Eric, un détecteur piezzo est une resistance variable en fonction de la luminosité. Donc collé devant une led qui s’allume quand le chauffe eau s’allume, ca permet de détecter quand le chauffe eau est allumé. On récupère une valeur entre 0 et 128 sur le port serie de l’arduino et on enregistre cette valeur qu’on peut ensuite convertir en ON/OFF dans EmonCMS. Ca répond à votre question ?
Oui c’est très clair et c’est une bonne idée que je compte réutiliser.
Merci pour les infos.
Eric.
[…] à la mise en place d’une version prototype (à l’arrache) de deux sondes pour mesurer notr…, j’ai fini par trouver le temps de souder les deux montages (et du coup récupérer ma […]