Hello,
Je vous propose de suivre votre consommation grâce aux données télé-info d’EDF recueilli. Je ne vais pas vous expliquer comment récupérer les données, mais plutôt vous aidez à les afficher dans Grafana dont voici un aperçu.
Prérequis :
- La récupération des données fonctionne, voir tuto http://www.magdiblog.fr/gpio/teleinfo-edf-suivi-conso-de-votre-compteur-electrique/
- Avoir monté une solution de supervision Grafana/Prometheus.
C’est partie pour l’intégration :
Installer le package xinetd qui va permettre d’afficher la page web :
apt update apt install xinetd
On place le fichier de conf xinetd dans le repertoire /etc/xinetd.d/
cd /etc/xinetd.d/ curl -k -O https://raw.githubusercontent.com/jbsky/jbsky/master/script/edf/etc/edf
Le fichier de config xinetd téléchargé :
[pastacode lang= »bash » user= »jbsky » repos= »jbsky » path_id= »/script/edf/etc/edf » revision= » » highlight= » » lines= » » provider= »github »/]
Ensuite, on place les 3 scripts suivants dans le répertoire /usr/local/bin/
cd /usr/local/bin/ curl -k -O https://raw.githubusercontent.com/jbsky/jbsky/master/script/edf/bin/edf-teleinfo curl -k -O https://raw.githubusercontent.com/jbsky/jbsky/master/script/edf/bin/edf-expose-metric curl -k -O https://raw.githubusercontent.com/jbsky/jbsky/master/script/edf/bin/httpwrapper chmod +x /usr/local/bin/{httpwrapper,edf-teleinfo,edf-expose-metric}
Le 1er qui est lancé par /etc/init.d/edf est en écoute sur le dev, ici à configurer par le votre, alimente au fur et à mesure que des infos sont lues dans un fichier /tmp.
[pastacode lang= »bash » user= »jbsky » repos= »jbsky » path_id= »/script/edf/bin/edf-teleinfo » revision= » » highlight= »3″ lines= » » provider= »github »/]
Le 2e script va afficher les métriques, si vous avez lancé le 1er script, celui-ci devrait afficher les données recueillies.
[pastacode lang= »bash » user= »jbsky » repos= »jbsky » path_id= »/script/edf/bin/edf-expose-metric » revision= » » highlight= » » lines= » » provider= »github »/]
Le dernier est le httpwrapper, en gros, ça va rajouter un header afin que n’importe quel navigateur considère les données du 2e script comme une page web.
[pastacode lang= »bash » user= »jbsky » repos= »jbsky » path_id= »/script/edf/bin/httpwrapper » revision= » » highlight= » » lines= » » provider= »github »/]
Pour la partie lancement de service de la collecte des infos dans le fichier tmp, il faut encore un script à placer dans /etc/init.d/
Malheureusement, même si j’ai un fichier systemd dans le dépot, je n’ai pas réussit à démarrer le service sans qu’il me ramène un code erreur à 2, si quelqu’un à la solution, je suis preneur, bien entendu.
cd /etc/init.d/ curl -k -O https://raw.githubusercontent.com/jbsky/jbsky/master/script/edf/init.d/edf-teleinfo chmod +x /etc/init.d/edf-teleinfo
[pastacode lang= »bash » user= »jbsky » repos= »jbsky » path_id= »/script/edf/init.d/edf-teleinfo » revision= » » highlight= » » lines= » » provider= »github »/]
Reste à démarrer l’histoire!
systemctl restart xinetd systemctl enable edf-teleinfo systemctl start edf-teleinfo
Logiquement, le port 10111 doit être en écoute :
lsof -i -n -P |grep 10111
doit ramener une ligne.
=> http://192.168.X.Y:10111
Attention, un test avec le navigateur est aussi nécessaire.
Si vos données s’affiche, y a plus qu’à configurer dans Prometheus, pas de difficulté apparente, ajouter ce qui suit dans le fichier prometheus.yml.
- job_name: 'edf' static_configs: - targets: ['192.168.X.Y:10111']
Étape finale, le board grafana est disponible à l’URL suivante :
https://grafana.com/grafana/dashboards/11675
Sources :
https://apawel.me/exporting-prometheus-metrics-with-bash-scripts/
Bonsoir,
Réussi à faire fonctionner ce tuto…merci a son auteur..
La galère à été de découvrir que prometheus n’accepte pas les majuscules dans les type de données (compteur, gauge) donc c’est à modifier dans le script n°2 (edf-expose-metric)
Pour le reste il faut suivre pas a pas et ça marche..
Jean-Claude
Effectivement, avec une version plus récente de prometheus 😉
Bonjour,
Je constate accessoirement que le numéro de mon compteur affiché sur le dashboard grafana n’est pas le code de mon point de Livraison (PDL)
Or le PDL est bien intégré dans mon Linky quand je fais défiler l’affichage..Je constate que le le PDL n’est pas contenu dans la trame teleinfo.
Comment peut t on afficher le PDL plutôt que numéro de série du compteur dans grafana?
Merci pour vos lumières !
C’est bon j’ai trouvé il suffit d’afficher une constante ( le n0 du PDL) dans le Querry.
Bonsoir,
Dans grafana le graph qui affiche les données de conso journalière.Ne donne pas la conso réelle de minuit a minuit.Elle donne la différence des compteurs sur 24 h glissantes.
Je souhaiterai pouvoir saisir l’augmentation de valeur du compteur de minuit a minuit ..c’est à dire une valeur fixe qui correspond à la consommation journalière.Mais je ne connais trop le promQL alors si vous pouviez aider.
Merci..
Hello,
En regardant un peu sur le net (https://groups.google.com/g/prometheus-developers/c/pul4HF4OS0E), il semblerait possible à Prometheus de lui faire des groupes de données de minuit à minuit sans pour autant que le dev garanti de l’efficacité de sa méthode.
Je n’ai plus l’appareil en fonctionnement depuis que j’ai le linky, je ne vais pas pouvoir vous aidez vraiment.
Cdt