Interface Wifi du compteur Gazpar

Tags: #<Tag:0x00007fe3179d0268>

Bonjour,

Cela fait plusieurs jours que je cherche des infos pour créer un module avec un esp wifi pour télé-relevé le conteur de gaz Gazpar

J’aimerais bien avoir une lecture pas aussi détaillée que Wifinfo car c’est une simple lecture d’impulsion mais au moins la Lecture de l’index

J’ai bien trouvé 2 ou 3 sites indiquant un montage, mais n’ayant que très peu de connaissances électronique, je ne me lance pas.

Serait il possible d’avoir un guidage pour le réaliser ou trouver un Tuto avec un circuit cohérent ?

Merci d’avance ,
Michel

Bonsoir,
Quelqu’un aurait il une idée ou une piste ?

J’ai bien trouvé 2 ou 3 sites indiquant un montage, mais n’ayant que très peu de connaissances électronique, je ne me lance pas.

Serait il possible d’avoir un guidage pour le réaliser ou trouver un Tuto avec un circuit cohérent ?

Merci d’avance ,
Michel

Bonjour
Personne ne relève le compteur Gazpar ? Un petit up?

Merci d’avance

Bonjour,

Je n’ai malheureusement pas de tuto. tout fait mais je peux te donner quelques pistes. Pour ma part, je récupère l’information à l’aide d’un Serveur W.e.s : https://www.cartelectronic.fr/content/8-serveur-wes
Bien sûr, on est bien loin des prix d’un module DIY, mais on me l’a donné alors je n’allais pas refuser. :innocent:
Tout comme toi j’avais cherché une solution pas chère et n’avais trouvé que peu d’info. sur le net. Cependant je pense que c’est tout à fait faisable. Voici un tuto. qui devrait t’interesser pour un compteur d’eau basé sur le même principe : https://faire-ca-soi-meme.fr/domotique/2016/09/21/domotiser-son-compteur-eau-avec-du-wifi/
Au niveau du montage, il n’y a rien de bien compliqué, c’est plutôt au niveau du code que ça se complique…
A mon avis l’idéal serait de récupérer l’impulsion sur le GPIO d’un ESP flashé ESPEasy/Tasmota pour pouvoir l’envoyer directement à Jeedom par broker MQTT.
Après je ne connais pas ton niveau en électronique/informatique…
Pour info. : le Gazpar émet une impulsion tous les 10dm³
J’ai même retrouvé la ref. de la prise qui va bien : http://www.compteur-energie.com/connecteur-jae-impulsion-gazpar.htm car il vaut mieux éviter les soudures bancales sur un compteur de GAZ (juste mon avis :grinning:)
Après, si ça te paraît un peu compliqué, il semblerait que quelqu’un ait réussi à faire fonctionner un script sur GRDF un peu comme pour le #plugin-sigri_linky si tu connais, tu trouveras les explications à la fin de ce sujet : https://www.jeedom.com/forum/viewtopic.php?f=149&t=32598

Bonne journée. :slightly_smiling_face:

Merci beaucoup Spine,
j’étais tombé aussi sur ce Tuto mais j’étais pas très sûr que cela correspondait. Mais comme tu m’orientes aussi dessus, je vais me mettre à l’électronique en testant.

Merci encore

Bonjour,
J’ai regardé cette méthode décrite sur l’ancien forum : script python qui va récupérer les relevés sur le site GRDF, grâce à la librairie python “Pygazpar”
Or, cette librairie nécessite Firefox et un “geckodriver” à installer sur la machine utilisée pour récupérer les infos.
Question : ça peut s’installer sur un Raspberry ? Comment ?
Merci de vos lumières !

Bonjour,

j’utilise un connecteur Wiser eer31140 relié à une entrée de mon Ecocompteur Legrand.
C’est du filaire, pas du sans-fil

@vincent60
désolé vincent, je n’ai pas compris : le wiser eer31140 est un émetteur d’impulsions sans fil
je ne comprend donc pas bien ton montage, où alors peut-être utilises-tu également le module wiser eer31120 qui est le récepteur associé à l’émetteur 31140 ?

