Tuto mis à jour le 25/3/2020 pour corriger les coquilles relevées par scotty92fr (merci !)
Bonjour,
Petit tuto pour ceux qui souhaitent utiliser le script python pygazpar déjà documenté sur l’ancien forum (pas facile à mettre en œuvre, j’y ai passé une paire de week end au risque de transformer Mme en furie … mais ça marche, donc, je vous en fait profiter).
Tuto réalisé pour une utilisation sur raspberry.
A noter que je suis parti d’une installation « propre » de raspbian (full version)
Pygazpar nécessite différents composants pour fonctionner :
- iceweasel (version de Firefox pour debian)
- bibliothèque python selenium (qui permet d’interagir avec Firefox)
- le « geckodriver » pour firefox (qui fait le lien entre les instructions venant de selenium et firefox)
- et bien sûr la bibliothèque python pygazpar
A noter que pygazpar nécessite impérativement de disposer de la version 3.7 de python et selenium version 3.141.0
Le geckodriver existe dans différentes versions et il faut arriver à trouver celle qui fonctionne avec tout le reste (y compris le hardware).
J’ai testé sur 2 raspberry : un modèle 2 type B et un 3 modèle B+, dans les 2 cas ça a fonctionné avec le geckodriver version 0.23.0-arm7hf
On y va :
En mode terminal sur le raspberry
- installer iceweasel : sudo apt-get install iceweasel
- installer selenium : sudo pip3 install -U selenium
- installer le geckodriver :
o le récupérer : sudo wget https://github.com/mozilla/geckodriver/releases/download/v0.23.0/geckodriver-v0.23.0-arm7hf.tar.gz
o décompresser l’archive : sudo tar -xf geckodriver-v0.23.0-arm7hf.tar.gz
o supprimer l’archive (optionnel) : sudo rm geckodriver-v0.23.0-arm7hf.tar.gz
o rendre geckodriver executable : sudo chmod a+x geckodriver
o copier geckodriver au bon endroit (si vous étiez ailleurs dans l’arborescence) : sudo mv geckodriver /usr/local/bin/
- installer pygazpar : sudo pip3 install pygazpar
Tous les prérequis sont alors en place.
Il faut ensuite créer le script python qui exploite pygazpar pour récupérer votre consommation quotidienne de gaz remontée par le compteur Gazpar sur le site GRDF.
Ce script est là (merci à l’auteur !) : Script pour récupérer les infos de Gazpar sur le site GRDF puis les envoyer à un broker MQTT · GitHub
N’importe où dans l’arborescence (moi j’ai mis dans /home/pi/Documents), vous créez un fichier : sudo nano toto.py (vous pouvez l’appeler autrement que toto bien sûr), et vous copiez le script dedans (copier/coller depuis le lien ci-dessus).
Modifications à apporter dans le script :
- ligne 5 : si vous installez le script sur le même raspberry que celui sur lequel tourne jeedom, laissez localhost, sinon, remplacer localhost par l’adresse IP sur votre réseau de la machine sur laquelle est jeedom (ex. 192.168.1.x)
- lignes 11 à 15, renseignez votre identifiant GRDF, le mot de passe associé (à la place de mdp_grdf), /usr/local/bin/geckodriver à la place de path/to/geckodriver
Important : toujours laisser les apostrophes
Il faut également installer sur le raspberry la bibliothèque paho-mqtt (qui va envoyer les valeurs récupérées vers jeedom) : sudo pip3 install paho-mqtt
Ensuite, sur jeedom, installer le plugin jMQTT (dispo gratuitement sur le market)
Vous l’activez (bien cocher la case « installer mosquito localement », elle l’est normalement par défaut).
Installez les dépendances.
Ajoutez un « broker » à partir de la page de commande du plugin (il apparaît dans la rubrique protocoles domotique)
Une fois le broker ajouté, vous devrez le passer en mode inclusion le temps que le script toto.py tourne (attention : il faudra éventuellement repasser en mode inclusion en cours de route car ce mode reste actif 2 minutes seulement, or le script tourne pendant 2 bonnes minutes).
Sur le raspberry où vous avez installé pygazpar et le script de lancement (toto.py), vous lancez, toujours en mode terminal : sudo python3 /home/pi/Documents/toto.py (changez si besoin le chemin vers le répertoire où vous avez enregistré toto.py)
Patientez ……… tout en surveillant que jMQTT sur jeedom est toujours en mode inclusion … et au bout de 2 à 3 minutes, un équipement « gazpar_payload » devrait apparaître dans le plugin, avec vos relevés de gaz que vous pourrez ensuite afficher sur le dashboard ou dans un design (ensuite plus besoin de toucher à rien dans le plugin, les relevés se mettront à jour tout seul dans jMQTT). Ne pas hésiter à relancer le mode inclusion en cours de route si l’équipement n’apparait pas, ou même relancer le script toto.py si ça ne marche pas du premier coup.
Dernière chose à faire : lancer automatiquement le script toto.py tous les jours pour récupérer le relevé au quotidien.
Personnellement, je le fais avec le plugin ssh_commander dans jeedom (mon jeedom est sur freebox delta, et le script tourne sur un raspberry), en envoyant une commande ssh vers le raspberry où est le script (envoyez un « sudo python3 /home/pi/Documents/toto.py » par ssh_commander vers le raspberry) et en réglant le CRON dans le plugin à 12h et à 16h tous les jours (les relevés remontent en cours de journée mais pas toujours avant 12h, donc 2 requêtes par jours semblent OK)
On doit pouvoir aussi lancer toto.py directement à partir du cron du raspberry (éditable par crontab -e)
Voilà …. Amusez-vous …
A noter que ceci fonctionnera tant que GRDF ne changera pas la structure de la page web sur laquelle on trouve les relevés. Si cela arrive, il faudra modifier pygazpar en conséquence …
Et en espérant que GRDF n’ajoute pas de captcha sur son site, car là, ce sera la fin …