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/