Piscine, X-Pool et IPX800 V5

Bonjour à tous,

la rénovation de la piscine en 2021 m’a donné l’occasion de construire un nouveau local technique sur le côté de la maison, juste assez grand pour jouer son rôle. J’ai donc revu un peu la plomberie et les appareillages, mais pas de changement fondamental par rapport à ce qui existait déjà.
Les portes à 3 battants et le toit ouvrant donnent toute la place nécessaire lors des interventions.
Voici une photo du local pendant sa construction (avant la modification en V5 + X-Pool):

Sur cette photo l’installation n’est pas complète (manque le raccordement à la PàC, des sondes et les bidons avec canes d’aspiration, remplissage automatique,…), mais le principal est en place. Tous les appareils, raccords électriques, prises et coffrets sont étanches.

Depuis 2013, la piscine est gérée par une IPX800, d’abord V3 puis V4.
Je profite de la sortie du X-Pool pour revoir les fonctions domotiques en place et passer en V5.

J’ai pris le parti de ne pas installer d’électrolyseur. Depuis la construction de la piscine il y a 15 ans maintenant, j’utilise des galets de Chlore d’une grande marque qui me donnent entière satisfaction (peu de stabilisant, jamais d’irritation cutanée, bonne tenue, …).
J’ajouterai peut-être un chlorinateur sur by-pass plus tard, je verrai.

A. Le concept

Le X-Pool est monté en tant qu’extension d’une l’IPX800 V5 qui supervisera la totalité de l’installation, et procurera un accès à distance.
Le X-Pool assurera les mesures Redox/pH avec gestion de seuils d’alerte (notifications). La v5 pilotera la filtration, le mode hors-gel et les asservissements.
L’IPX et le X-Pool étant tous deux 100% autonomes et côte à côte, l’un pourra assurer la gestion de la filtration en cas de panne de l’autre. Cette redondance permettra la sécurisation hors-gel du bassin en toute circonstance (hivernage actif).

Mon installation comprend les équipements suivants au niveau de la plomberie :

  • 1 bloc compact de filtration avec pompe 12 V immergée,
  • 1 régulateur de pH,
  • 1 pompe péristaltique pour le traitement algicide,
  • 1 pompe à chaleur,
  • 1 circuit de remplissage automatique (eau de ville).

Pour la régulation, j’ai ajouté les capteurs suivants :

  • 1 sonde de température 4-20mA montée sur collier,
  • 1 débitmètre analogique fait maison (voir ici),
  • 1 X-THL,
  • 1 capteur de niveau à flotteur,

B. Détail des différentes parties de l’installation :

  1. Le remplissage automatique (pas encore installé) :

Le circuit comprend 2 électrovannes 12 Vcc et un compteur d’eau froide à impulsions.
Le remplissage sera piloté par l’électrovanne Normalement Fermée.
Branchée sur un relais de l’IPX800, elle sera alimentée durant une temporisation permettant de rattraper l’écart de niveau. En cas de niveau non atteint au bout de la temporisation, l’IPX800 enverra une notification et stoppera le remplissage.
Le compteur d’impulsions, relié à une entrée digitale de l’IPX800, enregistrera les consommations. L’ipx800 enregistrera un index sur la saison, et un index global.
Lorsque la vanne de remplissage sera censée être fermée , l’IPX800 enverra une alerte et enregistrera la consommation sur un compteur de litres perdus en cas de réception d’impulsions en provenance du compteur.
L’index fuite permettra de juger à distance de l’ampleur de la fuite et de fermer l’arrivée d’eau manuellement si nécessaire.
La vanne de sécurité est inerte lorsqu’elle est non alimentée.
Cela permet de ne pas avoir à maintenir une alimentation pour la garder dans un état ouvert ou fermé.Le branchement de cette vanne de sécurité occupera 2 relais de l’ipx800, 1 relais pour l’alimentation momentanée et 1 relais pour le sens du mouvement.
Pour les 2 électrovannes, j’ai prévu une alimentation 12V à part.

