ssenart / home-assistant-gazpar

GrDF Gazpar meter integration for Home Assistant
MIT License
43 stars 9 forks source link

CAPTCHA WARNING !!! #41

Closed ssenart closed 6 months ago

ssenart commented 1 year ago

Since this morning, CAPTCHA capture is required.

I don't know any workaround for that.

ssenart commented 1 year ago

Hello all, to avoid GrDF setup a strong CAPTCHA, we all have to reduce the polling interval to once or twice a day maximum.

tgerardy commented 1 year ago

Hi, thank you for this integration. I have installed version: 1.3.5-alpha.1 and I have the CAPTCHA fail message when I check the sensor. I changed the scan_interval value from '8:00:00' to '12:00:00'. Not sure that's what I need to do but that's what I understand when you mention to reduce the polling interval. Is there anything else I should do to make it work. Thanks

errorMessages:

Thomas

ssenart commented 1 year ago

Yes, the error message is back since this afternoon.

I don't know how to get rid of it. Last time, the error disappeared by itself after few hours.

Pepeanuts commented 1 year ago

J'ai l'erreur Captcha depuis hier soir. C'est normal de ne plus avoir la card présente dans ce cas ?

ssenart commented 1 year ago

J'ai l'erreur Captcha depuis hier soir. C'est normal de ne plus avoir la card présente dans ce cas ?

Pour l'erreur CAPTCHA, je ne peux rien faire.

Pour la carte qui ne s'affiche pas dans ce cas, je peux regarder... peux-tu me donner la configuration de ta carte ?

Pepeanuts commented 1 year ago

J'ai l'erreur Captcha depuis hier soir. C'est normal de ne plus avoir la card présente dans ce cas ?

Pour l'erreur CAPTCHA, je ne peux rien faire.

Pour la carte qui ne s'affiche pas dans ce cas, je peux regarder... peux-tu me donner la configuration de ta carte ?

La conf la plus basique : type: custom:gazpar-card entity: sensor.gazpar title: GrDF pricePerKWh: '0.0844' showError: true showVersion: true

Si je mets une mauvaise entité j'ai bien un message d'erreur, sinon rien du tout. image image

Edit: Je viens de voir que mon dossier tmp est vide, ce qui expliquerait le problème ?

pafnow commented 1 year ago

we all have to reduce the polling interval to once or twice a day maximum.

How can we do that ?

Holborn13200 commented 1 year ago

J'ai l'erreur Captcha depuis hier soir. C'est normal de ne plus avoir la card présente dans ce cas ?

Hello, Même soucis de mon cotés la carte n'est plus affichée ..

ssenart commented 1 year ago

hello, oui il y a bien un bug d'affichage dans ce cas.

dcaman commented 1 year ago

J'ai l'erreur Captcha depuis hier soir. C'est normal de ne plus avoir la card présente dans ce cas ?

Pour l'erreur CAPTCHA, je ne peux rien faire.

Hello, Really, nothing to override the captcha ? Does it mean we won't be able to retrieve any data for ever ?

ioExpander commented 1 year ago

This new google ReCaptcha is really unfortunate, but it might protect GRDF against brute force login attempts. Thinking how we could solve this : Enedis has a dedicated access for businesses to download data, the HACS integration https://github.com/saniho/apiEnedis uses this technique. Basically they created a gateway https://enedisgateway.tech/ to request data from Enedis on our behalf. Any energy provider (for example EDF) uses the same technique to fetch your data from Enedis. Maybe there could be a similar way for fetching GRDF. For now, I know that EDF (my energy provider) can access my data from GRDF.

Edit : This looks like a possible solution https://www.grdf.fr/entreprises/grdf-et-vous-au-quotidien/consommations-gaz/donnees-consommation-energie-projets-grdf

