Veolia-idf SEDIF - suivi consommation eau potable

Bonjour, petit problème depuis quelques jours de « file download timeout »

2023-03-03 10:36:09,420 : OK : Wait for button Telechargement
2023-03-03 10:36:09,462 : ~~ : Wait before clicking (10.0s)
2023-03-03 10:36:36,405 : OK : Click on button Telechargement
2023-03-03 10:37:07,750 : EE : Wait for end of download to /config/appdaemon/apps/veolia-idf/historique_jours_litres.csv
Get & Save ‹ /config/appdaemon/apps/veolia-idf/error.png › File download timeout
2023-03-03 10:37:07,946 : OK : Close Browser
2023-03-03 10:37:07,950 : OK : Close Display
2023-03-03 10:37:07,951 : OK :
2023-03-03 10:37:07,951 : EE : Ended with error : // re-run the program with ‹ –debug ›

Une petite idée de comment résoudre celà svp?
Merci bcp

Je viens de vérifier si puor moi cela fonctionne: oui, c’est ok.

En principe (selon la trace) il y a une image sous ‹ /config/appdaemon/apps/veolia-idf/error.png › qui peut éventuellement donner une idée.
L’est le contenu du navigateur après l’expiration du clic sur le bouton téléchargement.

Après — pour aller plus loin — cela se corse un peu. Il faut avoir un serveur X accessible depuis la machine ou l’on exécute veolia-idf. J’en touche un peu plus dans le projet dérivé « MetersToHA » .

A priori il y a eu 30 secondes d’attente entre le clic sur téléchargement est l’expiration ce qui devrait quand même être suffisant.

Regardons déjà error.png.

Bonjour le_top,
le fichier error.png ne donne rien, c’est juste une copie d’ecran du website veolia qui donne mes données, rien lié à l’erreur.
Je me suis en DEBUG avec un DISPLAY, et tout fonctionne bien, les données sont bien récupérées ainsi que le fichier .csv.
mais dès que je ne suis plus en DEBUG j’ai cette erreur de timeout.
Après quelques recherches sur l’erreur il semble que celà vienne de « webdriver ».
par exemple:

Je ne suis pas développeur donc çà ne me parle pas beaucoup, mais je voulais reporter ce problème.
Si vous avez une idée pour le résoudre, idées bienvenues.
Merci.

Le fait que cela fonctionne en mode débogue, c’est déjà « un début ».

error.png - Même si cela n’affiche pas d’erreur, étant une capture de l’écran au moment du "timeout’ cela donne quand même un indice. D’acprès ce que je comprend de la description, c’est une page graphique ou l’on voit le bouton « Télécharger la période », et non une image ou l’on voit le contenu d’un CSV.

Ce n’est pas en soi un problème de ChromeDriver qui entraine un timeout. Je me demande s’il n’y pas un problème d’écriture du fichier csv. Le script conclus à un timeout s’il ne voit pas l’apparition du fichier à l’endroit attendu qui peut être défini dans la config et qui devrait donc s’écrire à l’endroit « /config/appdaemon/apps/veolia-idf/historique_jours_litres.csv » . Je suppose que ce fichier ne se trouve pas à cet endroit (sinon, le script a un problème pour « le voir »).

S’il y a un fichier « chromedriver.log » (dans mon cas « /config/chromedriver »), on y trouve une trace de la recherche du bouton Télécharger la période (avec « charger la p » pour éviter les accents):

[1678495581.991][INFO]: [dea49767b4d98367e93f43619d223fc6] COMMAND FindElement {
   "using": "xpath",
   "value": "//button[contains(text(),\"charger la p\")]"
}

Suivi d’une réponse:

[1678495582.065][INFO]: [dea49767b4d98367e93f43619d223fc6] RESPONSE FindElement {
   "element-6066-11e4-a52e-4f735466cecf": "d9f452ae-e0a4-40db-b03c-bf9063a16f56"
}

