GAZPAR/GRDF - MetersToHA compatible exigence CAPTCHA

@hayvan Le problème apparait pour Veolia alors qu’ici on traite plutôt le gaz.

Cela dit, j’avais le même comportement dans un environnement test ou la version (oprtion ‹ git_version ›) était positionné à un tag git pour un test.
Après correction,

Pour être certain de la version du code python, merci de verifier une ligne comme ceci dans la trace:

MetersToHA Python GIT version: 154f476 on Thu Dec 21 18:19:38 2023 +0100

Cela dit, si tout fonctionne en local, je vois sur un serveur de test qu’il y a effectivement un captcha chez Veolia également qui ne semble pas gêner le login, mais à creuser (je ne le reproduis pas en local).

EDIT:

  • Sur mon PC et un vieux NUC je n’ai pas de problème - sans une VM sous proxmox, je reproduis le problème.
  • Je pense que le problème de captcha n’apparait plus au deuxième essai effectué dans le script;
  • Par contre, la fonciton de CHAT semble poser problème - elle demande des ressources grphiques et dans le fichier « chromedriver.log » je constate divers messages d’erreurs autour de cela. Notamment:
    Warning: vkCreateInstance: Found no drivers!
    

Warning: vkCreateInstance failed with VK_ERROR_INCOMPATIBLE_DRIVER
at CheckVkSuccessImpl (…/…/third_party/dawn/src/dawn/native/vulkan/VulkanError.cpp:88)
at CreateVkInstance (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:458)
at Initialize (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:344)
at Create (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:266)
at operator() (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:521)

Warning: Couldn’t load Vulkan. Searched /usr/lib/chromium/libvk_swiftshader.so, /usr/lib/chromium/libvk_swiftshader.so, /usr/lib/chromium/libvk_swiftshader.so, libvk_swiftshader.so.
at operator() (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:299)
at Initialize (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:310)
at Create (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:266)
at operator() (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:521)


Désactiver la fonction chat peut-être une solution, mais je n'ai actuellement pas trouvé d'astuce simple pour le faire.

Bonjour,
Meme soucis… pas de solution du coup?
Edit : Aprés plusieurs tentative ca a bien fonctionné…

Une solution possible serait probablement de ne pas utiliser Alpine mais Debian pour le Add-On.

Ok! J’utilise appdeamon et metertoha…

Pour Veolia, pur passer l’addon à debian, il faudra implémenter un remplacement partiel de bashio (scripts fourni par HA) pour extraire la config - je préfères éviter cela.

Reste d’autre options à tester:

  • Rétrograder la version d’Alpine (pas sûr que cela aide);
  • Trouver un moyen pour inhiber le chat (qui semble poser le problème).

bonjour
j ai tout bien installé
avec comme resultats qui sont presente homeassitant/historique_gazpar.json :

2023-12-28T06:00:00+01:00","journeeGaziere":"2023-12-27","indexDebut":831,"indexFin":840,"volumeBrutConsomme":9.0099999999999998,"energieConsomme":101,"pcs":null,"volumeConverti":9,"pta":null,"natureReleve":"Informative Journalier","qualificationReleve":"Mesur\u00e9","status":null,"coeffConversion":11.26031,"frequenceReleve":null,"temperature":null}],"frequence":null}}

j ai aussi ça dans homeassistant/meters2ha_stat.json :

{
  "grdf": {
    "state": 732,
    "attributes": {
      "date_time": "2023-12-28T06:00:00+01:00",
      "unit_of_measurement": "kWh",
      "device_class": "energy",
      "state_class": "total_increasing",
      "last_check": "2023-12-30T00:00:19.949366+00:00"
    },
    "m3": 840
  }
}

malheureusement les donnée ne remonte pas dans Energie
{
« grdf »: {
« state »: 732,
« attributes »: {
« date_time »: « 2023-12-28T06:00:00+01:00 »,
« unit_of_measurement »: « kWh »,
« device_class »: « energy »,
« state_class »: « total_increasing »,
« last_check »: « 2023-12-30T00:00:19.949366+00:00 »
},
« m3 »: 840
}
} debutant je ne sais pas interpreter les logs :