Edit again : This really seems doable. All we need is a French Company and a KBIS to sign in this form. https://sites.grdf.fr/web/portail-api-grdf-adict/je-souhaite-souscrire-aux-services-grdf-adict I don't have a company, but I'm currently creating one. So if there is enough support, I could try and register in a few weeks. @ssenart what do you think ?

ssenart commented 1 year ago

Thanks for your interest. But currently, I don't have enough time to investigate in such a project. I did all that as a hobby.

Setting up a server requires a lot more work. It need to be hosted somewhere and it costs money. Then, we have to deal with user management, security, load management, and all the support once the solution is live.

It is a real commitment over time.

ioExpander commented 1 year ago

I really love this integration so I'm willing to help. I've played a little with GRDF API documentation, I can probably build a gateway and host it. Indeed this is a lot more work and commitment than the current solution. But at least it is doable. So if there is enough support it might be ok : ideally we should have a group of 2 or 3 people to share work and support in order to build a long term solution. There are more than 1k people using the Enedis gateway. If we have approx 500 people using pygazpar (@ssenart do you have stats ?), we can probably find a couple of folks willing and able to help or some donations. So if anyone is interested in such a solution, please reach out :)

IMHO, providing secure APIs for people to monitor and optimize their energy consumption as they wish should be a public service. I might try to reach out to the dev of the Enedis Gateway to see if he can share some of his findings.

ziirish commented 1 year ago

Hi, I might be able to provide some resources to host such gateway. I already provide (free) hosting support for a couple OpenSource projects though I never advertised that. I can also probably help develop the gateway itself. Let me know if you are interested.

dcaman commented 1 year ago

Thanks ssenart, IoExpander and ziirish. It's good to remind us that basic users, as I am, forgot too often that behind usefull apps are smart coder doing all their best for everybody. My knowledge is poor compared to your skills but if you're looking to 'beta tester' then I can propose a little of my available time.

Maybe a stupid question: can't enedis gateway been extended to GRDF access and propose straight away both data collections ?

ssenart commented 1 year ago

I really appreciate your enthousiasm. With your support, I'm ok to set this up. I already own a company that may be used to carry the GrDF contract. First, I have to study the risks of doing that against creating a specific one.

ioExpander commented 1 year ago

Hi. I've registered on the discord server the folks from myElectricaldata (formerly known as enedisgateway). I'll try and inquire about some of those questions :

ioExpander commented 1 year ago

hi there. Some quick updates :

mdeweerd commented 1 year ago

(EDITÉ) Pour info, une alternative est au point pour la récupération des données sous HA. Cela fonctionne correctement pour moi. Discussion sur hacf.fr.

Falconpage commented 1 year ago

Hello @ssenart ,

Thanks for this great integration and for PyGazpar. How can we put manualy the data until the problem is solve ?

After login to Grdf account I've got the datas using this : https://monespace.grdf.fr/api/e-conso/pce/consommation/informatives?dateDebut=2022-12-01&dateFin=2023-01-29&pceList%5B%5D=xxxxxxxx Where can I put them to replace the automatic download ?

ssenart commented 1 year ago

Hello @ssenart ,

Thanks for this great integration and for PyGazpar. How can we put manualy the data until the problem is solve ?

After login to Grdf account I've got the datas using this : https://monespace.grdf.fr/api/e-conso/pce/consommation/informatives?dateDebut=2022-12-01&dateFin=2023-01-29&pceList%5B%5D=xxxxxxxx Where can I put them to replace the automatic download ?

Sorry, there's no mean to switch in manual mode using pygazpar or the integration.

However, directly in HA, you can manually set any value on your corresponding gas energy entity using the "Service" tab in "Development tools" menu.

pviolero commented 1 year ago

hello, Until a better solution, we can load the data (downloaded manualy from GRDF) into influxdb, and to create an home assistant sensor based on the measurement stored in influxdb

mdeweerd commented 1 year ago

Have a look at https://github.com/mdeweerd/MetersToHA - you can run it such that you open a browser window where you can resolve the captcha interactively and get the data added to HA once it is fetched.