Ou l’identifiant sert plus tard dans une demande de clic (sur ce bouton pour télécharger, qui mène dans mon cas rapidement à la fin du script (divers ok):

[1678495592.232][INFO]: [dea49767b4d98367e93f43619d223fc6] COMMAND ClickElement {
   "id": "d9f452ae-e0a4-40db-b03c-bf9063a16f56"
}
[1678495592.232][INFO]: [dea49767b4d98367e93f43619d223fc6] COMMAND ClickElement {
   "id": "d9f452ae-e0a4-40db-b03c-bf9063a16f56"
}
[1678495592.232][INFO]: Waiting for pending navigations...
[1678495592.234][INFO]: Done waiting for pending navigations. Status: ok
[1678495592.504][INFO]: Waiting for pending navigations...
[1678495592.530][INFO]: Done waiting for pending navigations. Status: ok
[1678495592.530][INFO]: [dea49767b4d98367e93f43619d223fc6] RESPONSE ClickElement
[1678495592.702][INFO]: [dea49767b4d98367e93f43619d223fc6] COMMAND Quit {
}
[1678495592.805][INFO]: [dea49767b4d98367e93f43619d223fc6] RESPONSE Quit

Il y a peut-être une indication de problème d’écriture.

Personnellement j’ai défini "download_folder": "/config/csv",, avec un répertoire /config/csv qui existe.

Et voici ma configuration dans ‹ apps.yaml › ou keep_csv: true permet de garder le fichier csv après exécution du script:

veolia_idf:
  module: veolia_idf
  class: VeoliaIDF
  log_folder: /config
  config_file: /config/veolia-idf/config.json
  keep_csv: true
  outfile: /config/appdaemon/apps/test.log
  errfile: /config/appdaemon/apps/testerr.log

Il est possible de définir et augmenter la valeur « timeout » dans le fichier de configuration « …json », je suggère aussi de définer le download_folder à un autre endroit pour vérifier si ce n’est donc pas un pb d’écriture:

   [...]
    "download_folder": "/config",
    "type": "ha",
    "timeout": "90"
}

J’ai testé de mon côté sans mettre le download_folder, et le script fini bien en laissant le fichier sous /config/appdaemon/apps/veolia_idf/historique_jours_litres.csv .

merci le_top.
Ton commentaire sur le error.png est exact, je ne vois pas le contenu du .csv.
J’ai paramétré comme toi le répertoire download du csv, en « /config/csv » qui existe de même que le keep_csv: true et le reste également. J’ai augmenté à 90 la valeur du timeout.
Résultat: en mode DEBUG, tout fonctionne, le fichier csv avec les données est bien présent au bon endroit, mais en mode normal, même erreur.
A noter que j’ai ceci dans le veolia_script_err.log, mais ce n’est qu’un warning:

/config/appdaemon/apps/veolia-idf/veolia-idf-domoticz.py:302: DeprecationWarning: firefox_profile has been deprecated, please use an Options object
fp = webdriver.FirefoxProfile()

/config/appdaemon/apps/veolia-idf/veolia-idf-domoticz.py:303: DeprecationWarning: Setting a profile has been deprecated. Please use the set_preference and install_addons methods
opts.profile = fp