Sun Dec 31 18:50:11 CET 2023
python3  MetersToHA/apps/meters_to_ha/meters_to_ha.py  -l /config --debug --screenshot --keep-output -c "/m2h_config.json" --grdf -r
DEBUG MODE ACTIVATED                                                       [e[33mWWe[0m] only use '--debug' for troubleshooting
Using /usr/bin/python3 Version 3.11.6                                      --Loading configuration file : /m2h_config.json                              --[e[32mOKe[0m] 
Start loading configuration                                                [--]
    "veolia" = "False"                                                     [e[32mOKe[0m] 
    "veolia_login" = "None"                                                [e[32mOKe[0m] 
    "veolia_password" = "None"                                             [e[32mOKe[0m] 
    "veolia_contract" = "None"                                             [e[32mOKe[0m] 
    "grdf" = "True"                                                        [e[32mOKe[0m] 
    "grdf_login" = "xx@xx.fr"                                      [e[32mOKe[0m] 
    "grdf_password" = "************"                                       [e[32mOKe[0m] 
    "grdf_pce" = "xxxxxxxxxxxxxxxxxxxxx"                                          [e[32mOKe[0m] 
    "screenshot" = "True"                                                  [e[32mOKe[0m] 
    "skip_download" = "False"                                              [e[32mOKe[0m] 
    "keep_output" = "True"                                                 [e[32mOKe[0m] 
"geckodriver" not found in config file, using default value                [e[33mWWe[0m] 
    "geckodriver" = "/MetersToHA/apps/meters_to_ha/geckodriver"            [e[32mOKe[0m] 
"firefox" not found in config file, using default value                    [e[33mWWe[0m] 
    "firefox" = "/MetersToHA/apps/meters_to_ha/firefox"                    [e[32mOKe[0m] 
"chromium" not found in config file, using default value                   [e[33mWWe[0m] 
    "chromium" = "/usr/bin/chromium"                                       [e[32mOKe[0m] 
"chromedriver" not found in config file, using default value               [e[33mWWe[0m] 
    "chromedriver" = "/usr/bin/chromedriver"                               [e[32mOKe[0m] 
    "chrome_version" = "None"                                              [e[32mOKe[0m] 
    "timeout" = "30"                                                       [e[32mOKe[0m] 
    "download_folder" = "/config/"                                         [e[32mOKe[0m] 
    "logs_folder" = "/config/"                                             [e[32mOKe[0m] 
    "2captcha_token" = "********************************"                  [e[32mOKe[0m] 
    "capmonster_token" = "None"                                            [e[32mOKe[0m] 
    "captchaai_token" = "None"                                             [e[32mOKe[0m] 
    "log_level" = "debug"                                                  [e[32mOKe[0m] 
End loading configuration                                                  [e[32mOKe[0m] 
Start Loading Home Assistant configuration                                 [--]
    "ha_server" = "http://supervisor/core"                                 [e[32mOKe[0m] 
    "ha_token" = "****************************************************************************************************************"[e[32mOKe[0m] 
    "veolia_contract" = "None"                                             [e[32mOKe[0m] 
    "timeout" = "30"                                                       [e[32mOKe[0m] 
    "insecure" = "False"                                                   [e[32mOKe[0m] 
    "state_file" = "/config/meters2ha_state.json"                          [e[32mOKe[0m] 
End loading Home Assistant configuration                                   [e[32mOKe[0m] 
Check availability of "geckodriver"+"firefox" or "chromedriver"+"chromium" [~~e[0m] 
Found chromium binary                                                      [e[32mOKe[0m] 
[--e[0m]  Check Home Assistant connectivity                                          [e[32mOKe[0m] 
Try starting Chromium.                                                     [--] Add nix root user options.
Start virtual display (Chromium).                                          [e[31mEEe[0m] Xephyr program closed. command: ['Xephyr', '-br', '-screen', '1280x1024x24', '-displayfd', '4', '-resizeable'] stderr: b'\nXephyr cannot open host display. Is DISPLAY set?\n'
Close Browser                                                              [e[32mOKe[0m] 
Close Display                                                              [e[32mOKe[0m] 
Ended with error                                                           [e[31mEEe[0m] 
Traceback (most recent call last):
  File "//MetersToHA/apps/meters_to_ha/meters_to_ha.py", line 3336, in doWork
    crawler.init()
  File "//MetersToHA/apps/meters_to_ha/meters_to_ha.py", line 518, in init
    self.init_chromium()
  File "//MetersToHA/apps/meters_to_ha/meters_to_ha.py", line 733, in init_chromium
    self.__display.start()
  File "/usr/lib/python3.11/site-packages/pyvirtualdisplay/display.py", line 72, in start
    self._obj.start()
  File "/usr/lib/python3.11/site-packages/pyvirtualdisplay/abstractdisplay.py", line 149, in start
    self._start1_has_displayfd()
  File "/usr/lib/python3.11/site-packages/pyvirtualdisplay/abstractdisplay.py", line 197, in _start1_has_displayfd
    self.display = int(self._wait_for_pipe_text(rfd))
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pyvirtualdisplay/abstractdisplay.py", line 297, in _wait_for_pipe_text
    raise XStartError(
pyvirtualdisplay.abstractdisplay.XStartError: Xephyr program closed. command: ['Xephyr', '-br', '-screen', '1280x1024x24', '-displayfd', '4', '-resizeable'] stderr: b'\nXephyr cannot open host display. Is DISPLAY set?\n'

Done Sun Dec 31 18:50:12 CET 2023

j ai dans Energie :
image
et 0 mesure dans mon tableau
pouvez vous m aider a trouver la solution? merci

je pense que le probleme bien de chromium mais je ne sais pas comment le resoudre resoudre ?

Check availability of "geckodriver"+"firefox" or "chromedriver"+"chromium" [~~e[0m] 
Found chromium binary                                                      [e[32mOKe[0m] 
[--e[0m]  Check Home Assistant connectivity                                          [e[32mOKe[0m] 
Try starting Chromium.                                                     [--] Add nix root user options.
Start virtual display (Chromium).                                          [e[31mEEe[0m] Xephyr program closed. command: ['Xephyr', '-br', '-screen', '1280x1024x24', '-displayfd', '4', '-resizeable'] stderr: b'\nXephyr cannot open host display. Is DISPLAY set?\n'
Close Browser                                                              [e[32mOKe[0m] 
Close Display                                                              [e[32mOKe[0m] 
Ended with error                                                           [e[31mEEe[0m] 

Bonjour,
Comment faire pour avoir le sensor qui reste en « dur » même si on redémarre home assistant?

@ damolc
Le fait que le sensor ne soit pas une vraie entité n’est pas un problème en soi: les informations apparaissent bien dans le panneau énergie pour moi et pour d’autres, mais il faut avoir 2 mises à jour différentes pour avoir la première consommation enregistrée car HA fait la différence entre les valeurs de compteur représentant le total.

Je pense avoir mentionné plus haut des possibilités pour faire une vraie entité, avec les templates de sensors ou autre - mais je ne l’ai pas testé.

@damolc

Concernant le problème du navigateur: je pense que l’option debug a été activée (et non seulement le niveau des traces à debug). Dans ce cas, il faut indiquer une adresse pour l’affichage (un serveur X). Il y a des mentions dans la documentation sur github.

Le plus simple: désactiver « debug » - je pense qu’il n’y a pas besoin de faire cela.

@neoback45

J’ai tenté de détecter le redémarrage de HA par l’événement dédié mais cela ne fonctionne pas car je suppose que l’addon est démarré après.
J’ai déjà pensé à ceci:

  • l’ajout automatique d’autres événements de type « grdf_event_restart » (c.a.d., quand le process écoute EVENT, il écoute aussi EVENT_restart). Cet événement déclencherai meters_to_ha avec l’option --skip-download.
  • Au démarrage de l’addon, celui-ci realise automatiquement l’exécution avec --skip-download .

Je n’ai pas de date de réalisation - 2024 me gâte déjà avec un serveur sous Proxmox 8 qui a été redémarré et qui plante au redémarrage … dans un datacenter …

Meilleur vœux! Et plein de bonne chose pour 2024!
Oui effectivement pas gênant mais c’est que j’affiche la valeur sur mon Dashboard et quand j’effectue une mise à jour Home Assistant alors l’entité devient jaune car valeur perdu mais elle reste dans énergie oui.
Je cherche juste un moyen de la garder au redémarrage….

merci pour ton aide
effectivement il fallait un peu de patience!

Bonjour à tous,
Juste pour vous dire que home assistant 2024 fonctionne bien avec meterstoHA!
Vous pouvez donc faire la mise à jour

hello, @le_top

merci pour ton travail, je suis chez un autre fournisseur (gaz de strasbourg) il n’y a pas de captcha juste un login et je peux télécharger un xls avec un résumé de mes consos à - 2 jours.

Aurais tu des conseils pour adapter ton add-on dans mon cas?

merci

Bonjour,

J’ai moi aussi ce message, sans réussir à trouver le problème.
J’ai le niveau de logs à debug mais pas l’option « display » (qui je crois remplace l’ancienne option debug mentionnée).

Lorsque je passe en niveau warning, j’ai cette erreur:

2024-02-09 19:00:39,040 : -- : Try starting Chromium. Add nix root user options.
2024-02-09 19:00:43,030 : OK : Start virtual display (Chromium).
2024-02-09 19:00:43,061 : ~~ :  LOG LEVEL warning:30:20 None
2024-02-09 19:02:47,460 : EE : Start the browser Message: session not created: DevToolsActivePort file doesn't exist
2024-02-09 19:02:47,518 : OK : Close Browser
2024-02-09 19:02:47,554 : OK : Close Display
2024-02-09 19:02:47,555 : EE :  Ended with error : // re-run with '--display' option if you can

La même config utilisée avec le docker sous WSL fonctionne très bien et je récupère bien mes données GRDF.

Je suis preneur si vous avez des idées.

Merci et bonne soirée à tous!

Bonjour à tous,

J’ai un problème similaire.
Incapable de dire depuis quand le service ne fonctionne plus (ou mal).

Voila les logs (mode debug) que j’obtiens au déclenchement de l’événement call_grdf :


2024-02-14 16:15:02,114 : OK : Using /usr/bin/python3 Version 3.11.6Loading configuration file : /m2h_config.json 
2024-02-14 16:15:02,118 : -- :  Start loading configuration
2024-02-14 16:15:02,119 : OK : "veolia" = "False" 
2024-02-14 16:15:02,121 : OK : "veolia_login" = "None" 
2024-02-14 16:15:02,122 : OK : "veolia_password" = "None" 
2024-02-14 16:15:02,123 : OK : "veolia_contract" = "None" 
2024-02-14 16:15:02,124 : OK : "grdf" = "True" 
2024-02-14 16:15:02,126 : OK : "grdf_login" = "###########@gmail.com" 
2024-02-14 16:15:02,127 : OK : "grdf_password" = "************" 
2024-02-14 16:15:02,128 : OK : "grdf_pce" = "###############" 
2024-02-14 16:15:02,128 : OK : "screenshot" = "True" 
2024-02-14 16:15:02,129 : OK : "skip_download" = "False" 
2024-02-14 16:15:02,130 : OK : "keep_output" = "True" 
2024-02-14 16:15:02,131 : WW :  "geckodriver" not found in config file, using default value
2024-02-14 16:15:02,131 : OK : "geckodriver" = "/MetersToHA/apps/meters_to_ha/geckodriver" 
2024-02-14 16:15:02,132 : WW :  "firefox" not found in config file, using default value
2024-02-14 16:15:02,133 : OK : "firefox" = "/MetersToHA/apps/meters_to_ha/firefox" 
2024-02-14 16:15:02,133 : WW :  "chromium" not found in config file, using default value
2024-02-14 16:15:02,134 : OK : "chromium" = "/usr/bin/chromium" 
2024-02-14 16:15:02,135 : WW :  "chromedriver" not found in config file, using default value
2024-02-14 16:15:02,135 : OK : "chromedriver" = "/usr/bin/chromedriver" 
2024-02-14 16:15:02,136 : OK : "chrome_version" = "None" 
2024-02-14 16:15:02,136 : OK : "timeout" = "30" 
2024-02-14 16:15:02,137 : OK : "download_folder" = "/config/" 
2024-02-14 16:15:02,137 : OK : "logs_folder" = "/config/" 
2024-02-14 16:15:02,138 : OK : "2captcha_token" = "********************************" 
2024-02-14 16:15:02,138 : OK : "capmonster_token" = "None" 
2024-02-14 16:15:02,139 : OK : "captchaai_token" = "None" 
2024-02-14 16:15:02,139 : OK : "log_level" = "debug" 
2024-02-14 16:15:02,140 : OK : End loading configuration 
2024-02-14 16:15:02,140 : -- :  Start Loading Home Assistant configuration
2024-02-14 16:15:02,141 : OK : "ha_server" = "http://supervisor/core" 
2024-02-14 16:15:02,141 : OK : "ha_token" = "****************************************************************************************************************" 
2024-02-14 16:15:02,145 : OK : "veolia_contract" = "None" 
2024-02-14 16:15:02,146 : OK : "timeout" = "30" 
2024-02-14 16:15:02,147 : OK : "insecure" = "False" 
2024-02-14 16:15:02,148 : OK : "state_file" = "/config/meters2ha_state.json" 
2024-02-14 16:15:02,149 : OK : End loading Home Assistant configuration 
2024-02-14 16:15:02,150 : ~~ :  Check availability of "geckodriver"+"firefox" or "chromedriver"+"chromium"
2024-02-14 16:15:02,151 : OK :  Found chromium binary
2024-02-14 16:15:02,197 : OK : Check Home Assistant connectivity 
2024-02-14 16:15:02,198 : -- : Try starting Chromium. Add nix root user options.
2024-02-14 16:15:02,199 : -- :  Use /config/.config/google-chrome for Google Chrome user data.
2024-02-14 16:15:03,364 : OK : Start virtual display (Chromium). 
2024-02-14 16:15:03,366 : ~~ :  LOG LEVEL debug:10:20 ['--verbose']
2024-02-14 16:15:09,193 : OK : Start the browser 
2024-02-14 16:15:09,194 : OK :  
2024-02-14 16:15:13,000 : OK : Connexion au site GRDF 
2024-02-14 16:15:43,070 : WW : Waiting for Password Traceback (most recent call last): -   File "//MetersToHA/apps/meters_to_ha/meters_to_ha.py", line 3375, in doWork -     gazpar_file = crawler.get_gazpar_file() -                   ^^^^^^^^^^^^^^^^^^^^^^^^^ -   File "//MetersToHA/apps/meters_to_ha/meters_to_ha.py", line 1757, in get_gazpar_file -     el_password = self.__wait.until( -                   ^^^^^^^^^^^^^^^^^^ -   File "/usr/lib/python3.11/site-packages/selenium/webdriver/support/wait.py", line 105, in until -     raise TimeoutException(message, screen, stacktrace) - selenium.common.exceptions.TimeoutException: Message: failed, page timeout (timeout=30) -
2024-02-14 16:15:43,071 : WW :  Encountered error -> Retrying once
2024-02-14 16:15:46,497 : OK : Connexion au site GRDF 
2024-02-14 16:16:16,634 : EE : Waiting for Password Message: failed, page timeout (timeout=30)
2024-02-14 16:16:16,939 : OK : Close Browser 
2024-02-14 16:16:16,948 : OK : Close Display 
2024-02-14 16:16:16,949 : EE :  Ended with error : // re-run with '--display' option if you can

Ma version de Home Assistant sur pc Generic x86-64

  • Core : 2024.2.1
  • Supervisor : 2024.01.1
  • Operating System : 11.5
  • Interface utilisateur : 20240207.1
  • MetersToHA : Current version: dev

Un éclairage de quelqu’un ?
Merci d’avance.

Bonjour Meterstoha inoperant depuis le 18/04 a priori le site grdf est de nouveau sans captcha ! vous avez le meme pb ? une idee sur que faire ? Merci

salut je vient de remetre gazparmqtt et ca fonctionne pas,

Oui, j’ai aussi poster … c’est pas que sans captcha…login procedure à changé en plus avec des champs nommé différent. J’ai refait m2ha mais c’est encore en version dev

J’ai fait un PR vers MetersToHa avec les changements et l’option de télécharger dans HA

Si je comprend bien pour le moment le relevé ne fonctionne plus avec meterstoha ?