NB : pour raison de santé publique (risque d’infection du réseau), il est formellement interdit de raccorder le réseau urbain à la plomberie de la piscine sans installation d’un disconnecteur.
Pour une raison de coût concernant ces appareils, j’ai prévu d’amener le remplissage jusque dans le skimmer, au dessus du niveau d’eau et hors éclaboussures pour éviter tout contact avec l’eau du bassin.
Pour plus d’informations, voir mon article ici

  1. Le traitement algicide :
    image
    Le traitement est assuré par l’IPX800 selon une fréquence de 15 jours.
    La pompe péristaltique est alimentée à travers un relais de l’IPX800, avec une temporisation permettant le déversement de la quantité voulue

Durée = Qté_souhaitée / Débit_péristaltique
Une cane d’aspiration est utilisée afin de permettre le montage d’un capteur de niveau dans le réservoir, ce qui permettra d’être alerté en cas de manque de produit.
Ce capteur de niveau est connecté à une entrée digitale.

  1. Le régulateur de pH autonome :
    imageLe régulateur a sa propre sonde pH et fait ses mesures et injections de produit lorsqu’il détecte que la filtration est en marche (asservissement par liaison électrique).
    L’aspiration du produit se fait par une cane avec capteur de niveau relié à sa carte électronique.
    En cas de dysfonctionnement, de consigne non atteinte après le temps maximum imparti ou de manque de produit, le régulateur ferme un contact sec dit « Alarme ».
    Ce contact est récupéré sur une entrée digitale afin que l’IPX800 puisse notifier le problème.
    La sortie « AUX » est fermée en mode proportionnel, c’est à dire à chaque fois que la pompe péristaltique se met en marche. Cela permet de calculer le temps de fonctionnement et de calculer la quantité de produit utilisé. L’IPX800 conservera un index saisonnier et global de la consommation de produit.
  2. Asservissement par la PàC :
    image
    La pompe à chaleur installée n’est pas connectée et se pilote manuellement à partir d’un écran en liaison série. Elle est équipée d’un contact sec qu’elle ferme dès sa mise en service. Ce contact fermé permet de demander la mise en marche de la pompe de filtration. L’IPX800 reçoit l’information sur une entrée digitale et ferme le relais de la pompe de filtration si le niveau d’eau est satisfaisant. Dans le cas contraire, la pompe est maintenue à l’arrêt et la pompe à chaleur se met en erreur.
    Il faudra intervenir manuellement sur la PàC pour la réinitialiser.
  3. Le contrôle du débit :
    imageL’installation d’un débitmètre sur la canalisation permet de connaître « l’état de santé » du système.
    Si la pompe est censée tourner et le débit reste nul, l’IPX800 envoie une notification.
    Si le débit passe sous un seuil défini, une alerte est envoyée afin qu’un contrôle visuel soit fait sur le filtre ou le skimmer. En effet, dans le cas de l’encrassement du filtre ou d’un panier de skimmer plein de débris ou feuilles, le débit baisse et la pompe doit redoubler d’effort.
    Le débitmètre prévient donc une usure prématurée de la pompe.
    Comme vu dans l’article mis en lien plus haut, ce débitmètre est constitué d’une turbine qui émet des impulsions à une fréquence proportionnelle au débit. L’IPX800 n’ayant pas encore sa fonction « fréquencemètre » sur ses entrées opto-isolées, nous devons recourir à un convertisseur Fréquence vers Tension. La sortie du montage est alors reliée à une entrée analogique, au travers d’un pont diviseur de tension si nécessaire (voir mon article ici)
    L’IPX800 convertit la tension reçue en débit, puis compare la valeur à la consigne paramétrée.
  4. Les capteurs supplémentaires :
  • Le local technique est monitoré par un X-THL.
    Pour maintenir une bonne qualité de l’air dans le local, j’ai installé un 1 extracteur d’air qui sera piloté par IPX800 en fonctions des mesures faites par un X-THL. Dans le cas d’une température ou humidité dépassant le seuil autorisé, l’aérateur sera mis sous tension selon une temporisation définie.
  • une sonde de température industrielle à sortie 4-20mA est montée sur collier de prise en charge, à la sortie de la pompe à chaleur.
    Cette mesure permet le réglage optimal du by-pass de la pompe à chaleur.
    La sonde est connectée à une entrée analogique, moyennant une résistance de 165Ω (voir mon article ici).
  1. Point sur les sondes du X-Pool :
    Les sondes fournies avec le X-pool sont des sondes standard . PH et ORP font 12 mm de diamètre et s’insèrent dans un porte sonde (collier ou chambre).
    La sonde de température Eau est avec raccord à vis G1/2. Elle se monte sur collier de prise en charge. Attention à l’étanchéité. Vous pourrez ajouter un joint torique (non fourni) ou du ruban téflon.