D’ailleurs, le eer31140 étant un émetteur 868 MHz, serait-il compatible avec un RFPlayer ? Si quelqu’un a testé je suis preneur de l’info

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 !) : https://gist.github.com/kalon33/884caf2e2a610ed755753d72cc85042f
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 …

1 J'aime

Reste plus qu’à faire un plugins de cette belle solution :wink:

Petit complément à mon tuto : pygazpar scrute le fichier excel remonté du site GRDF entre les lignes 8 et 365 par défaut
Problème car le fichier contient (chez moi en tout cas), l’historique des 3 dernières années : le fichier fait donc plus de 800 lignes et donc au début je récupérais uniquement le relevé du 20/11/2018 …
Une modification est donc à faire dans le fichier client.py de la bibliothèque pygazpar

Editez le fichier :
cd /usr/local/lib/python3.7/dist-packages/pygazpar
sudo nano client.py

Rendez-vous en ligne 123
Remplacez :
for filename in file_list:
wb = load_workbook(filename = filename)
ws = wb[‹ Historique par jour ›]
for rownum in range(8, 365):
row = {}
if ws.cell(column=2, row=rownum).value != None:
row[PropertyNameEnum.DATE.value] = ws.cell(column=2, row=rownum).value
row[PropertyNameEnum.START_INDEX_M3.value] = ws.cell(column=3, row=rownum).value
row[PropertyNameEnum.END_INDEX_M3.value] = ws.cell(column=4, row=rownum).value
row[PropertyNameEnum.VOLUME_M3.value] = ws.cell(column=5, row=rownum).value
row[PropertyNameEnum.ENERGY_KWH.value] = ws.cell(column=6, row=rownum).value
row[PropertyNameEnum.CONVERTER_FACTOR.value] = ws.cell(column=7, row=rownum).value
row[PropertyNameEnum.LOCAL_TEMPERATURE.value] = ws.cell(column=8, row=rownum).value
row[PropertyNameEnum.TYPE.value] = ws.cell(column=9, row=rownum).value
row[PropertyNameEnum.TIMESTAMP.value] = data_timestamp
self.__data.append(row)

Par (respectez l’indentation) :

       for filename in file_list:
            wb = load_workbook(filename = filename)
            ws = wb['Historique par jour']
            rownum = len(ws['B'])
            row = {}
            row[PropertyNameEnum.DATE.value] = ws.cell(column=2, row=rownum).value                        
            row[PropertyNameEnum.START_INDEX_M3.value] = ws.cell(column=3, row=rownum).value
            row[PropertyNameEnum.END_INDEX_M3.value] = ws.cell(column=4, row=rownum).value
            row[PropertyNameEnum.VOLUME_M3.value] = ws.cell(column=5, row=rownum).value
            row[PropertyNameEnum.ENERGY_KWH.value] = ws.cell(column=6, row=rownum).value
            row[PropertyNameEnum.CONVERTER_FACTOR.value] = ws.cell(column=7, row=rownum).value
            row[PropertyNameEnum.LOCAL_TEMPERATURE.value] = ws.cell(column=8, row=rownum).value
            row[PropertyNameEnum.TYPE.value] = ws.cell(column=9, row=rownum).value
            row[PropertyNameEnum.TIMESTAMP.value] = data_timestamp
            self.__data.append(row)

Ainsi pygazpar ne récupérera que la dernière ligne du fichier, ce qui est plus judicieux

Et voilà …

Malheureusement PHB_fr ce n’est je crois pas si simple : la solution que je décris là est un « gros bidouillage » qui réalise un accès au site web GRDF de manière automatique, comme tu le ferais manuellement avec Firefox ou Internet explorer.
GRDF ne mettant pas à disposition d’API (pour le moment) qui permette d’accéder « proprement » à l’information (comme c’est le cas pour le Linky d’EDF), je ne crois pas qu’il soit possible de développer un vrai plugin
Enfin bon je ne m’y connais pas suffisamment, étant juste un « bidouilleur du dimanche » :grin:

