🏊 Pool Pilot – Une solution complĂšte pour gĂ©rer votre piscine dans Home Assistant

Bonjour Ă  tous,

AprÚs plusieurs mois de développement, je suis heureux de vous présenter Pool Pilot, une intégration Home Assistant permettant de gérer entiÚrement une piscine.

À l’origine, je me suis inspirĂ© de l’application Flipr, que je trouvais trĂšs pratique. J’ai voulu aller plus loin en dĂ©veloppant une solution entiĂšrement intĂ©grĂ©e Ă  Home Assistant, plus personnalisable et capable de centraliser toutes les informations liĂ©es Ă  l’entretien de la piscine.

Fonctionnalités

  • :thermometer: Suivi de la tempĂ©rature de l’eau
  • :droplet: Saisie et historique des tests bandelettes
  • :test_tube: Calcul automatique des dosages des produits
  • :package: Gestion du stock de produits (Pool House)
  • :bar_chart: Historique des analyses
  • :bell: Notifications personnalisables
  • :stopwatch: Recommandation et planification intelligente de la filtration
  • :mobile_phone: Tableau de bord Lovelace dĂ©diĂ©, optimisĂ© pour mobile

DépÎts GitHub

Intégration Home Assistant

:backhand_index_pointing_right: GitHub - amery74/ha-poolpilot · GitHub

Carte Lovelace Pool Pilot Dashboard

:backhand_index_pointing_right: GitHub - amery74/pool-pilot-dashboard: Dashboard for pool-pilot · GitHub

Installation

Les deux projets sont installables via HACS en ajoutant leur dépÎt GitHub comme dépÎt personnalisé.

L’installation se fait ensuite directement depuis HACS.

Captures d’écran

Vos retours sont les bienvenus

Le projet est désormais en version 1.0.0 et je souhaiterais recueillir les retours de la communauté HACF.

N’hĂ©sitez pas Ă  me faire part :

  • de vos idĂ©es d’amĂ©lioration ;
  • de vos suggestions de nouvelles fonctionnalitĂ©s ;
  • des Ă©ventuels bugs rencontrĂ©s ;
  • de vos retours d’utilisation.

Toutes les remarques sont les bienvenues et m’aideront Ă  faire Ă©voluer le projet.

Merci d’avance à tous ceux qui prendront le temps de tester Pool Pilot ! :blush:

Bonjour,
Petite question : avec quel appareil réalises-tu tes mesures de températures et autres ? Automatiquement ou manuellement ?
Merci d'avance !

Salut,

Perso, j'ai un comportement inattendu avec ha-poolpilot:
En mode édition, je peut scroller vers le bas, mais la page se "rafraichit" immédiatement aprÚs et j'arrive en haut de la page, donc je peut pas finir de configurer la carte

En mode développeur, j'ai pas vu d'erreur ou de soucis particulier (sous Firefox 143.0 (64-bit) sur un Linux) a part une utilisation de mon CPU de 100% pour firefox lorsque que je sauvegarde le dashboard aprÚs l'ajour de ha-poolpilot, ...

Sinon 2petit détail :

  • tes rĂ©po parlent de version v1.0.0 ou plus rĂ©cent. or on est encore en v0.8.30 lĂ .
  • le sensor sensor.piscine_actions_recommandees semble avoir 2 attributs identiques (ou presque), c'est normale ? :

auto_schedule_detail:
  mode: auto_intelligent
  start: "01:39"
  end: "20:21"
  window_label: 01:39 → 20:21
  center_hour: 11
  center_label: Centrée sur 11 h
  water_temp_c: 27.6
  forecast_temp_c: 34.5
  forecast_source: weather.get_forecasts
  weather_factor: 1.35
  base_hours: 13.8
detail:
  mode: auto_intelligent
  start: "01:39"
  end: "20:21"
  window_label: 01:39 → 20:21
  center_hour: 11
  center_label: Centrée sur 11 h
  water_temp_c: 27.6
  forecast_temp_c: 34.5
  forecast_source: weather.get_forecasts
  weather_factor: 1.35
  base_hours: 13.8

Bonne journée

Hello

Sujet intéressant.

Comment se passe la gestion d'une pompe avec plusieurs vitesses ?

Merci

Merci beaucoup pour ton retour @roumano !

Le problĂšme de la carte sous Firefox est trĂšs intĂ©ressant, je ne l’avais pas rencontrĂ© jusqu’à prĂ©sent. Le fait que Firefox monte Ă  100 % de CPU me laisse penser qu’il y a probablement une boucle de rendu dans la carte. Je vais regarder ça de prĂšs et publier un correctif rapidement.

Merci également pour les deux autres remarques :

  • effectivement, je vais corriger les rĂ©fĂ©rences de version qui ne sont plus cohĂ©rentes avec la v1.0.0 ;

  • tu as aussi raison concernant les attributs detail et auto_schedule_detail, ils contiennent actuellement la mĂȘme chose. Je vais nettoyer ça dans la prochaine mise Ă  jour.

Encore merci d’avoir pris le temps de tester Pool Pilot et de faire un retour aussi dĂ©taillĂ© !

Bonjour @PhilCharp

Pour ma part, j’utilise un Flipr qui remonte automatiquement la tempĂ©rature de l’eau ainsi que les mesures de pH, Redox et conductivitĂ© grĂące Ă  l’intĂ©gration Flipr Local :

Les analyses plus complĂštes (chlore libre, chlore total, TAC, TH, stabilisant
) sont rĂ©alisĂ©es manuellement Ă  l’aide de bandelettes, puis saisies dans Pool Pilot afin de conserver un historique et bĂ©nĂ©ficier des recommandations de traitement.

L’intĂ©gration n’est cependant pas limitĂ©e au Flipr. Si les donnĂ©es proviennent d’autres appareils connectĂ©s (ESPHome, Tuya, Zigbee, Shelly, etc.), il suffit de sĂ©lectionner l’entitĂ© correspondante dans la configuration de Pool Pilot.

L’objectif est justement que chacun puisse utiliser les Ă©quipements qu’il possĂšde dĂ©jĂ . :blush:

Bonjour @Bensmens

Pour le moment, Pool Pilot ne gÚre pas spécifiquement les pompes à plusieurs vitesses.

Je n’en possĂšde pas, donc je n’ai pas encore eu l’occasion de dĂ©velopper ou de tester cette fonctionnalitĂ©.

Si plusieurs utilisateurs sont intĂ©ressĂ©s, je regarderai avec plaisir comment l’intĂ©grer dans une future Ă©volution de Pool Pilot !

Bonjour,

J'ai installé Pool Pilot v0.8.30

Pourquoi forcer la filtration sur une heure centrale ? Moi je préfÚre qu'elle démarre à 8h et çà je ne peux pas le modifier dans Pool Pilot.

Pour Pool Pilot Dashboard

Impossible de paramétrer quoi que ce soit, la page se réactualise en permanence.

A+

Chris

Bonjour @christlep

Merci pour ton retour.

Le fonctionnement actuel est volontaire : en mode Auto Intelligent, Pool Pilot centre la filtration sur les heures les plus chaudes de la journĂ©e afin d’optimiser le traitement de l’eau.

Cela dit, je comprends parfaitement que certains prĂ©fĂšrent imposer une plage horaire fixe (par exemple un dĂ©marrage Ă  8 h). C’est une excellente idĂ©e et je la note pour une prochaine Ă©volution. Je pourrais ajouter plusieurs modes de fonctionnement afin que chacun puisse choisir celui qui lui convient.

Merci pour cette suggestion !

@christlep @roumano

Merci pour vos retours. Vous ĂȘtes dĂ©jĂ  deux Ă  rencontrer le mĂȘme problĂšme de rafraĂźchissement lors de la configuration du Dashboard, je vais donc m’en occuper en prioritĂ©.

Afin que je puisse reproduire et corriger le problÚme, pourriez-vous me préciser :

  • votre navigateur (Firefox, Chrome, Edge
) et sa version ;

  • votre systĂšme d’exploitation (Windows, Linux, macOS
) ;

  • si possible, ouvrir les outils de dĂ©veloppement du navigateur (F12), aller dans l’onglet Console, puis m’envoyer les Ă©ventuelles erreurs qui apparaissent lorsque vous ouvrez la configuration de la carte.

  • La version de HA utilisĂ©e

Ces informations me seront trùs utiles pour identifier l’origine du problùme. Merci d’avance !

Pour moi :

Firefox v152.0.4

Windows 10

[UPDARE] J'AI FINI PAR COMPRENDRE QU'IL FALLAIT PASSER PAR L'ÉDITEUR VISUEL POUR LA CARTE

Bonjour,

Ça a l'air vraiment super, malheureusement impossible chez moi d'afficher quoi que ce soit dans la carte du dashbord.

Ça me met en permanence que la carte n'existe pas. Alors qu'elle est bien dans les ressources.

Ensuite dans les rĂ©glages du pool pilote (l'engrenage sur l'intĂ©gration) une fois les rĂ©glages fait il y a une erreur, car le mode de filtration attend arrĂȘt, manuel ou automatique. Hors la valeur dans l'entitĂ© de l'intĂ©gration est auto_intelligent ce qui crĂ©e un conflit.

Enfin, malheureusement pas utilisable en on état car j'utilise une pompe à vitesse variable.

Avec une entité de débit et de vitesse rpm (possibilité de sélectionner l'entité dans HA comme le ph orp etc) ça sera top si l'intégration pouvait recalculer le temps de filtration, et s'adapter au plage horaire pour filtrer plus ou moins vite.

De plus, ayant un électrolyseur au sel, et votre intégration prenant en compte une entité de météo, pouvoir piloter automatiquement l'électrolyseur depuis l'intégration en fonction de la météo, du mode couvert (bùche, abris etc) sera un énorme plus.

En tout cas si quelqun peux déjà me dire comment régler le problÚme de la carte dashbord merci :+1:

@christlep @roumano

J’ai publiĂ© la v1.0.1 de Pool Pilot Dashboard.

Cette version corrige le problÚme que vous avez rencontré avec le Dashboard :

  • correction de l’erreur this._fmt is not a function ;

  • correction du rafraĂźchissement en boucle de la carte ;

  • suppression du pic d’utilisation CPU observĂ© sur Firefox.

Pouvez-vous faire la mise à jour via HACS et me dire si le problÚme est bien résolu chez vous ?

Merci encore pour vos retours, ils m’ont permis d’identifier rapidement l’origine du bug. :folded_hands:

Salut,

Pour ma part, c'est toujours pas rĂ©solu (tester dans une navigation privĂ© pour ĂȘtre sur avec le cache navigateur) :
en mode édition, j'ai toujours la boucle du rafraßchissement et le cpu qui monte a 100% sur le thread firefox.

Tester avec Firefox 143.0 (64-bit) sous Linux

Bonne journée

Merci beaucoup @roumano pour ton retour et pour le test en navigation privée.

Peux-tu me communiquer les informations suivantes ?

  • Est-ce que le problĂšme apparaĂźt dĂšs l’ouverture de la configuration de la carte ou seulement aprĂšs avoir modifiĂ© un paramĂštre ?

  • Est-ce que le problĂšme est identique si tu crĂ©es une nouvelle carte Pool Pilot Dashboard sur un tableau de bord vierge ?

  • Si tu peux ouvrir les outils de dĂ©veloppement de Firefox (F12) puis l’onglet Console, pourrais-tu m’envoyer les Ă©ventuelles erreurs qui apparaissent lorsque la page commence Ă  se rafraĂźchir ?

Ces informations devraient me permettre d’identifier prĂ©cisĂ©ment l’origine du problĂšme.

Salut,

J'ai avancé sur la compréhension du souci:

Par défaut, le théme (entre "analyseur d'eau Classic" / "Sombe" / "Home Assistant" rien n'est sélectionner et l'un des 3 boutons clignotes trÚs légÚrement et qui fait que je consomme 100% du CPU.

Si je sélectionne l'un des 3, je peut, aprÚs scroller dans la configuration mais j'ai 2 soucis aprÚs :

  • Si je change une autre option ou que je clique presque n'importe oĂč (mĂȘme sur ce que donnera la vue a droite), cela dĂ©selectionne le theme.
  • Si je sauvegarde la carte (j'ai bien, dedans theme: dark) mais a la prochaine Ă©dition, le thĂ©me n'est pas selectionner et donc le bug "recommence"

Si je tente sur une nouvelle carte sur un tableau de bord vierge, c'est pire, le theme est bien selectionne, mais ca consomme aussi 100% de CPU et j'ai aussi la boucle du rafraĂźchissement .

Dans les logs j'ai eu ca :

  • les 4 premiers lignes sont quand j'ai commencer a editer la carte
  • puis les out of memory sont arrivĂ© bien aprĂšs les 100% de cpu...

12:37:46.740 Unknown property ‘-moz-osx-font-smoothing’.  Declaration dropped. 0:1:41
Elements matching selector: .mdc-form-field
NodeList []
12:37:46.740 Unknown property ‘-moz-osx-font-smoothing’.  Declaration dropped. 0:1:1702
12:37:46.811 Error in parsing value for ‘transform’.  Declaration dropped. 0:1:810
12:37:46.996 Error in parsing value for ‘align-items’.  Declaration dropped. 0:1:144
12:39:04.262 Uncaught out of memory 4
12:39:19.226 Uncaught (in promise) out of memory 15 app.f43d956d04eebe01.js:123:277672
12:39:19.227 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.227 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.227 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.227 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.227 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.227 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.228 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.228 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.228 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.228 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.228 Uncaught (in promise) out of memory
12:39:19.228 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.228 Uncaught (in promise) out of memory
12:39:19.228 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.228 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.228 Uncaught (in promise) out of memory
12:39:19.229 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.229 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.229 Uncaught (in promise) out of memory
12:39:19.229 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.229 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.229 Uncaught (in promise) out of memory
12:39:19.229 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.229 Uncaught (in promise) out of memory
12:39:19.229 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.229 Uncaught (in promise) out of memory
12:39:19.229 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.229 Uncaught (in promise) out of memory
12:39:19.230 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.230 Uncaught (in promise) out of memory
12:39:19.230 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.230 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.230 Uncaught (in promise) out of memory 2
12:39:19.230 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.230 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.230 Uncaught (in promise) out of memory
12:39:19.230 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.230 Uncaught (in promise) out of memory
12:39:19.231 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.231 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.231 Uncaught (in promise) out of memory
12:39:19.231 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.231 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.231 Uncaught (in promise) out of memory
12:39:19.231 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.231 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.231 Uncaught (in promise) out of memory
12:39:19.231 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.232 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.232 Uncaught (in promise) out of memory
12:39:19.232 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.232 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.232 Uncaught (in promise) out of memory
12:39:19.232 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.232 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.232 Uncaught (in promise) out of memory
12:39:19.232 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.232 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.232 Uncaught (in promise) out of memory
12:39:19.233 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.233 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.233 Uncaught (in promise) out of memory
12:39:19.233 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.233 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.233 Uncaught (in promise) out of memory
12:39:19.233 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.233 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.233 Uncaught (in promise) out of memory
12:39:19.234 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.234 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.234 Uncaught (in promise) out of memory
12:39:19.234 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.234 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.234 Uncaught (in promise) out of memory
12:39:19.234 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.234 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.234 Uncaught (in promise) out of memory
12:39:19.234 Uncaught (in promise) out of memory 2 app.f43d956d04eebe01.js:123:278322
12:39:19.235 Uncaught (in promise) out of memory
12:39:19.235 Uncaught (in promise) out of memory 2 app.f43d956d04eebe01.js:123:278322
12:39:19.235 Uncaught (in promise) out of memory
12:39:19.235 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.235 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.235 Uncaught (in promise) out of memory
12:39:19.235 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.235 Uncaught (in promise) out of memory
12:39:19.235 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.235 Uncaught (in promise) out of memory
12:39:19.236 Uncaught (in promise) out of memory 2 app.f43d956d04eebe01.js:123:278322
12:39:19.236 Uncaught (in promise) out of memory
12:39:19.236 Uncaught (in promise) out of memory 2 app.f43d956d04eebe01.js:123:278322
12:39:19.236 Uncaught (in promise) out of memory
12:39:19.236 Uncaught (in promise) out of memory 2 app.f43d956d04eebe01.js:123:278322
12:39:19.236 Uncaught (in promise) out of memory
12:39:19.237 Uncaught (in promise) out of memory 2 app.f43d956d04eebe01.js:123:278322
12:39:19.237 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.237 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.237 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.237 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.237 Uncaught (in promise) out of memory app.f43d956d04eebe01.js:123:278322
12:39:19.238 Uncaught (in promise) out of memory 8 app.f43d956d04eebe01.js:123:278322
12:39:19.238 Uncaught (in promise) out of memory
12:39:19.239 Uncaught (in promise) out of memory 6 14269.34abc65f17e032a9.js:1:6484
12:39:19.239 Uncaught (in promise) out of memory 93029.28ecb77619da84ed.js:1:2671
12:39:19.239 Uncaught (in promise) out of memory 93029.28ecb77619da84ed.js:1:2671
12:39:19.240 Uncaught (in promise) out of memory 12 card-mod.js:1:12720
12:39:46.043 Uncaught out of memory
12:39:46.413 Uncaught (in promise) out of memory 32 app.f43d956d04eebe01.js:123:277672

Salut,

Chez moi toujours pareil, dés que je descend pour configurer l'heure du dernier relevé de valeurs, ca part en vrille.

Merci encore @christlep et @roumano pour toutes tes investigations, elles m’ont permis de mieux cerner l’origine du problùme. :+1:

J’ai publiĂ© la v1.0.2 de Pool Pilot Dashboard.

Cette version apporte plusieurs corrections :

  • suppression du sĂ©lecteur de thĂšme (qui n’apportait finalement pas de rĂ©elle valeur et semblait ĂȘtre Ă  l’origine du problĂšme) ;

  • la carte suit dĂ©sormais automatiquement le thĂšme clair/sombre de Home Assistant ;

  • correction de plusieurs causes possibles de rafraĂźchissement en boucle dans l’éditeur ;

  • optimisation des mises Ă  jour de la configuration.

Pouvez-Vous faire la mise à jour via HACS et me dire si le problÚme est enfin résolu, aussi bien sur une carte existante que sur une nouvelle carte ?

Chez moi, c'est bon.

Je viens juste de voir que la valeur du ph ne s'arrondissait pas sur ta carte :

Oui ca fonctionne bien maintenant, merci !!!