You can also run it in the background, and hope that there is not need for captcha resolution - which works better when you install undetected-chromedriver .

fthiery commented 1 year ago

Honnêtement je préférerais me débarasser de cette intégration web et récupérer directement le signal radio 169 Mhz envoyé par le compteur (avec un dongle USB RTL-SDR), c'est censé utiliser le protocole Wize; je pense avoir réussi à choper un signal mais de là à le décoder....

image

https://triq.org/iqs/

Basé sur la norme Européenne EN13757-4 (Wireless M-Bus), Wize est un protocole ouvert particulièrement bien adapté pour communiquer de manière bidirectionnelle et à très longue distance avec des objets profondemment enfouis (“deep indoor”). Bien que cette solution soit moins connue que beaucoup d’alternatives, 10 million d'objets Wize sont déployés à ce jour !

Quelqu'un aurait d'autres idées pour récupérer cette satanée consommation ?

ziirish commented 1 year ago

méthode alternative de collecte directement via le compteur : https://github.com/reefab/homeassistant-gazpar-zigbee

mdeweerd commented 1 year ago

le protocole Wize ... mais de là à le décoder....

Bon courage: même si on pourait obtenir l'échange en numérique c'est chiffré en AES - https://www.wize-alliance.com/Downloads/Technical .

fthiery commented 1 year ago

le protocole Wize ... mais de là à le décoder....

Bon courage: même si on pourait obtenir l'échange en numérique c'est chiffré en AES - https://www.wize-alliance.com/Downloads/Technical .

Bien vu, merci ! L'alternative de ziirish déchire

philippemezzadri commented 1 year ago

Il y a encore plus précis qu'avec un interrupteur zigbee. A mon sens, ce ne doit pas être fiable et on doit perdre un paquet d'impulsions.

Avec un ESPHome connecté au compteur, on a la conso en temps réel. Voir ici par exemple : https://forum.hacf.fr/t/recuperation-telesignalisation-gazpar . C'est ce que je fais depuis un an. Mon compteur en m3 sous HA ne dévie pas du compteur physique.

Mon problème, c'est récupérer le coefficient grdf (ration m3/kWh) afin d'avoir une évaluation précise de la consommation énergétique. Seules les intégrations basées sur le site grdf permettent de l'avoir. Je recherche une API, pour l'instant sans succès.

fthiery commented 1 year ago

Puisque c'est basé sur le même principe (contact sec), tant que le réseau zigbee n'est pas instable ça devrait le faire (il faut dire que le fait d'avoir un bouton ikea en rab sous le coude a pesé dans la balance) ! Je viens de mettre en place, je comparerai avec les télérelevés GRDF.

ssenart commented 1 year ago

J'utilise cette solution (avec un bouton sonoff) depuis 2 mois et ça fonctionne très bien. Mon compteur (donc le bouton) est au bout du jardin et ça arrive que je perde le signal lorsque je ferme mes volets. Le bouton Sonoff veut toujours s'appairer avec le coordinateur qui est dans la maison plutôt qu'un interrupteur Zigbee à l'extérieur ou même le Lixee du Linky (juste à côté de lui). Du coup, je resynchronise le compteur tous les mois.

Gonioul commented 1 year ago

Nouveau,

ZiPulses, par le créateur de ZLinky Pour Gazpar ou compteur d'eau.

https://twitter.com/faire_soi_meme/ https://lixee.fr/produits/40-zipulses-3770014375155.html

Compteur impulsions compatible avec GAZPAR (connecteur non fourni) et autres compteurs d'eau à impulsions ILS
Enregistre les impulsions sous forme d'index (Pas de pertes d'informations sur transmission radio)
Paramétrage d'un coefficient multiplicateur ou diviseur
Contient un capteur de température (pour la prévention du gel)
pbda commented 1 year ago

ZiPulses, par le créateur de ZLinky Pour Gazpar ou compteur d'eau.