/config/appdaemon/apps/veolia-idf/veolia-idf-domoticz.py:329: DeprecationWarning: service_log_path has been deprecated, please pass in a Service object
self.__browser = webdriver.Firefox(
/config/appdaemon/apps/veolia-idf/veolia-idf-domoticz.py:410: DeprecationWarning: executable_path has been deprecated, please pass in a Service object
self.__browser = webdriver.Chrome(

Je sèche… je peux t’envoyer le log complet si nécessaire mais rien d’anormal a priori.
A noter que je suis sous Synology en VMM avec les dernières versions de tout.

Je ne vois pas ce qui entraine la différence en mode débug.

Les warnings concernant les options sont effectivement pas critiques.

Toutefois, en évoluant veolia-idf vers MetersToHA, j’ai modifié la façon de passer les paramètres. MetersToHA c’est à la base veolia-idf pour y ajouter GRDF.
Je viens de voir que c’est là que j’ai ajouté la trace « chromedriver.log » - la configuration n’est pas présente dans veolia-idf.

Je propose de faire un essai avec MetersToHA.

Le fichier de configuration json peut être maintenu.

Voici ma configuration dans ‹ apps.yaml › pour veolia-idf et MetersToHA (pour veolia):

veolia_idf:
  module: veolia_idf
  class: VeoliaIDF
  # event_name: call_veolia
  # log: veolia
  # optional
  log_folder: /config
  # optional (Default: "config.json" in directory of `veolia-idf-domoticz.py`)
  config_file: /config/veolia-idf/config.json
  # optional (Default: "<REALMODULESCRIPTPATH>/veolia-idf-domoticz.py")
  # script: /config/veolia-idf/veolia-idf-domoticz.py
  # optional (Default: false) - add --keep_csv option
  keep_csv: true
  # optional (Default: false) - add --debug option
  # debug_veolia: true
  # DISPLAY: "192.168.1.1:0"
  # optional (Default: None) - Set file for stdout of script call
  outfile: /config/appdaemon/apps/test.log
  # optional (Default: None) - Set file for stderr of script call
  errfile: /config/appdaemon/apps/testerr.log

veolia:
  module: meters_to_ha_appdaemon
  class: MetersToHA
  event_name: call_veolia2
  extra_opts: [--screenshot,--veolia]
  # log: veolia
  # optional
  log_folder: /config
  # optional (Default: "config.json" in directory of `veolia-idf-domoticz.py`)
  config_file: /config/veolia-idf/config.json
  # optional (Default: "<REALMODULESCRIPTPATH>/veolia-idf-domoticz.py")
  # script: /config/veolia-idf/veolia-idf-domoticz.py
  # optional (Default: false) - add --keep_output option
  keep_output: true
  # optional (Default:  false) - add --debug option
  #debug: true
  #DISPLAY: "10.33.2.69:0"
  # optional (Default: None) - Set file for stdout of script call
  outfile: /config/appdaemon/apps/testv2.log
  # optional (Default: None) - Set extra options for script call
  errfile: /config/appdaemon/apps/testv2err.log

J’attire l’attention sur ces deux lignes:

  event_name: call_veolia2
  extra_opts: [--screenshot,--veolia]

La première c’est pour déclencher MetersToHA sur l’événement call_veolia2 . Comme j’ai les deux configs en place, il faut éviter de lancer les 2 en même temps.

Puis « extra_opts » comporte « –veolia » que seul les données veolia sont obtenus et non grdf. En principe l’absence de configuration GRDF fans le fichier JSON est suffisant - mais j’ai les deux configs, et je récupére GRDF et Veolia à des heures différentes.

Je ne peux pas garantir que cela fonctionnera mieux, mais au moins le passage des options est amélioré, et le fichier « chromedriver.log » devrait aussi faire son apparence.

Bonjour le_top,
J’ai basculé en MetersToHA, mais exactement la même erreur. Aucun problème en mode DEBUG çà fonctionne mais en mode normal même erreur, avec ceci:
Traceback (most recent call last):
File « /config/appdaemon/apps/MetersToHA/meters_to_ha.py », line 2935, in doWork
crawler.init()
File « /config/appdaemon/apps/MetersToHA/meters_to_ha.py », line 489, in init
raise Exception(« No browser could be started with selenium »)
Exception: No browser could be started with selenium

ceci étant dans mon service.log j’ai ceci:
2023-03-17 09:36:46,998 : WW : « geckodriver » not found in config file, using default value
2023-03-17 09:36:46,998 : OK : « geckodriver » = « /config/appdaemon/apps/MetersToHA/geckodriver »
2023-03-17 09:36:46,998 : WW : « firefox » not found in config file, using default value
2023-03-17 09:36:46,998 : OK : « firefox » = « /config/appdaemon/apps/MetersToHA/firefox »
2023-03-17 09:36:46,998 : WW : « chromium » not found in config file, using default value
2023-03-17 09:36:46,998 : OK : « chromium » = « /usr/bin/chromium-browser »
2023-03-17 09:36:46,998 : WW : « chromedriver » not found in config file, using default value
2023-03-17 09:36:46,998 : OK : « chromedriver » = « /usr/bin/chromedriver »
2023-03-17 09:36:46,998 : OK : « chrome_version » = « None »

Sachant que j’utilise un PC qui se connecte à mon NAS Synology où homeassistant est installé en VM. Peut être faut il indiquer quelque part où le fichier firefox.exe sur mon PC se trouve?

Merci bcp!

En rajoutant le chemin de firefox.exe, çà se connecte au site Veolia, mais le problème persiste pour le timeout:

Traceback (most recent call last):
File « /config/appdaemon/apps/MetersToHA/meters_to_ha.py », line 2968, in doWork
veolia_idf_file = crawler.get_veolia_idf_file()
File « /config/appdaemon/apps/MetersToHA/meters_to_ha.py », line 1367, in get_veolia_idf_file
raise RuntimeError(« File download timeout »)
RuntimeError: File download timeout

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File « /config/appdaemon/apps/MetersToHA/meters_to_ha.py », line 2979, in doWork
veolia_idf_file = crawler.get_veolia_idf_file()
File « /config/appdaemon/apps/MetersToHA/meters_to_ha.py », line 1215, in get_veolia_idf_file
el_password = self.__wait.until(
File « /usr/lib/python3.10/site-packages/selenium/webdriver/support/wait.py », line 95, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: failed, page timeout (timeout=60)

Sauf erreur, ta configuration est:

Synology NAS < VM avec HAOS < AddOn AppDaemon (donc docker) avec tous les packets tel qu’indiqué dans la documentation < Configuration AppDaemon < Lancement par déclenchement d’événement .

En mode débogue, le processus va tenter d’ouvrir l’interface graphique du navigateur sur serveur X « externe » et non sur un serveur X avec écran virtuel « interne » (c.a.d. au sein du conteneur de AppDaemon). Le navigateur tourne toujours dans la VM HAOS, mais le PC (avec un serveur X actif) sert d’affichage. Puis, il y a un peu plus d’information de débogue.

Aucun navigateur du PC n’intervient dans ce processus là dans cette configuration.

Sous AppDaemon c’est chromium qui est utilisé car en principe il y ni firefox ni geckodriver. Avec MetersToHA il devrait y avoir un fichier chromedriver.log qqpart - pas sûr qu’il va nous éclairer, mais c’est possible. Avec le chemin « firefox », le processus s’arrête au moment ou il attend le champs du mot de passe.

Il est vrai qua dans mon fichier config.json j’ai "chromium": "/usr/bin/chromium-browser",, Dans le principe cela ne devrait pas être nécessaire, mais suite à test cela semble tout de même le cas.
Donc en attendant je suggère d’ajouter cette ligne et de mon côté je vais corriger la détection automatique du chemin pour chromium-browser.

Sinon, on est d’accord que le mode débogue qui fonctionne c’est toujours depuis AppDaemon, en ajoutant l’option --debug et en définissant le DISPLAY qui pointe vers l’IP du PC ou il y a un Serveur X qui tourne.

merci le_top. Ma configuration est bien celle indiquée.
J’ai bien trouvé le fichier chromedriver.log. Très long, mais je remarque notamment:
Au début:
[1679051909.813][INFO]: Starting ChromeDriver 110.0.5481.177 (f34f7ab2d4ca4ad498ef42aeba4f4eb2c1392d63-refs/branch-heads/5481@{#1239}) on port 54655

[1679051909.814][INFO]: Please see ChromeDriver - WebDriver for Chrome - Security Considerations for suggestions on keeping ChromeDriver safe.

[1679051909.824][SEVERE]: bind() failed: Address not available (99)

[1679051909.824][INFO]: listen on IPv6 failed with error ERR_ADDRESS_INVALID

et après apparemment plusieurs tentatives de ce type:

[1679052092.754][INFO]: Waiting for pending navigations…
[1679052092.754][INFO]: Done waiting for pending navigations. Status: ok
[1679052092.759][INFO]: Waiting for pending navigations…
[1679052092.760][INFO]: Done waiting for pending navigations. Status: ok
[1679052092.760][INFO]: [383ff1044de5b58bf41c2373d07477e3] RESPONSE FindElements [ ]
[1679052093.262][INFO]: [383ff1044de5b58bf41c2373d07477e3] COMMAND FindElements {
« using »: « css selector »,
« value »: « input[type="password"] »

Je partage ma trace par pastebin (login & mot de passe remplacé par x):

Cela permets peut-être de trouver une différence importante.

Nos versions de chromedriver (et chromium) sont différentes (vous: 110.xxx, moi: 109.xxx)- ce qui peut être un élément impactant. Je peux essayer de mettre à jour de mon côté en reinitialisant AppDaemon. Vous pouvez aussi installer le paquet « undetected-chromedriver » (à ajouter aux paquets python à installer pour AppDaemon, dans sa config, dans la liste python_packages). Cela a un effet dans MetersToHA.
Cela peut entrainer la nécessiter d’ajouter l’option --chrome-version et son argument aux options de lancement dans la config apps.yaml (110 pour vous à priori - c’est la version principale de chromium):
extra_opts: [–screenshot,–veolia,–chrome-version,« 110 »] .
(Je n’ai pas testé undetected-chromedriver sous AppDaemon, un des effets c’est que cela télécharge une version de chromdriver par lui-même sans utiliser celui installé).

L’erreur IPv6 je l’ai aussi car il n’y a pas de IPv6, mais il y a un port ouvert en IPV4.

Je vous suggère en priorité de comparer les traces chromedriver.log .

J’ai pu reproduire le problème initial.

Le fichier est bien téléchargé, mais je pense qu’il n’est pas enregistré à cause de nouveaux contraintes de sécurité.

Du coup j’ai vu qu’il était disponible autrement et j’ai pu concevoir une solution.

Avant cela j’ai réglé plusieurs autres points sensibles au délais et j’ai ajouté qqs attentes supplémentaires, une détection si l’utilisateur est déjà identifié, … .

Du coup, il faut effective passer à MetersToHA car je ne l’ai pas porté à veolia-idf.
(La partie du code qui règle le problème initial est à recopier avec quelque modifs dans le code veolia_idf)

Bravo le_top, bonne nouvelle que tu aies pu reproduire le problème, maintenant tout fonctionne parfaitement!
Je vais pouvoir maintenant tenter de mettre celà dans InfluxDB / Grafana.
Merci encore pour la correction.

1 « J'aime »

Ce serait bien d’étendre MetersToHA pour le mettre direment dans InfluxDB / Grafana.
Ajout de classe à l’instar de « HomeAssistantInjector » et l’utiliser comme « Injector » quand « server_type » vaut InfluxDB par exemple.

La mise au point est possible en téléchargéant une fois avec --keep-output, et puis lancer le script à peu près comme ceci (mon exemple sous Windows/cygwin avec les données GRDF):

/cygdrive/c/Python310/pythonw.exe \
  apps/meters_to_ha/meters_to_ha.py -c ./win*json --grdf -r --keep-output --debug --screenshot 
 --local-config \
 --skip-download

Bonjour à tous,

J’ai suivi l’installation avec AD puis HACS mais je n’ai aucun sensors de créé

*Sur AD, j’ai bien VeoliaIDF en state idle

*Sur * /config/appdaemon/apps/veolia-idf/error png,

*Sur apps.yaml

veolia_idf:
module: veolia_idf
class: VeoliaIDF
config_file: /config/veolia-idf /config.json

*Les LOGS :
2023-03-27 08:55:30,516 : WW : Check script version is up to date New version « Add domoticz new basic auth support »(v2.1) available. Check : Release Add domoticz new basic auth support · s0nik42/veolia-idf · GitHub

2023-03-27 08:55:30,537 : OK : Loading configuration file : /config/veolia-idf /config.json
2023-03-27 08:55:30,557 : – : Start loading veolia configuration
2023-03-27 08:55:30,558 : OK : « veolia_login » = « @"
2023-03-27 08:55:30,559 : OK : « veolia_password » = "
"
2023-03-27 08:55:30,560 : OK : « veolia_contract » = "
 »
2023-03-27 08:55:30,562 : WW : « geckodriver » = « /config/appdaemon/apps/veolia-idf/geckodriver » param is not found in config file, using default value
2023-03-27 08:55:30,563 : WW : « firefox » = « /config/appdaemon/apps/veolia-idf/firefox » param is not found in config file, using default value
2023-03-27 08:55:30,564 : OK : « chromium » = « /usr/bin/chromium-browser »
2023-03-27 08:55:30,565 : WW : « chromedriver » = « /usr/bin/chromedriver » param is not found in config file, using default value
2023-03-27 08:55:30,566 : OK : « timeout » = « 30 »
2023-03-27 08:55:30,567 : WW : « download_folder » = « /config/appdaemon/apps/veolia-idf/ » param is not found in config file, using default value
2023-03-27 08:55:30,568 : OK : « logs_folder » = « /config/appdaemon/apps/veolia-idf/ »
2023-03-27 08:55:30,570 : OK : End loading veolia configuration
2023-03-27 08:55:30,571 : – : Start Loading Home Assistant configuration
2023-03-27 08:55:30,574 : OK : « ha_server » = « https://.duckdns.org:8123"
2023-03-27 08:55:30,575 : OK : « ha_token » = "
***********************************************************************************************************************************************************************"
2023-03-27 08:55:30,576 : OK : « veolia_contract » = "
 »
2023-03-27 08:55:30,577 : OK : « timeout » = « 30 »
2023-03-27 08:55:30,578 : WW : « download_folder » = « /config/appdaemon/apps/veolia-idf/ » param is not found in config file, using default value
2023-03-27 08:55:30,578 : OK : End loading Home Assistant configuration
2023-03-27 08:55:30,580 : OK : Check download location integrity
2023-03-27 08:55:30,581 : OK : Remove temporary download file
2023-03-27 08:55:30,583 : OK : Check availability of « geckodriver »+« firefox » or « chromedriver »+« chromium »
2023-03-27 08:55:31,040 : OK : Check Home Assistant connectivity
2023-03-27 08:55:32,097 : OK : Start virtual display
2023-03-27 08:55:32,317 : ~~ : Setup Firefox profile
2023-03-27 08:55:32,626 : OK : Start virtual display (chromium)
2023-03-27 08:56:04,049 : OK : Start the browser
2023-03-27 08:56:14,511 : OK : Connexion au site Veolia Eau Ile de France
2023-03-27 08:56:22,920 : OK : Waiting for Password
2023-03-27 08:56:23,150 : OK : Waiting for Email
2023-03-27 08:56:25,672 : OK : Type Email
2023-03-27 08:56:26,412 : OK : Type Password
2023-03-27 08:56:26,660 : OK : Waiting for submit button
2023-03-27 08:56:26,661 : ~~ : Wait before clicking (1.0s)
2023-03-27 08:56:28,609 : OK : Click on submit button
2023-03-27 08:56:42,774 : OK : Wait for missing lightning-spinner
2023-03-27 08:57:15,710 : OK : Wait for MENU contrats or historique
2023-03-27 08:57:24,396 : OK : Click on menu : HISTORIQUE
2023-03-27 08:58:18,908 : OK : Wait for historique menu
2023-03-27 08:58:18,981 : ~~ : Wait before clicking (4.0s)
2023-03-27 08:58:29,086 : OK : Click on historique menu
2023-03-27 08:58:40,342 : OK : Wait for button Litres
2023-03-27 08:58:40,343 : ~~ : Wait before clicking (2.0s)
2023-03-27 08:58:48,174 : OK : Click on button Litres
2023-03-27 08:58:51,476 : OK : Wait for button Jours
2023-03-27 08:58:51,477 : ~~ : Wait before clicking (2.0s)
2023-03-27 08:58:56,292 : OK : Click on button Jours
2023-03-27 08:58:56,472 : OK : Wait for button Telechargement
2023-03-27 08:58:56,474 : ~~ : Wait before clicking (10.0s)
2023-03-27 08:59:10,040 : OK : Click on button Telechargement
2023-03-27 08:59:45,683 : WW : Wait for end of download to /config/appdaemon/apps/veolia-idf/historique_jours_litres.csvGet & Save ‹ /config/appdaemon/apps/veolia-idf/error.png › Encountered errorFile download timeout// → Retrying once
2023-03-27 09:00:00,788 : OK : Connexion au site Veolia Eau Ile de France
2023-03-27 09:00:31,058 : EE : Waiting for Password Message: failed, page timeout (timeout=30)
2023-03-27 09:00:31,832 : OK : Close Browser
2023-03-27 09:00:31,856 : OK : Close Display
2023-03-27 09:00:31,859 : OK :
2023-03-27 09:00:31,861 : EE : Ended with error : // re-run the program with ‹ –debug › option

J’ai du loupé quelque chose… pour avoir mes sensors

C’est le même problème que @hautfr que j’ai pu reproduire après une mise à jour de mon installation AppDaemon. L’origine du problème se trouve à priori dans l’évolution de Chrome .

J’ai implémenté le « contournement » dans MetersToHa - c’est une version évolué de VeoliaIDF ou j’ai ajouté la lecture de valeurs de GRDF, tout en améliorant le code et en évitant des fonctions « dépréciés ».

Voir ci-dessus pour qqs instructions: Veolia-idf SEDIF - suivi consommation eau potable - #94 par le_top . Le configuration peut quasiment être ré-utilisé (Installation AppDaemon, fichier de configuration json).

Bonjour,
A moi de vous appeler à l’aide. HaOS est installé sur un ordinateur dédié.
Depuis hier, je tente d’installer MeterstoHA.
Voici ce que j’ai comme erreur dans mes logs:

2023-03-28 02:23:01,389 : OK : Check Home Assistant connectivity
2023-03-28 02:23:01,389 : EE : No browser could be started with selenium
2023-03-28 02:23:01,389 : OK : Close Browser
2023-03-28 02:23:01,389 : EE : Close Display Ended with error : // re-run the program with ‹ –debug › option

Je vois que j’ai un probleme avec selenium, mais je ne trouve pas.

Merci pour vos éclairages

Je suppose que vous passez aussi par le module complémentaire (AddOn) « AppDaemon ».

L’erreur suggère que Selenium n’a pas trouvé de navigateur/pilote valide. Ou bien vous avez activé --debug sans avoir défini un « DISPLAY » valide/accessible.

Il est important que la configuration d’AppDaemon comprend tous les paquets et modules comme indiqué ici%3A-,init_commands,-%3A%20%5B%5D%0Apython_packages).

En principe il y a d’autres étapes du processus avant l’affichage de cet erreur qui vérifient que le navigateur et son pilote sont bien présents. Donc normalement c’est ok, mais par sécurité on vérifie quand même.

Quelques extraits de ma trace:

# Cette liste permet de vérifier les chemins configurés pour chromium/firefox

 WW :  "geckodriver" not found in config file, using default value
 OK : "geckodriver" = "/config/appdaemon/apps/MetersToHA/geckodriver"
 WW :  "firefox" not found in config file, using default value
 OK : "firefox" = "/config/appdaemon/apps/MetersToHA/firefox"
 WW :  "chromium" not found in config file, using default value
 OK : "chromium" = "/usr/bin/chromium-browser"
 WW :  "chromedriver" not found in config file, using default value
 OK : "chromedriver" = "/usr/bin/chromedriver"

# Plus loin, dans la trace
# Il faut que "OK" soit indiqué ici est qu'il n'y ait pas d'erreur qui suit.
 OK : Check availability of "geckodriver"+"firefox" or "chromedriver"+"chromium"

S’il y a ‹ no valid pair of executables found › il est clair que chromium n’est pas installée.

Merci pour la réponse rapide, c’est « le top » :smiley:
Je vous confirme que je passe par AppDeamon. Je n’ai pas activé « Debug » (enfin, je ne pense pas).
La configuration comprend bien tous les paquets tels que vous les avez indiqué lors de la création.
Je vous mets l’ensemble de mes logs:

2023-03-28 02:23:01,371 : WW : « geckodriver » not found in config file, using default value
2023-03-28 02:23:01,371 : OK : « geckodriver » = « /config/appdaemon/apps/MetersToHA/geckodriver »
2023-03-28 02:23:01,371 : WW : « firefox » not found in config file, using default value
2023-03-28 02:23:01,371 : OK : « firefox » = « /config/appdaemon/apps/MetersToHA/firefox »
2023-03-28 02:23:01,371 : WW : « chromium » not found in config file, using default value
2023-03-28 02:23:01,371 : OK : « chromium » = « /usr/bin/chromium-browser »
2023-03-28 02:23:01,372 : WW : « chromedriver » not found in config file, using default value
2023-03-28 02:23:01,372 : OK : « chromedriver » = « /usr/bin/chromedriver »
2023-03-28 02:23:01,372 : OK : « chrome_version » = « None »
2023-03-28 02:23:01,372 : OK : « timeout » = « 30 »
2023-03-28 02:23:01,372 : OK : « download_folder » = « /config/appdaemon/apps/MetersToHA/ »
2023-03-28 02:23:01,372 : OK : « logs_folder » = « /config/appdaemon/apps/MetersToHA/ »
2023-03-28 02:23:01,372 : OK : « 2captcha_token » = « None »
2023-03-28 02:23:01,372 : OK : « capmonster_token » = « None »
2023-03-28 02:23:01,372 : OK : End loading configuration
2023-03-28 02:23:01,373 : – : Start Loading Home Assistant configuration
2023-03-28 02:23:01,373 : OK : « ha_server » = « http://192.168.1.28:8123 »
2023-03-28 02:23:01,373 : OK : « ha_token » = « *******************************************************************************************************************************************************************************"
2023-03-28 02:23:01,373 : OK : « veolia_contract » = "
 »
2023-03-28 02:23:01,373 : OK : « timeout » = « 30 »
2023-03-28 02:23:01,373 : OK : « insecure » = « False »
2023-03-28 02:23:01,373 : OK : « state_file » = « /config/appdaemon/apps/MetersToHA/meters2ha_state.json »
2023-03-28 02:23:01,373 : OK : End loading Home Assistant configuration
2023-03-28 02:23:01,389 : OK : Check Home Assistant connectivity
2023-03-28 02:23:01,389 : EE : No browser could be started with selenium
2023-03-28 02:23:01,389 : OK : Close Browser
2023-03-28 02:23:01,389 : EE : Close Display Ended with error : // re-run the program with ‹ –debug › option

C’est un peu ce que je craignais: pas d’indice assez précise.

Sans trop d’espoir, mais on ne sait jamais: voici ma config yaml pour AppDaemon - les deux lignes à la fin permettent d’obtenir d’éventuels autres messages d’erreur. Le chemin peut être différent.
Si cela ne donne rien, je vais évoluer le code pour en savoir un peu plus.

veolia:
  module: meters_to_ha_appdaemon
  class: MetersToHA
  event_name: call_veolia
  extra_opts: [--screenshot,--veolia]
  log_folder: /config
  config_file: /config/veolia-idf/config.json
  keep_output: true
  outfile: /config/appdaemon/apps/testv2.log
  errfile: /config/appdaemon/apps/testv2err.log