Attention : les sondes pH et ORP sont rigoureusement identiques. Je vous invite à les étiqueter au moment du déballage.

C. Le schéma global :

D. Le Liveview

en cours de construction :

Mon installation évoluera avec les mises à jour futures du X-Pool, je reviendrai ici :slight_smile:

16 « J'aime »

Merci @fgtoul pour ce post super détaillé, source d’inspiration à prendre le temps de méditer !

1 « J'aime »

Bonjour @fgtoul, c’est un tableau IDE 3x18 IP65 ? Satisfait ? J’ai l’impression que c’est le meilleur rapport qualité prix, en grande taille les Legrand ou Schneider semblent très chers.

1 « J'aime »

bonjour,

oui, c’est bien ça. J’en suis satisfait pour ce genre d’application.
bonne soirée

1 « J'aime »

Bonjour fgoul,

Pour le liveview tu utilise quel outil (soft) ou basé de données?

C’est déjà joli :wink:

1 « J'aime »

Bonjour,
l’image de fond du Liveview est dessinée avec Excel puis retouchée avec Paint .Net (incrustations sur calques multiples).
Les cadres arrondis (rouge, bleu, noir ) autour des boutons sont des widgets HTML avec paramètre d’opacité que je positionne, au besoin, sous les autres widgets. Depuis que le Liveview permet de gérer la superposition de plusieurs plans, il est possible d’avoir des rendus impeccables.

J’ai testé plusieurs widgets météo, très peu fonctionnent bien sur le liveview.
J’ai trouvé celui-ci : Free Weather Widget for Websites | Tomorrow.io

bonne journée

2 « J'aime »

Bonjour à tous,
l’installation évolue encore
Ajout du capteur de courant pour monitorer la consommation instantanée de la pompe 12V de filtration.
Cette donnée est également envoyée à Jeedom pour historisation.

Le capteur de courant est le module ACS724 (0 à 30A).
Il est alimenté en 5V grâce à un TSR 1-2450 (1A sous 5V)

La sortie en tension proportionnelle au courant mesuré est reliée directement à une entrée analogique de l’IPX800 V5.
En effet, lorsqu’il est alimenté en 5V, le capteur (0 à 30A) émet 133 mV pour 1A, avec un offset à 500mV lorsque le courant est à 0 . Pouvant mesurer 30A maximum, la tension en sortie maximale serait de 0.5+0.133*30 soit 4.5V environ. Dans mon cas, le courant ne dépassera pas 20A, la tension maximale en sortie sera donc de 3.16V, je n’ai donc pas besoin d’un pont diviseur.

La sortie analogique du capteur est en tension.
Sur l’ipx800, la mesure des volts sur une entrée analogique se fait avec la formule

X * 0.000050354

Ici, nous avons 0.133V pour 1A.
Sur l’IPX800 V5, un objet fonction applique donc la formule suivante :
image

image

Pour stabiliser les mesures, j’ai ajouté un condensateur de 100nF sur les bornes « Filter » prévues à cet effet.

Malgré l’ajout du condensateur, les mesures, bien que meilleures, restaient inexploitables avec un bruit sur la sortie analogique représentant plusieurs ampères.

