Archives de catégorie : Non classé

Suivre les données télé-info de EDF dans Grafana

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/

Note sur git

Supprimer un fichier de l’historique :

 git filter-branch --index-filter 'git rm --cached --ignore-unmatch install ${FICHIER}' -f

Changer l’historique des commits

 git rebase -i HEAD~15
  • on tombe sur un menu avec une liste du plus ancien au plus nouveau commit, par exemple 15, remonte jusqu’à 15 commit. Il est possible de changer l’ordre, de fusionner (squash) des commits.
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
  • Enfin, on push :
git push origin +master