J'ai des doutes. Mon compteur de gaz c'est environ 100000 impulsions par an. Je doute qu'une pile bouton, même une grosse CR2540, tienne longtemps. Il y a possibilité d'une alimentation extérieure mais ça manque d'information: quelle consommation ? quelle est la consommation du propre du convertisseur ?

mdeweerd commented 1 year ago

Je doute qu'une pile bouton, même une grosse CR2540, tienne longtemps.

Une vanne thermostatique avec une puce Zigbee de première génération tient environ 24 mois avec une consommation d'environ 1200mAh de 2 piles AA dont la moitié est consommé pour les déplacement de moteur.

Une pile CR2540 c'est plus de 600mAh à 3V. Le ZiPulses ne bouge pas de moteur et si c'est bien fait, se réveille sur interruption au moment de l'impulse et maintient l'heure de façon énergétiquement efficace. Une telle pile doit donc à minima durer 2 ans. J'ai d'autres objets qui utilisent une CR2540 - je dirai que 2 ans c'est la durée de vie minimum.

hirooekimae commented 1 year ago

Pour information, le repatcha utilisé par GRDF est illégal au sens RGPD du terme. En effet, et c'est indiqué dans les conditions d'utilisation du service telles qu'elles sont diffusées par Google, l'utilisation du recaptcha doit faire l'objet de la collecte d'un consentement de la part de l'utilisateur. Or cela n'a pas été fait. J'ai fait une réclamation auprès de GRDF aujourd'hui et je vous invite à faire de même de votre côté. Des sociétés ont déjà été condamnées par la CNIL sur ce sujet. Je vous laisse lire l'article ci-dessous.

https://mon-dpo-externe.com/la-solution-google-recaptcha-est-elle-illegale/#de_la_necessite_de_recolter_un_consentement_pour_utiliser_le_service_recaptcha_de_google

Bref, le recaptcha devrait disparaître du site de GRDF prochainement, ce qui permettra à l'intégration de fonctionner à nouveau.

ioExpander commented 1 year ago

Si tel est bien le cas, IMHO il est probable que GRDF mette simplement à jour le site pour récupérer le consentement utilisateur qui va bien. La recherche d'une solution alternative, qui passerait par les APIs de GRDF, paraît toujours pertinente.

hirooekimae commented 1 year ago

Oui la solution API est bien sûr la plus pertinente. Mais mettre en place un consentement est compliqué et je n'y crois pas une seconde.

Holborn13200 commented 1 year ago

Oui la solution API est bien sûr la plus pertinente. Mais mettre en place un consentement est compliqué et je n'y crois pas une seconde.

Wait and see..

fsutter commented 1 year ago

Bonjour, comment peut-on contacter GRDF pour se plaindre de l'utilisation de CAPTCHA? Et pourquoi ne proposent-ils pas d'API pour les particuliers? Merci

Coroebus commented 1 year ago

Il semble que GRDF ne se préoccupe pas du tout de nous et en ce qui me concerne mon compteur est à 300m donc impossible de le faire en zigbee... J'ai peut-être une piste avec Ecolyo qui semble avoir l'accès aux données GRDF car j'ai pu y ajouter mon compte et en 3 minutes les données étaient là. Je leur ai écrit à ce sujet, on verra leur réponse. Ici un article qui détail un peu le système : https://linuxfr.org/news/ecolyo-pour-gerer-ses-consommations-d-eau-et-d-energie

Il y a un Git : https://forge.grandlyon.com/web-et-numerique/factory/llle_project/ecolyo et aussi des connecteurs : https://forge.grandlyon.com/web-et-numerique/factory/llle_project/ecolyo

Je fouille... ;)

Holborn13200 commented 1 year ago

