Correctif pour le plugin Jeedom veolia_eau v3.1.0 (NextDom) cassé depuis la refonte du site toutsurmoneau.fr (SUEZ, build front 2026-03-10, version 10.7.0).
Dans /var/www/html/log/veolia_eau :
[ERROR] Maximum 31 characters allowed in sheet title.
[ERROR] Call to a member function find() on bool
[ERROR] Aucune donnée, merci de vérifier que vos identifiants sont corrects…
Le plugin scrappait l'ancienne URL /mon-compte-en-ligne/exporter-consommation/day/{token}/{year}/{month} qui n'existe plus. Le serveur renvoie maintenant la home HTML, que PHPExcel essaie de parser → exception "31 characters".
Le nouveau site est une SPA React qui utilise des APIs JSON internes (/public-api/cel-consumption/*). Le bouton de téléchargement CSV est généré côté client, plus aucun endpoint serveur ne renvoie le CSV.
Pour website == 4 (toutsurmoneau.fr), bypass complet du legacy : login Symfony → API JSON meters-list + telemetry. Le code legacy reste intact pour les autres fournisseurs (Veolia classique, Lyon, etc.).
Voir REVERSE_ENGINEERING.md pour le détail du flow d'API et la méthode de découverte.
| Fichier | Usage |
|---|---|
README.md |
Ce fichier |
REVERSE_ENGINEERING.md |
Détail du flow d'API SUEZ et méthode de découverte |
apply_patch.py |
Applique le patch sur un fichier original (avec backup auto) |
restore.sh |
Restaure depuis le backup |
snippet_new_method.php |
La nouvelle méthode getConsoToutsurmoneauTR() seule (pour copier-coller manuellement) |
veolia_eau_process.class.php |
Fichier complet patché, prêt à remplacer |
veolia_eau_process.class.php.original |
Fichier complet original v3.1.0, pour référence |
veolia_eau_TR_v1.patch |
Diff unifié (compatible git apply et patch -p0) |
Sur le serveur Jeedom (LXC ou bare-metal) :
# Copier le dossier patch sur le serveur, puis :
cd patch/
sudo python3 apply_patch.pyCible par défaut : /var/www/html/plugins/veolia_eau/core/class/veolia_eau_process.class.php.
Backup auto en <fichier>.before_TR_PATCH.
Pour un autre chemin :
sudo python3 apply_patch.py /chemin/vers/veolia_eau_process.class.phpsudo cp /var/www/html/plugins/veolia_eau/core/class/veolia_eau_process.class.php{,.before_TR_PATCH}
sudo cp veolia_eau_process.class.php /var/www/html/plugins/veolia_eau/core/class/
sudo php -l /var/www/html/plugins/veolia_eau/core/class/veolia_eau_process.class.phpcd /var/www/html/plugins/veolia_eau/core/class/
sudo cp veolia_eau_process.class.php{,.before_TR_PATCH}
sudo patch < /chemin/vers/veolia_eau_TR_v1.patchsudo -u www-data php -r '
require_once "/var/www/html/core/php/core.inc.php";
foreach (eqLogic::byType("veolia_eau", true) as $e) {
echo $e->getName().": ".var_export($e->getConso(0), true)."\n";
echo " compteur=".$e->getConfiguration("compteur")."\n";
echo " last=".$e->getConfiguration("last")."\n";
}
'Attendu :
Compteur Eau: 0
compteur=<index actuel en m³>
last=<dernière date>
Vérifier ensuite l'historique de la commande Index dans Jeedom — elle doit contenir les 30 derniers jours.
sudo bash restore.shOu manuellement :
sudo cp /var/www/html/plugins/veolia_eau/core/class/veolia_eau_process.class.php.before_TR_PATCH \
/var/www/html/plugins/veolia_eau/core/class/veolia_eau_process.class.php- Le patch sera écrasé si le plugin est mis à jour depuis le market Jeedom/NextDom. Il faut le réappliquer.
- Hardcodé pour
website == 4(toutsurmoneau.fr générique). Les autres sites SUEZ (vendo, sénart, codes 6 à 14) utilisent probablement la même API mais ce n'est pas testé. Pour les ajouter, étendre leifdansgetConso():et adapterif (in_array(intval($this->getConfiguration('website')), [4, 6, 7, 8, 9, 10, 11, 12, 13, 14])) { return $this->getConsoToutsurmoneauTR($mock_test); }
$url_sitedansgetConsoToutsurmoneauTR()(actuellement codé en dur àwww.toutsurmoneau.fr). - Robustesse de la regex CSRF : si SUEZ change le format de la page de login, le pattern
csrfToken\\u0022\\u003A\\u0022(...)peut casser. Le diagnostic se fait dans le log Jeedom : messageTR: csrfToken introuvable dans la page de login.
Le repo est https://github.com/NextDom/plugin-veolia_eau.
Suggestion de Pull Request :
- Fork du repo
- Branche
fix/toutsurmoneau-tr-api - Appliquer le patch (
apply_patch.pyou copierveolia_eau_process.class.php) - Tests : trigger manuel + vérifier le log + vérifier l'historique d'une cmd
- Description PR : pointer vers
README.mdetREVERSE_ENGINEERING.md - Mentionner que la lib
3rparty/PHPExcel/peut être supprimée à terme (plus utilisée pour website=4)
v1(mai 2026) : support initial pour website=4 (toutsurmoneau.fr générique)