Skip to content

feat: support du portail eau.veolia.fr (website 16)#100

Open
Aldarande wants to merge 3 commits into
NextDom:developfrom
Aldarande:feature/portail-eau-veolia-fr
Open

feat: support du portail eau.veolia.fr (website 16)#100
Aldarande wants to merge 3 commits into
NextDom:developfrom
Aldarande:feature/portail-eau-veolia-fr

Conversation

@Aldarande

Copy link
Copy Markdown

Ajoute la récupération de consommation sur le nouveau portail Veolia eau.veolia.fr :

  • authentification AWS Cognito (USER_PASSWORD_AUTH) puis appels à l'API backend istefr avec le token Bearer (getConsoVeoliaWeb / veoliaWebHttp) ;
  • parcours espace-client -> facturation pour récupérer id_abonnement et numero_pds, puis export CSV journalier (mois courant + précédent) ;
  • parsing CSV natif (str_getcsv) au lieu de PHPExcel : la lib embarquée (PHPExcel 1.8) provoque une erreur fatale sous PHP 8 et faisait échouer silencieusement la remontée des valeurs (index, conso, M/E, date) ;
  • catch(\Throwable) sur les chargements PHPExcel restants pour logguer les erreurs fatales au lieu de tuer le script en silence ;
  • nouvelle option "Veolia (portail eau.veolia.fr)" dans le sélecteur de service côté configuration.

Aldarande and others added 3 commits June 19, 2026 18:10
Ajoute la récupération de consommation sur le nouveau portail Veolia
eau.veolia.fr :
- authentification AWS Cognito (USER_PASSWORD_AUTH) puis appels à l'API
  backend istefr avec le token Bearer (getConsoVeoliaWeb / veoliaWebHttp) ;
- parcours espace-client -> facturation pour récupérer id_abonnement et
  numero_pds, puis export CSV journalier (mois courant + précédent) ;
- parsing CSV natif (str_getcsv) au lieu de PHPExcel : la lib embarquée
  (PHPExcel 1.8) provoque une erreur fatale sous PHP 8 et faisait échouer
  silencieusement la remontée des valeurs (index, conso, M/E, date) ;
- catch(\Throwable) sur les chargements PHPExcel restants pour logguer les
  erreurs fatales au lieu de tuer le script en silence ;
- nouvelle option "Veolia (portail eau.veolia.fr)" dans le sélecteur de
  service côté configuration.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
La lib embarquée PHPExcel 1.8 (3rparty/PHPExcel) est abandonnée et provoque
des erreurs fatales sous PHP 8. On la remplace par PhpSpreadsheet, installé
via composer.

- core/class/veolia_eau_process.class.php : processCSV() utilise désormais
  \PhpOffice\PhpSpreadsheet\IOFactory (require vendor/autoload.php). L'API
  toArray(null,true,true,true) renvoie les mêmes clés colonnes (A/B/C/D),
  le traitement en aval est inchangé.
- composer.json / composer.lock : ajout de phpoffice/phpspreadsheet ^1.29.
- resources/install_apt.sh : installe les extensions PHP requises
  (php-mbstring, php-zip, php-xml, php-gd, php-curl), installe composer s'il
  est absent, puis exécute `composer install` dans le dossier du plugin.
- dependancy_info() : ne teste plus PHP 7 / php7.0-mbstring (obsolète et
  cassé sous PHP 8) mais la présence de vendor/autoload.php.
- .gitignore : /vendor/ ignoré (généré à l'install).
- Suppression du dossier 3rparty/PHPExcel devenu inutile.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Remplace le rendu par défaut de l'eqLogic par un widget plus soigné, sur le
thème de l'eau (dégradés bleu/teal, goutte, onde décorative).

- core/template/dashboard/veolia_eau.html : carte avec la consommation du
  jour en hero, l'index compteur en secondaire, un badge Mesuré (teal) /
  Estimé (ambre) et la date du relevé. CSS scopé sous .eqLogic-veolia,
  compatible thèmes clair/sombre (variables CSS Jeedom + fallbacks).
- toHtml() : charge le template via getTemplate, injecte les valeurs des
  commandes (conso, index, dateReleve, typeReleve) et les libellés traduits.
  Attributs racine Jeedom conservés (allowResize, data-eqLogic_uid…) : drag,
  resize et édition du dashboard restent fonctionnels. Fallback automatique
  sur le widget par défaut en version mobile et si l'utilisateur désactive le
  widget custom (option widgetTmpl).
- Live-refresh des valeurs via jeedom.cmd.addUpdateFunction, bouton de relevé
  via jeedom.cmd.execute, bascule de couleur du badge selon M/E.
- Libellés traduits côté serveur (__()) plutôt que via {{}} : le HTML du
  widget est injecté après la passe i18n du dashboard, donc les {{}} ne
  seraient pas interprétés.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant