Aller au contenu
Invité chris6783

Virtual Device : Gestionnaire Filtration Piscine

Recommended Posts

Invité chris6783
EDIT : VD disponibles dans les pages suivantes
 
Ce tuto est un projet qui démarre, il n'y a encore rien à  partager... Mais vu la saison,  j'ai la pression.
 
Le but du virtal device est de simplifier la gestion de la piscine, en commençant par la filtration.
 
Pour le moment je débute en LUA et VD et je m'attaque à  la logique avant de l'enrober dans un VD ou plugin.
La partie logique ne devrait pas trop poser de problème mais l'absence de fonctions partagées sur la HC2 rends les codes peu digeste à  priori
 
un peu de théorie:
 
Vous trouverez plein de sites qui traitent de la filtration piscine allant du simple 'température / 2' à  des notions plus complexes.
 
Je me base sur la notion de 'durée de cycle' pour régler le temps de marche de la pompe. En effet dans l'absolu le temps n'est pas un bon critère car tout dépend du dimensionnement de la filtration versus le volume de la piscine.
 
Une règle de base répandue sur le net donne
 
  • Eau > 25 °C : on conseille 3 cycles complets de filtration, au minimum 12 h.
  • 20 °C < eau < 24 °C : compter environ 1 à  2 cycles de filtration soit de 10 à  11 h.
  • 15 °C < eau < 20 °C : 1 cycle complet suffit.
  • 10 °C < eau < 14 °C : ½ voire même ¼ de cycle dans ce cas, ce qui dure approximativement entre 1 et 2 h.
  • Eau < 10 °C : dans ce cas la filtration quotidienne est facultative.
 
Avec un peu de lissage on obtient une courbe température / cycles (donc durée) de la forme
 

post-96-0-64596500-1428521719_thumb.png

 
Cette courbe n'est pas linéaire mais sans entrer dans les détails elle reste un cas général à  adapter à  chaque bassin (type désinfection, fréquentation moyenne, environnement....)
 
Je propose de ne pas trop discuter la forme/hauteur de la courbe sur ce forum... De toute façon le VD permettra de fixer votre courbe de référence allant de la simple droite à  une forme ultra 'optimisée'.
 
des choix à  faire:
 
Vous trouverez de tout comme stratégie pour économiser/optimiser
perso je suis plutôt contre la filtration de nuit en HC... - bon et au final + cher
filtrer X minutes par heure pour atteindre la durée totale me parait moyen aussi
 
pour mon algo (à  créer)  je pars sur
- 1 à  3 périodes de filtration par jour
- filtrer plus en fin de journée pour compenser la fréquentation et assurer un bon nettoyage avant le repos nocturne
- j'ai des HC entre 12h et 13h30 autant filtrer (il n'y a pas de petites économies). De plus avoir une filtration fixe vers midi permettra de prendre une température de référence cohérente de jour en jour
 
en plus de la gestion automatique le VD doit permettre
  • de superposer des périodes de 'filtration choc' ; départ immédiat et non-stop pour 12, 24, 48h
  • d'appliquer une correction à  la courbe 0 à  400% par exemple pour s'adapter aux périodes de sur-fréquentation ou vent ou....
  • de proposer un bouton 'baignade' qui permettrait de mettre en marche une heure histoire d’être certain d'avoir la circulation d'eau pour masser le dos :-). 
  • de reprendre la planification après un reboot HC2
 
quelques pistes pour l'affichage dans le VD
  • affichage température de référence utilisée pour le calcul + durée totale de filtration du mode auto
  • affichage température courante
  • affichage état pompe
  • bouton baignade
  • bouton "CHOC +12" + affichage progression choc totale/restante
  • bouton "annuler choc"
  • ajustement 0 à  400%
 
 
Je vais arrêter la, car c fait déjà  pas mal de cas à  gérer sans tomber dans une usine à  gaz.
 
voila une maquette de VD
 
post-96-0-38701800-1428521775_thumb.png
 

Partager ce message


Lien à poster
Partager sur d’autres sites

Excellent départ !

Et derrière encore une sonde Ph et gestion du rajout de chlore :)

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

N'oublions pas les gens qui ne ferment pas la piscine en hivers.

Donc si température trop basse, filtration h24.

 

post-1115-0-28122100-1428564840_thumb.jpg

  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

On pourrait se mettre àplusieurs pour le virtual device. J'ai moi aussi de mon côté un projet de gestion du pH et du Chlore avec sondes....

Partager ce message


Lien à poster
Partager sur d’autres sites

Plus on est de fou ...... :)

 

Mon premier problème est :ou brancher mon module z-wave ?

 

J'ai aujourd'hui une horloge rex et je voudrais garder le commutateur à  3 positions: Horloge, stop et marche forcée.

549000.jpg

Partager ce message


Lien à poster
Partager sur d’autres sites

Un module universel de fibaro pour connaitre l'état de ton commutateur ne suffirait pas ?

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité chris6783

@Berale24

J'avais le même branchement a faire. Il suffit de débrancher ton horloge et de brancher un module fibaro a la place comme ça tu gardes la commande locale bien pratique pour les lavages de filtre ou autres petites interventions

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon, demain je me lance.

Si vous ne me voyez plus sur le forum c'est que j'ai tout fait peter. :-)

Partager ce message


Lien à poster
Partager sur d’autres sites

Je suis parti sur quelque chose de plus simple.

 

Affichage des températures Eau et Air.

 

Mode manuel:

Deux slider pour définir les temps de filtration jour/nuit.

L'heure de départ est choisie par le VD en fonction du temps.

Si 0 la pompe est sur stop.

 

Mode auto:

Un bouton Auto pour un calcul des temps en fonction de la température.

 

Mode h24:

Marche forcée pour les temps froids (hivernage actif) ou redémarrage au printemps (hivernage passif).

On sort du mode h24 simplement en choisissant un autre mode.

 

post-1115-0-28128800-1428739363_thumb.jpg

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité chris6783

De mon côté j'ai avancé aussi. les algo sont en test sur un wall plus et je vais attaquer le VD.

Pour le moment tout tourne dans une scènes pour

valider mais le reboot perturberais la filtration.

L'utilisateur peut fixer les points de sa courbe librement (via un tableau).

Le calcul des 1 a 3 cycles fonctionne àpriori.

La filtration choc fonctionne

L'arrêt choc fonctionne

Les modes arrêt / auto / marche fonctionnent

Je dois créer le VD et vais certainement utiliser GEA pour une première version pour piloter la prise de température de référence et déclencher le calcul

Je pense pouvoir partager une version la semaine prochaine même si l'installation du chauffage au sol risque de me prendre pas mal de temps et doit être finie le 21....

Partager ce message


Lien à poster
Partager sur d’autres sites

re à  tous,

 

Moi je viens d'acheter ma maison, etttttt dans la jardin, il y a une piscine avec tout le système au complet !

 

Le truc reloud est que je peux vous dire ceux qu'il y a dedans précisément, car je rentre dans la maison qu'en juillet :(

 

Mais je m’intéresse beaucoup à  la chose aussi :)

Partager ce message


Lien à poster
Partager sur d’autres sites

@cybersquat: si tu as signé, le propro ne peux pas te refuser l'accès pour prendre quelques photos.

 

En ce qui concerne l'avancement de mon développement je me demande si le VD est la bonne approche.

L’absence de communication entre les différents widgets (slider, button, main loop)  rend la programmation redondante et assez touffue.

 

C'est surtout la gestion du changement d'état qui pose problème. On se retrouve rapidement à  arrêter la pompe et la redémarrer dans le dixième de seconde qui suit, ce que je veux éviter.

 

Peut-être un mixte VD et scène.

 

A voir !!!

Partager ce message


Lien à poster
Partager sur d’autres sites

Beau projet les gars  :60:

 

Je vais le suivre avec attention mais en fait la gestion d'une piscine enterrée au quotidien n'est pas super compliquée et on s'arrache souvent les cheveux au début en essayant de régler la filtration en fonction de la température.

Au bout d'un an ou deux on arrête le diffuseur de chlore liquide qui ne régule pas si bien que cela et la gestion automatique du Ph pour les même raisons.

On passe alors au mode filtration sur une durée fixe car de toute façon la température ne varie pas tant que cela vu que l'on veut qu'elle soit toujours à  bonne et même température  :P

 

Bref ce qui est important pour moi après 8 ans d'utilisation c'est de connaitre :

la température de l'eau et de sortie des panneaux solaires et de la PAC.

pouvoir connaitre le niveau de Ph pour mettre quelques litres de Ph + et - à  la main  ;)

le niveau de chlore pour mettre les galets dans les skimmers au bon moment

allumer les spots du bassin

ouvrir ou fermer le volet de la piscine

 

Par contre sur ce topic on ne parle pas dutout de la commande des différents éléments et là  cela devient problématique car bien souvent le local technique est à  une bonne distance de la maison et le Zwave ne passe pas bien ...

 

J'ai pas mal galéré pour essayer de faire passer le signal pour effectuer les mesures de température de la piscine. J'ai mis un extander de réseau Zwave , un wall plug à  mi chemin etc etc mais rien à  faire liaison non fiable.

 