J’ai donc fini par ajouter un filtrage numérique sur les valeurs vues par l’ipx800.
Le traitement consiste à calculer une moyenne glissante sur une période choisie.
Ce filtrage numérique est réalisé par l’ipx800 afin de pouvoir scénariser les valeurs traitées.
La méthode consiste à prendre une mesure chaque seconde, calculer la moyenne sur 60 secondes par exemple et stocker le résultat dans une variable analogique. Cette dernière sera donc mise à jour toutes les 60 secondes.

  • création du clignotant de période 1 seconde (TA=950ms; TB=50ms)

  • création du compteur qui additionnera les mesures pendant la période du filtre, soit 60 secondes

    .
    La fonction donnant la valeur de la mesure est liée à la valeur du pas du compteur.

  • création d’un compteur dénombrant le nombre de données additionnées dans le compteur « ACS724 SUM ». Ce compteur sera nommé « NB ACS724 »

  • création d’une valeur analogique 32 bits qui stockera le paramètre définissant le nombre de données à traiter dans le filtre numérique. Fixez sa valeur à 60. Nommez la « Periode Filtre ACS ».
    Personnellement, j’ai créé un widget qui permettra de peaufiner la durée du filtrage.
    image

  • création d’un comparateur permettant de vérifier si le nombre de données traitées correspond au paramétrage. Nommez le « COMP NBVAL ACS724 »

    • comparaison A>=B
    • lier le compteur « NB ACS724 » à l’entrée A
    • lier la variable ANA32 créée précédemment ("Periode Filtr ACS)
      image
  • Créez une variable ANA32. Nommez la « RESULTAT FILTRE ACS724 »

  • créez un objet fonction calculant la moyenne
    image

dans cet exemple, $327873$ est l’ID de la sortie « valeur » du compteur « ACS724 SUM » et $327865$ est l’id de la valeur compteur de « NB AC724 ».

Maintenant que les objets sont en place, créons 2 règles afin d’incrémenter les compteurs et stocker le résultat du filtre dans la variable ANA32

  • Règle 1 : stockage et dénombrement des données

    • événement : NON BLINKER ACS
    • Action : ON [Compteur : ACS724 SUM].Inc+ [Compteur : NB ACS724].Inc+
  • Règle 2 : Sauvegarde de la moyenne pour transmission à Jeedom

    • événement : [COMPARATEUR : COMP NBVAL ACS724].Output
    • Action : SET VALo [fonction:LISSAGE ACS].Result [ANA32:Resultat Filtre ACS724].valueON [Compteur : ACS724 SUM].Set [Compteur : NB ACS724].Set

Créez le PUSH de la variable « Resultat filtre ACS724 » et ajoutez le dans votre scène qui contient les autres push vers Jeedom.
Voici le résultat :

En vert les données filtrées, en rouge les données brutes.

3 « J'aime »

Bonjour à tous,
comme dit ci-dessus, la sortie analogique de l’ACS724 émet une tension proportionnelle au courant mesuré, avec un offset de 500mV si l’alimentation est de 5V.
Cet offset, en plus d’être lié à la tension d’alimentation, est dépendant de la température.
Pour ces raisons, l’offset peut varier de quelques dizaines de mV. Cela a un impact sur notre formule, qui du coup renvoie parfois une consommation négative, vu que l’offset y est toujours supposé à 500mV.
image

Ces mesures négatives font boguer la fonction qui calcule leur moyenne.
J’ai en effet remonté un bogue concernant les objets « Fonction », celles-ci se bloquent lors d’une division avec un nombre négatif.
En attendant la résolution de ce problème, il faut donc réajuster le filtrage.

Le principe adopté est donc d’ignorer toute valeur négative. J’ai arbitrairement fixé un seuil à 1A, en deçà duquel les mesures seront remplacées par 0. L’incrémentation du compteur « ACS SUM » n’est donc plus réalisée par un lien mais par une règle sur condition de positivité de la mesure.

Voici les modifications :

  • création d’une ANA32 appelée ValeurPasACS
  • Création d’un lien de ValeurPasACS sur l’entrée « Valeur Pas » du compteur « ACS SUM ».
  • Création d’un comparateur "« COMP ACS >=1 ». Ce comparateur vérifie systématiquement si le résultat de la fonction de notre capteur renvoie un résultat >=1.
    image
  • Modification des règles. Comme d’habitude, je répartis les actions sur front montant et descendant afin de laisser le temps aux premières de se terminer avant d’enclencher les autres qui sont dépendantes.

Voici les règles en place :

  • Règle 1 : mesure >=1A et réglage de l’incrément de ACS SUM
    • événement : BLINKER ACSET[COMP ACS >=1].Output
    • Action : SET VALo[fonction:ACS 0 30A].Result[ANA32:valeurPasACS]
  • Règle 2 : mesure <1A et mise à zéro de l’incrément de ACS SUM
    • événement : BLINKER ACSETNON[COMP ACS >=1].Output
    • Action : SET VALo[ANA32: valeur 0][ANA32:valeurPasACS]
  • Règle 3 : incrémentation de [ACS SUM] et [ACS NbVAL]
    • événement : NONBLINKER ACS
    • Action : ON[Compteur : ACS724 SUM].Inc+[Compteur : NB ACS724].Inc+
  • Règle 4 : mesure <1A et mise à zéro de l’incrément de ACS SUM
    • événement : NONBLINKER ACSET[COMPARATEUR : COMP NBVAL ACS724].Output
    • Action : SET VALo[fonction:LISSAGE ACS].Result[ANA32:Resultat Filtre ACS724].valueON[Compteur : ACS724 SUM].Set[Compteur : NB ACS724].Set

Pour optimiser le filtrage, j’ai augmenté le cadencement des échantillonnages en portant le [blinker ACS] à 500 ms au lieu de 1000 ms de périodicité.

  • Ta=450 ms (au lieu de 950)
  • Tb = 50 ms

J’ai également augmenté le nombre de mesures à lisser. Celui-ci est passé de 60 à 120 [ANA32 : Période Filtre ACS]. La durée du filtrage reste donc sur 60 secondes glissantes, mais avec un plus grand nombre de valeurs (x2).
Voici résultat de ce nouveau séquençage, le filtrage (en vert) est beaucoup plus efficace :

Bonne journée.

3 « J'aime »

Bonjour, je suis très intéressé par ce projet afin de domotiser ma piscine également ( surtout sur la partie " mesure" ).
J’utilise une eedomus pour la domotique, j’ai un pilotage de la filtration via des contacteurs Zwave, et la partie mesure est récupérée par un gadget qui flotte dans la piscine mais qui tous les 6 mois doit partir en SAV ( (un flippr ) vu le prix de la chose, de l’abonnement pour récupérer les mesures, je cherche une autre solution plus sérieuse.
J’ai découvert le XPOOL et la présentation de ton installation.
Je ne connais pas du tout le systeme IPX800. Mais je sais qu’il est compatible avec le systeme eedomus afin de recupérer son usage sur l’eedomus.

J’ai plusieurs questions concernant cette installation et l’usage du XPOOL.
Le XPOOL peut utiliser le WIFI apparemment ( en plus de bluetooth via un smartphone à proximité) mais dans ce cas on peut l’utiliser seul ? via une page http ? ou ça ne sert que pour les mises à jour OTA ?

Dans le cas de le nécessité de le coupler avec l’IPX800 V5 :

  • Il ne peut fonctionner qu’avec la V5 ? les autres sont incompatibles avec le xpool ?
  • Mon local piscine étant assez distant de la maison l’IPX800 doit être placé à coté du XPOOL ? comment va t il communiquer avec internet/réseau il a besoin d’une connexion ethernet ? ou a t il un acces wifi ? Dans le cas de ton installation tu as un cable ethernet qui arrive au local piscine ?

merci pour ton aide.

Super projet merci du partage :slight_smile:

1 « J'aime »

Bonjour @misterden et bienvenue sur le forum .

Le xpool est une extension autonome sur laquelle il est possible de se connecter en BLE via l’application x-Connect de GCE ou via l’interface web de l’ipx800 v5. Le wifi est utilisé pour les mises à jour OTA pour le moment.
Il faudra monter le xpool en extension d’une ipx800 si le local technique est hors de portée bluetooth, pour un accès distant ou encore pour ajouter des fonctionnalités comme la régulation.

Bonne journée