@patoche94
j’ai du me tromper de référence Wiser, c’est ce connecteur que j’ai installé: https://download.schneider-electric.com/files?p_Doc_Ref=EER31130_Image&p_File_Type=rendition_288_png&default_image=DefaultProductImage.png
Je l’ai enfiché sur la prise du compteur gazpar et relié par un câble L120 (câble réseau) à une entrée compteur à impulsions

bonjour patoche94,
En attendant de faire le montage décrit dans https://github.com/xlyric/Gazpar-light
Je me suis décidé d’essayer ta solution.

j’ai réussi a installé en supprimant le " –U" de sudo pip3 install –U selenium
Malheureusement j’obtiens une erreur lorsque je lance sudo pip3 install paho.mqtt et comme mes connaissance sont (très) limité en python j’ai besoin de ton aide :slight_smile:

j’opbtiens

Could not find a version that satisfies the requirement paho.mqtt (from versions: )
No matching distribution found for paho.mqtt

Peux tu m’aider ?

Bonjour Scotty

Pour paho.mqtt désolé, j’ai fait une faute de frappe je crois (c’est un tiret et non un point) : essaye sudo pip3 install paho-mqtt

L’option -U de pip install spécifie uniquement d’installer la dernière version du package si une version est déjà installée (U = upgrade). Sans l’option, si une version plus ancienne du package est installée, l’upgrade n’est pas réalisé et un simple message indique que le package est déjà installé. Si aucune version n’est installée l’option n’est pas nécessaire. Mais c’est bizarre que tu aies eu un problème, as-tu bien respecté la syntaxe (U majuscule accolé au - et un espace après install et un espace avant selenium) ?

Super patoche94, merci ça marche :+1: pour le -u je pense que le tiret était pas le bon :crazy_face:

Merci encore je continue

Super … en espérant que t’arriveras au bout … courage et n’hésites pas si tu bloques encore (chez moi ça tourne sans problèmes - attention l’heure de mise à jour des données sur le site GRDF est très variable : parfois avant 12h mais aujourd’hui par exemple c’était après 18h … donc plutôt prévoir une récupération en fin de journée pour la conso de la veille

Patoche94, je coince lors du lancement du python

sudo python3 ~/script_gazpar.py

J’obtiens :
raceback (most recent call last): File "/home/pi/script_gazpar.py", line 17, in <module> client.update() File "/usr/local/lib/python3.5/dist-packages/pygazpar/client.py", line 58, in update driver = webdriver.Firefox(executable_path=self.__firefox_webdriver_executable, firefox_profile=profile, options=options, service_log_path=self.__tmp_directory + '/geckodriver.log') File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/firefox/webdriver.py", line 174, in __init__ keep_alive=True) File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__ self.start_session(capabilities, browser_profile) File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session response = self.execute(Command.NEW_SESSION, parameters) File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute self.error_handler.check_response(response) File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: invalid argument: can't kill an exited process

je suis vraiment pas bon :frowning:

Bonjour

Je pense que ton problème vient de ta version de python : tu as manifestement la 3.5 au vu des messages d’erreur, or, il faut la 3.7 comme indiqué dans mon Tuto (ce numéro de version nécessaire est de mémoire écrit dans le script client.py du package pygazpar)
Perso j’étais reparti d’une ré-installation complète de Raspbian sur mon Raspberry (version complète de Raspbian et non la version stretch)
Sinon pour upgrader la version de python de 3.5 en 3.7 là je ne sais pas t’aider hélas (autrement qu’en te conseillant de repartir à zéro) : je ne suis pas non plus un « pro » de la chose, et il faut bien avouer que la manip décrite dans mon Tuto est assez laborieuse !
Désolé de ne pouvoir faire plus

Ok, merci Patoche94. je vais donc repartir sur un raspberry autre que Jeedom, je pense que ce sera plus simple pour mettre à jour phyton
Je te tiens informé
Merci encore

Ps: ca veut quand même dire qu’il faut que je remette a niveaux le système de jeedom, une remise à neuf s’impose pour ne pas maintenir trop d’écart :slight_smile: