Abaqua - Suivi de la consommation d'eau

Bonjour à tous :waving_hand:,

Je vous présente aujourd’hui mon nouveau plugin Abaqua, disponible en Bêta. Il est conçu pour intégrer automatiquement et de manière fiable le suivi de votre consommation d’eau dans Jeedom.

:clipboard: Informations générales

  • Nom et ID : Abaqua (abaqua)
  • Auteur : eljano
  • Tarif : Gratuit
  • Lien Market : Jeedom Market
  • Statut : Bêta (demande de passage en Stable en cours)

:hammer_and_wrench: Informations techniques

  • Langages utilisés : PHP pour le core, et Python pour le moteur d’extraction.
  • Démon : Non, le plugin ne nécessite pas de démon.
  • Dépendances : Oui. Création d’un environnement virtuel Python, installation de Playwright et de Chromium.
  • Crons : Oui. Utilisation du cronDaily pour la récupération automatique des données la nuit.
  • Panel dédié : Non, pas de panel. Un simple widget sur le dashboard.

:warning: Important

Ce plugin nécessite de disposer d’un compteur d’eau communicant compatible avec la plateforme du fournisseur.
Il a été testé avec le site Kyrnolia (Veolia Corse). Il devrait également fonctionner sur le site Veolia ainsi que sur certaines de ses succursales, selon la structure de la plateforme et les éventuels changements de code.

Edit: un utilisateur a testé sur Veolia Rhone, fonctionnement ok.

https://community.jeedom.com/t/re-presentation-abaqua-abaqua-suivi-de-la-consommation-deau/150469

:droplet: Ce que fait le plugin

Le plugin se connecte à votre espace client, lit les consommations journalières (en litres) et les enregistre dans l’historique Jeedom avec une séparation claire entre :

  • La date de valeur : le jour exact de consommation
  • La date de collecte : la date où le plugin a vérifié le site

Il est conçu pour rester robuste face aux changements de page ou de structure du site.

:rocket: Fonctionnalités & Débogage

  • Création automatique des commandes Jeedom (Consommation jour, Rafraîchir, Log).
  • Prise en charge d’un widget de log dédié.
  • Débogage avancé : En cas d’échec de scraping, sauvegarde des pages HTML d’erreur, d’un JSON de contexte et du chemin exact dans les logs sans stocker les mots de passe en clair.

:gear: Configuration d’un équipement

Il suffit de renseigner le fournisseur, votre email et votre mot de passe.

N’hésitez pas à me faire vos retours si vous testez !

2 « J'aime »

Dites à votre IA que

  • /www est vraiment un emplacement de m… pour aller créer un venv… et que c’est pas le genre de paramètres à laisser à l’utilisateur;
    exemple: il se passe quoi lors de la désinstallation du plugin? Et lors d’un backup, on va inclure tout le venv avec? Des centaines de mégas potentiellement?
  • que vous n’êtes pas autorisé à écrire quoi que ce soit dans le dossier log (excepté un fichier de log dont le nom commence par l’id du plugin), pas de json ni html
    c’est un dossier du core donc certainement pas à y gérer les fichiers (nombres max de fichiers???)

Relisez la doc dev pour connaître la structure d’un plugin…

Seul le sous-répertoire html est sauvegardé dans le backup. Curieux que vous ne la sachiez pas.

C’est justement pour cette raison que le venv est placé à cet endroit, en amont de html. En ce qui concerne la desinstallation, le repertoire abaqua_venv est ausi desinstallé.

Concernant les fichiers de debug, ils ne sont créés que dans le cas de problèmes, merci de m’avoir indiqué cette “faute”, dites moi où je pourrais les placer ?

Et pour votre information, aujourd’hui en retraite, je suis ingénieur electronicien (Polytech-Lille EUDIL) sorti en 1978, j’ai travaillé 10 ans dans la conception de cartes électroniques à la CGCT (téléphone public), puis j’ai bifurqué dans le soft pendant 30 ans. Et bien sur que je me suis fais aider par l’IA, les développeurs qui aujourd’hui ne le font pas peuvent aller pointer au chomage.

2 « J'aime »

Bonjour

Je me permets d’intervenir

Si il y a bien un utilisateur sur le forum qui connait ce qui est sauvegardé dans le backup c’est Mips . À sa façon, répondu il t’a …

car en l’état le plugin est peut-être fonctionnel mais je doute qu’il passe la validation . Cerise sur le gâteau il est mentionné où créer le venv

Pas regardé le code mais surtout ne pas réinventer la roue , tout est dans la doc

Bah, je nie en rienles compétences de qui que ce soit, mais ouvrez un fichier de backup, très simple, vous le rapatriez et vous l’ouvrez, vous verrez que la racine du backup est bien html, pas www.

Discussion stérile

Le sage se remet en question, l’ignorant remet les autres en question

2 « J'aime »

Pour le venv, je recommande le dossier ressources du plugin. Et en fait tout fichiers généré par le plugin devrait se trouver dans un sous-dossier du plugin car autre avantage, en cas de désinstallation tout par avec.
Si le dossier est nommé « venv » ou « python_venv » de mémoire alors par convention il ne sera pas dans le backup.
Si autre nom il doit être ajouté manuellement (par le plugin) dans les exclusions (il y a une méthode pour ça).

Les autres données générées par le plugin devraient se trouver dans le dossier data (du plugin)
De nouveau, prévoir les exclusions de backups qui vont bien.

Merci pour ces précisions, je vais regarder pour appliquer ces modifications.

en fait pour l’installation des dépendances, je recommande aussi de suivre cette doc: https://doc.jeedom.com/fr_FR/dev/daemon_plugin#Les%20dépendances

Il y a 2 méthodes recommandées pour y arriver et dans les 2 cas, le dev n’a pas besoin de se préoccuper de ce dossier car c’est géré en standard
c’est le problème de l’IA, elle réinvente la roue; c’est bien pour ca qu’il faut revoir ce qu’elle fait en sachant où on veut aller.

1 « J'aime »

Pour information, il existe déjà un plugin permettant de récupérer les informations depuis un compte Veolia, qu’il s’agisse de l’ancienne ou de la nouvelle génération.
Ce plugin, Veolia Pro, fonctionne très bien et ne nécessite aucune dépendance particulière :wink:

Une analyse des échanges réseau m’a permis d’identifier précisément les requêtes nécessaires pour récupérer les informations, sans avoir à gérer toute la partie HTML / JavaScript / CSS. Cela simplifie considérablement le code et rend le fonctionnement beaucoup plus stable : il est moins probable que le backend soit modifié fréquemment, contrairement au frontend.

Au final, le plugin est donc beaucoup plus léger, plus simple à maintenir, et il n’est pas nécessaire de mettre en place un environnement virtuel Python avec Playwright / Chromium.

3 « J'aime »

La grosse différence c’est que le plugin Abaqua est gratuit et le restera.

Vous pouvez donc le tester et me donner vos avis.

Bonjour à tous,

Je publie une nouvelle version beta du plugin Abaqua : 2.2.2.

Cette beta corrige un point important sur les mises à jour : le cache Playwright et l’environnement virtuel Python peuvent rester obsolètes après une mise à niveau, ce qui provoquait des erreurs du type “Executable doesn’t exist” et empêchait le lancement du navigateur.

Dans cette version et suite aux remarques et conseils :

  • nettoyage des anciens caches Playwright
  • suppression de l’ancien environnement Python virtuel
  • recréation propre des dépendances du plugin
  • correction des chemins runtime vers le dossier local du plugin (resources/abaqua_venv et data/ms-playwright)
  • amélioration du gestionnaire de debug et du stockage local dans data/debug
  • Exclusion des dossiers de runtime du plugin de la sauvegarde Jeedom via la méthode backupExclude().

Important :

Il est impératif de desinstaller la version précédente avant l’installation de la nouvelle version 2.2.2.
Après installation de cette beta, il faut bien sur réinstaller les dépendances du plugin pour nettoyer les anciens fichiers et recréer le bon environnement.

Merci de tester cette version beta et de remonter les retours, en particulier sur :

  • installation / mise à jour
  • lancement du navigateur
  • récupération des données
  • stabilité sur votre Jeedom

Merci à tous pour les retours !