Il semble que GRDF ne se préoccupe pas du tout de nous et en ce qui me concerne mon compteur est à 300m donc impossible de le faire en zigbee... J'ai peut-être une piste avec Ecolyo qui semble avoir l'accès aux données GRDF car j'ai pu y ajouter mon compte et en 3 minutes les données étaient là. Je leur ai écrit à ce sujet, on verra leur réponse. Ici un article qui détail un peu le système : https://linuxfr.org/news/ecolyo-pour-gerer-ses-consommations-d-eau-et-d-energie

Il y a un Git : https://forge.grandlyon.com/web-et-numerique/factory/llle_project/ecolyo et aussi des connecteurs : https://forge.grandlyon.com/web-et-numerique/factory/llle_project/ecolyo

Je fouille... ;)

Triste, toujours pas de solutions .. Je récupère l'intégralité de mes consommations sauf .. le gaz. Mais effectivement continuons de fouiller ! Merci pour ton débriefing :)

Coroebus commented 1 year ago

J'ai eu la réponse d'Ecolyo : Bonjour, Nous n'avons malheureusement pas d'API pour intégrer les données dans une solution domotique. Mais nous notons l'idée qui pourrait être une future évolution d'Ecolyo . Bonne continuation sur Ecolyo ! L'equipe Ecolyo

Ceci dit maintenant que je relève en temps réel mon eau et mon electricité, je trouve un peu plus frustrant qu'avant de devoir attendre 2 à 3 jours pour le gaz. Il faut que je trouve comment faire mon relevé directement sur le gazpar mais à 300m c'est un peu délicat.

K3kouse commented 6 months ago

Bonjour,

Pour info le Captcha a disparu de la page d'identification ! L'identification a changé et se fait sur deux pages (une première avec l'ID puis une seconde avec le MDP mais 0 Captcha) J'ai tenté de relancer le module mais sans succès :

(du au changement de l'identification sur le site ?)

Est-ce possible de mettre le module à jour ? Il est plus simple et concis que MeterToHA. Ce serait super cool de récupérer celui-ci.

Merci beaucoup, bonne journée à tous ;)

pafnow commented 6 months ago

+1

Falconpage commented 6 months ago

Bonne nouvelle, en effet plus simple et efficace ce développement de @ssenart +1

maelgangloff commented 6 months ago

Il semble que la gestion du processus d'authentification des utilisateurs de GRDF ait été confiée au prestataire Okta. L'entreprise publie les intégration de ses services dans de nombreux languages (dont Python : https://github.com/okta/okta-sdk-python). J'avais développé un wrapper Node.Js de l'API GRDF. Je vais essayer de réanimer ma lib. Si je fais une découverte, je vous en ferai part ;)

EDIT : Voici un début d'intégration, si cela peut vous aider : https://github.com/maelgangloff/grdf-api/blob/9e379aaa3155f91e756d4a283a4d85c7e738e014/src/index.ts#L323

fsutter commented 6 months ago

Je vais essayer de faire la même chose en Python. J'ai trouvé du code en Python mais il utilise un API_TOKEN alors que nous on a email + password.

ssenart commented 6 months ago

Merci maelgangloff, je me suis inspiré de ta lib pour rétablir l'authentification PyGazpar qui est utilisé ici.

Je viens de publier une version de test de l'intégration 1.3.5-alpha.3 qui semble tenir la route.

Pepeanuts commented 6 months ago

Merci pour le retour de l'addon !

Effectivement ça semble fonctionner, il manque des données mais je crois que GrDF a des soucis en ce moment de ce côté là.

Holborn13200 commented 6 months ago

Malheureusement ne fonctionne pas pour moi. J'ai le message suivant dans les logs :

WARNING (SyncWorker_10) [homeassistant.helpers.frame] Detected that custom integration 'gazpar' calls async_create_task from a thread at custom_components/gazpar/sensor.py, line 153: sensor.async_schedule_update_ha_state(True), please report it to the author of the 'gazpar' custom integration

Pepeanuts commented 6 months ago

J'ai aussi cette erreur mais les données arrivent bien le lendemain (en partie) Screenshot_20240506-000436