J'ai donc opté pour un owserver qui me permet via des CPL de récupérer les mesures de température par le réseau. Fiabilité au top  :)

 

Tout cela pour dire que niveau hardware pour piloter la piscine je partirais plutot sur une ipx800 avec les modules pour mesure de Ph et de Chlore.

Ainsi communication fiable, fonctions de bases tjrs assurées en cas de perte réseau et plus propre car en rail Din.

 

Je peux donc si vous le souhaitez m'occuper de l'analyse de la partie hardware ?

Partager ce message


Lien à poster
Partager sur d’autres sites

@PITP2: je pense un peu comme toi.  Je crois que je vais supprimer le mode auto de mon VD. C'est celui qui pose le plus de problèmes. Si on veut être puriste, il faut recalculer les temps de filtration chaque jour, or la température ne varie pratiquement pas si on a une PaC et un bâche pour la nuit.

L'affichage de la température permet d'ajuster manuellement, si besoin est, les temps de filtration.

 

Par contre, je vais voir comment lier la PaC au fonctionnement de la filtration.

Partager ce message


Lien à poster
Partager sur d’autres sites

Que veux tu dire lier la Pac au fonctionnement de la filtration ?

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité chris6783

En ce qui concerne l'avancement de mon développement je me demande si le VD est la bonne approche.

L’absence de communication entre les différents widgets (slider, button, main loop) rend la programmation redondante et assez touffue!

Bien d'accord avec toi, je démarre tout juste le VD et le lua a la sauce fibaro est assez limité.

Pour le reste de la discussion il y a autant d'avis que de possesseurs de piscine et pleins de forums plus ou moins pertinents. Perso J'ai un électrolyseur qui compense déjàla température et propose un ajustement de puissance manuel..... Mais il faut parfois aller au local et retoucher un peu et ensuite j'ai tendance àoublier que je l'ai booste.

J'ai souvent un taux de chlore très très bas et je compense en filtrant un peu plus mais le confort de baignade est bon. Je ne chauffe que début mai pour lancer la saison et ensuite je gère en bâchant ou non la nuit.

L'objet du tuto initial est vraiment de me simplifier la vie et de ne plus avoir àjouer avec les horaires de filtration àla main sur toute une année

pour revenir au code, les boutons/sliders sont obligés de communiquer via une variable globale qui stoque toute la config et les résultats de calcul du VD. Je ne vois pas trop d'autre solution en tant que débutant du VD.

A priori je n'ai pas de problème de ON/OFF consécutifs. J'évalue l'état théorique de la pompe toutes les 5 minutes et lorsque je lance par exemple un choc. J'inscrit ou prolonge un cycle dans la VG puis je démarre. Il n'y a que lors d'un stop choc que je ne ne fais pas stop immédiatement car un autre cycle auto ou baignade peut être en demande ON et donc on ferait off puis ON dans moins de 5 min. Je supprime juste le cycle choc de la planification et ensuite la main loup éteindra s'il ne reste rien d'autre de programmé.

J'espère bien avoir des retours sur mon code car je passe peut être àcôté de principes déjàexpliqués sur le forum.

Partager ce message


Lien à poster
Partager sur d’autres sites

@PITP2 :  Ma PaC démarre à  heure fixe en fonction de la température de l'eau et de l'air, sans considération du fonctionnement ou non de la pompe à  filtration qui aujourd'hui n'est pas gérée par la box.

Partager ce message


Lien à poster
Partager sur d’autres sites

D'accord, je ne mets en fonctionnement ma Pac que lorsqu'il y a circulation d'eau je n'ai donc pas ce problème.

Partager ce message


Lien à poster
Partager sur d’autres sites

Petite considération sur un sleep dans la main loop d'un VD.

 

Si vous mettez un sleep d'une minute "sleep(60*1000)" vous avez quand même droit aux 3sec offertes gracieusement par fibaro et vous risquez de passer, comme moi, de 11h59 à  12h01 et de rater le coche.

 

Donc faites un sleep(57*1000) si vous voulez garder la synchro.

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité chris6783

Un update avant de faire une petite pause pour cause de travaux urgents à  finir:

 

J’ai migré les algo dans un VD et remplacé le slider de choc par un simple log dans le VD (le slider prenait trop de place alors qu'on ne choc que rarement).

 

Je suis passé du wall plug à  la filtration et RAS pour le moment, ca semble marcher.

 

Voici une illustration du calcul de filtration :

En incrustation la courbe température/cycles qui pilote le VD

Ensuite sur les X une journée en heures et sur les Y la température.

Les zones colorées sont donc les cycles de filtration qui s'étendent lorsque la température grimpe. Les fonctions choc/bain vont simplement se superposer aux cycles auto.

 

post-96-0-78062200-1429013662_thumb.png

Partager ce message


Lien à poster
Partager sur d’autres sites

Voilà  mon VD.

 

Comme déjà  dit, il est assez simple mais répond à  mon besoin.

 

post-1115-0-79662800-1429171044_thumb.jpg

 

Il y a trois modes. Manuel, Auto et Marche forcée.

 

En haut du VD, affichage de la température de l'eau et de l'air prise à  midi. (ce n'est pas la température actuelle). Après installation, il vous faudra donc attendre midi pour voir les températures.

 

Le mode manuel est contrôlé par deux sliders Jour et Nuit. Les temps max de filtration sont 6h pour la nuit et 8h pour le jour. Modifiable, variable maxTime.

Si on met les deux sliders sur zéro, arrêt de la pompe. Les heures de filtration sont faites pour s’arrêter à  7h la nuit et pour démarrer à  13h le jour.

 

Mode AUTO: Les temps de filtration sont calculés à  midi en fonction de la température. Cette option n'a donc pas un action immédiate.

A la place des heures, le VD affiche "Mode Auto" dans l'attente de midi. A midi, les heures effectives seront affichée.

 

Mode H24 ou Marche Forcée. La pompe est mise en route. On sort du mode Marche Forcée en choisissant le mode manuel ou le mode Auto.

 

En haut de chaque script vous trouverez les variables à  changer. Id de la pompe, des thermomètres et des icônes.

Les heures sont enregistrée dans une variable globale FilterTime.

 

Filtration_Piscine.vfib

 

post-1115-0-91806200-1429171141_thumb.png  post-1115-0-46809600-1429171160_thumb.png  post-1115-0-66607600-1429171174_thumb.png

 

  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité chris6783

Un dernier teasing en attendant le VD pour bientôt.

 

Je ne le délivre pas encore car il repose sur 3 variables globales pour le moment et dépend de GEA ou d’un autre script pour capturer la température de référence. La version 1.0 n’aura besoin que d’une variable globale.

J’ai fait quelques icones pour différencier le mode manuel et auto et savoir si la pompe tourne ou pas (elle ne valent pas celles des designers en chef du forum)

 

post-96-0-41198900-1429820519_thumb.pngpost-96-0-45692600-1429820527_thumb.pngpost-96-0-02632200-1429820538_thumb.pngpost-96-0-33016200-1429820556_thumb.pngpost-96-0-86153000-1429820564_thumb.png

 

la miniature du VD

 

post-96-0-65483800-1429820623_thumb.png

 

En gros on voit que le mode auto est engagé, que la pompe tourne actuellement et que l’ajustement du cycle est à  32% le cycle se règle via la courbe de référence l’ajustement de 0 à  400% sert juste à  compenser des situations exceptionnelles comme bâchage longue durée ou sur-fréquentation. De base on laissera ce réglage à  100%

 

post-96-0-81960900-1429820640_thumb.png

 

Le bouton baignade lance la filtration pour une heure

 

Marche / arrêt lancent ou stoppent la pompe et sortent du mode auto. Par contre ils n’interviennent plus par la suite et on peut démarrer / arrêter la pompe par son module, le VD n’interviendra plus.

Le bouton calculer cycle sera lancé tout seul mais vous pouvez mettre le VD en mode manuel et tester le calcul

Le bouton choc +1 lance un choc immédiat pour une heure ou prolonge un choc existant d’une heure, choc  +12 est similaire. Le VD repasse aussi en auto

Stop choc annule un choc en cours, le VD reste en mode auto. La pompe n’est pas arrêtée de suite mais s’arrêtera en 5minutes max si aucun autre cycle auto / baignade n’est en cours

 

Les 2 derniers labels donnent des info sur le temps de fonctionnement. En cas de choc on voit avancer le pourcentage de choc versus la durée prévue.

 

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut chris6783

As tu avancé sur ta gestion de filtration.

Je suis vraiment preneur de tester chez moi ton VD.

Aurais tu la possibilité de mettre ton code àdisposition?

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité chris6783

Hello

oui j'ai fini et il semble marcher sans problème.

Je n'ai juste pas pris le temps de poster car pas très dispo en ce moment pour assurer le support j'essaye de partager plus tard dans la soirée

Un peu de doc pour expliquer quoi configurer et c parti. :-)

En tout cas le mode choc 1 h ou 2 c bien pratique après un coup de brosse dans le bassin....

Partager ce message


Lien à poster
Partager sur d’autres sites

×