Contents
Intro
La piscine est équipée d’une rideau flottant immergé, c’est très pratique mais cela exige que le niveau d’eau du bassin soit parfaitement maitrisé dans une fourchette de quelques centimètres. Trop bas ou trop haut, le rideau risque de frotter sur l’infrastructure, d’où la nécessité de réguler précisément le niveau d’eau, bien évidemment, je ne pouvais que confier cette mission à HA.
Cahier des charges
Les fonctionnalités à créer sont simples:
- Sur détection du niveau bas pendant quelques secondes, ouverture de l’électrovanne
- Sur détection du niveau haut pendant quelques secondes, fermeture de l’électrovanne
- Maitriser le temps d’ouverture de l’électrovanne
- Piloter, monitorer, notifier avec HA.
L’ensemble nécessite deux entrées digitales et une sortie relais, personnellement j’utilise un automate WAGO série 750 communiquant en Modbus, équipé d’une carte d’entrées pt100, d’une carte d’entrées digitales et d’une carte de sortie relais.
Bien entendu, cet automate peut être remplacé par n’importe quel dispositif compatible HA, remplissant les mêmes fonctionnalités. Un ESP32 équipé de deux entrées digitales et d’un module de sortie relais sous ESPHOME peut très bien convenir.
La partie matérielle
Détection de niveau
Lors de la construction, j’ai intégré un régulateur de niveau Hayard , qui fonctionne sur le principe de la chasse d’eau avec flotteur d’un WC, simple mais d’un réglage délicat, avec le risque d’alimenter en eau d’un coté et de voir celle-ci s’écouler dans le trop-plein, je n’étais pas serein lorsque je le mettait en service surtout pendant mon absence.
J’ai conservé l’enveloppe du régulateur de niveau, supprimé le flotteur, intégré un double détecteur de 100mm, le choix de l’entraxe (control range) dépend de vos besoins, le cas échéant, il en existe avec un seul flotteur. le produit est en acier inoxydable.
Le marnage d’un flotteur est de 6 mm ce qui correspond à dans mon cas à 275 litres d’eau.
Chaque flotteur actionne un contact:
- ouvert si recouvert
- fermé si découvert.
Montage du détecteur avant suppression du flotteur. L’équerre support est imprimée avec une 3D. Prévoir une fenêtre de réglage sur le support.
Régler la hauteur après avoir mis le bassin au niveau d’eau idéal. La programmation du capteur opérationnelle et un visuel sur HA ou tout simplement avec un contrôleur universel sur ohmmètre vont permettre d’affiner le réglage (faire un repère sur le support une fois OK)
Je régule le niveau d’eau avec le flotteur supérieur. Le flotteur inférieur me sert d’indicateur de niveau bas: sécurité manque d’eau.
Alimentation en eau
Cette fonction est assurée par une électrovanne, raccordée en série sur l’alimentation d’eau du régulateur de niveau.
J’ai choisi ce modèle, simple et peu onéreux.
Prévoir une vanne d’arrêt, des cosses AMP isolées et un fil de mise à la terre.
Je la pilote par une sortie relais de mon module WAGO
L’ installation électrique de votre piscine est soumise à la norme C15-100, ce qui exige des précautions particulières de mise en œuvre dans les volumes 1,2 ,3.
Je vous invite à consulter cet extrait de la C15-100 section 702.
La partie logicielle
Descriptif fonctionnel
L’appoint est validé si le volet piscine est ouvert depuis 15mn, en effet son ouverture fait monter le niveau et inversement
Code Automatisme
- id: '1634389653339'
alias: Piscine EV Appoint EAU
description: 'Appoint EAU uniquement si volet ouvert depuis 15 mn '
trigger:
- platform: state
entity_id: cover.volet_piscine
to: 'on'
for:
hours: 0
minutes: 15
seconds: 0
milliseconds: 0
id: vol_ouv
- platform: state
entity_id: input_boolean.ev_eau_piscine
to: 'on'
id: valid_ev
from: 'off'
- platform: state
entity_id: input_boolean.ev_eau_piscine
id: devalid_ev
to: 'off'
from: 'on'
- platform: state
entity_id: binary_sensor.tp_plein_lsh
from: 'on'
to: 'off'
for:
hours: 0
minutes: 0
seconds: 20
milliseconds: 0
id: lsh_off
condition: []
action:
- choose:
- conditions:
- condition: trigger
id: vol_ouv
- condition: state
entity_id: input_boolean.ev_eau_piscine
state: 'on'
- condition: state
entity_id: binary_sensor.tp_plein_lsh
state: 'on'
sequence:
- service: switch.turn_on
target:
entity_id: switch.cde_ev_eau
- service: notify.telegram
data:
message: Ouverture EV Eau {{-"\n"-}}{{states("sensor.date_time") }}
title: Piscine Appoint Eau!
- conditions:
- condition: state
entity_id: switch.cde_ev_eau
state: 'on'
- condition: or
conditions:
- condition: trigger
id: devalid_ev
- condition: trigger
id: lsh_off
sequence:
- service: switch.turn_off
target:
entity_id: switch.cde_ev_eau
- service: notify.telegram
data:
message: Fermeture EV Eau {{-"\n"-}}{{states("sensor.date_time") }}
title: Piscine Appoint Eau!
default: []
mode: single
Automation « Notification Alarme appoint d’eau »
Sensor: Comptage journalier du temps de fonctionnement d’ouverture de l’électrovanne.
# Affichage du temps de fonctionnement de l'électrovanne appoint d'eau ce jour
- platform: history_stats
name: Ev Eau tps ouverture jour
entity_id: switch.cde_ev_eau
state: 'on'
type: time
start: '{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}'
end: '{{ now() }}'
Automation: Notification et fermeture de l’électrovanne si le temps de fonctionnement du jour est supérieur à 1h.
- id: '1617185147880'
alias: Piscine Notification Alarme Appoint d'eau
description: ''
trigger:
- platform: numeric_state
entity_id: sensor.ev_eau_tps_ouverture_jour
above: '1.00'
condition: []
action:
- service: notify.telegram
data:
message: Temps ouverture supérieur à {{states('sensor.ev_eau_tps_ouverture_jour')}}
h{{-"\n"-}}{{states("sensor.date_time") }}
title: Alarme EV Appoint d'eau Piscine
- service: switch.turn_off
target:
entity_id: switch.cde_ev_eau
mode: single
Automation « Notification Alarme niveau bas »
Si le capteur inferieur passe de « OFF » à « ON » (de recouvert à découvert) pendant 10s alors envoi d’une notification et arrêt de la pompe de filtration par sécurité en forçant le mode de fonctionnement de la piscine « input_select.pool_pump_mode » sur Off
- id: '1617199790692'
alias: Piscine Notification alarme niveau bas
description: ' '
trigger:
- platform: state
entity_id: binary_sensor.tp_plein_lsl
from: 'off'
to: 'on'
for: 00:00:10
condition: []
action:
- service: notify.telegram
data:
title: ALARME
message: Niveau bas Piscine
- service: input_select.select_option
data:
option: 'Off'
target:
entity_id: input_select.pool_pump_mode
- service: notify.telegram
data:
message: Niveau bas piscine{{-"\n"-}}{{states("sensor.date_time") }}{{-"\n"-}}{{states("sensor.date_time")
}}
title: Piscine Alarme Niveau Bas !!!
mode: single
Panneau de contrôle
Carte
Code
type: entities
entities:
- entity: input_boolean.ev_eau_piscine
name: Validation Appoint eau
- entity: automation.piscine_ev_appoint_eau
name: Autom Appoint Eau On
- entity: cover.volet_piscine
- entity: sensor.ev_eau_tps_ouverture_jour
- entity: sensor.ev_eau_sur_7j
- entity: switch.cde_ev_eau
- entity: binary_sensor.tp_plein_lsh
name: Niveau Haut Régulation (Inactif=recouvert)
- entity: binary_sensor.tp_plein_lsl
name: Niveau Tres Bas (Inactif=recouvert)
title: EV Appoint eau
show_header_toggle: false
Conclusion
Simple et facile à mettre en œuvre si la piscine est déjà équipée d’un régulateur de niveau d’eau, à noter que celui-ci peut se raccorder sur un skimmer, reste quand même à faire un peu d’électricité, de plomberie et de la programmation sur HA.
Liste des publications en lien avec cet article:
- Filtration avec « AppDaemon » ou avec « Pool Pump Manager«
- Mesure de puissance électrique
- Mise à niveau automatique
- Mesure du pH
- Régulation du Ph
- Mise Hors Gel
- Mesure de pression
Merci beaucoup pour l’article.
Je suis livré demain de mon volet de piscine du coup cette régul de niveau d’eau m’intéresse fortement. Seulement je n’ai pas prévu de régulateur à l’époque…
Installer la sonde de niveau dans un skimmer, c’est jouable je pense (a voir la batterie qu’il faudrait pour que ca tienne sans devoir la charger toutes les semaines) par contre pour remplir automatiquement la piscine, il serait possible d’ajouter l’électrovanne dans le circuit de filtration directement ? J’ai une arrivée d’eau juste dans mon local piscine.
Merci
Bonjour, la sonde dans un skimmer c’est jouable à condition je pense d’effectuer la mesure dans une période calme sans filtration et sans baigneur, la nuit par exemple, perso je l’effectue en continu mais c’est pas utile, de plus tu peux injecter l’eau d’appoint dans ton circuit de refoulement par exemple et si la pompe ne tourne pas c’est encore mieux.
Bon courage.
C’est exactement une des idées que j’avais en tête. De faire une mesure à 1h du mat chaque nuit et de compléter en eau à ce moment là…
Il me restera à trouver un système pour l’hiver pour prévenir du trop plein. J’ai peur qu’un ESP32 sur batterie aime pas trop les températures hivernale….
Les ESP sont gourmands en énergie à cause de leur wifi, une solution avec panneau solaire peut etre? il y a quelques temps j’ai réalisé ce projet https://www.thingiverse.com/thing:2282869
Ça fonctionnait bien avec l’ESP en veille. Sinon un module Zigbee « détection de porte » que tu hackes en virant l’ampoule ILS, la batterie dure longtemps et ça prend pas de place..
Merci pour l’info du module Zigbee, je vais essayer de regarder de ce coté là 🙂
Rémi,
Très sympa comme projet.
C’est un soucis à la piscine cet été pendant la canicule qui m’a fait chercher ce projet (et voilà que je tombe encore une fois sur votre site) : le locataire me préviens que la pompe faisait un « bruit bizarre » et qu’elle « était chaude » : le niveau de la piscine était descendu au-dessous du skimmer (grosse frayeur). Heureusement qu’il était à la maison car la pompe ne s’est pas désamorcée toute seule…
Je n’ai pas d’arrivée d’eau à côté de ma piscine, ni régulateur de niveau. Je vais essayer de faire un projet pour attacher au skimmer juste pour m’alerter en cas de niveau trop bas/trop haut. Et puis je gère en HA les notifs/coupure de la pompe …
Pour avoir deux alertes (niveau haut et bas), j’ai compris que je ne peux pas adapter un détecteur porte, qui aurait seulement un état (ouvert, fermé). Donc plutôt je dois m’orienter vers ESP, correct ?
Quoique l’option de mettre deux détecteur de fuite avec le capteur que vous avez utilisez a l’air pas mauvaise au final…
https://www.ajfriesen.com/smart-blumat-water-container/
Bonjour Luis, effectivement un ESP permettrait d’acquérir les deux entrées tout ou rien, mais c’est pas facile à mettre en mettre en oeuvre si le cheminement du câble d’alimentation n’existe pas. Le détecteur de fuite semble une solution possible, et pas besoin de mettre les flotteurs. Tiens nous informé, bonne continuation
bonjour,
merci pour le partage de votre projet.
Je ne comprends pas comment vous récupérerez l’état des deux contacts du double détecteur dans homeassitant (binary_sensor.tp_plein_lsh)
pourriez vous détailer cette partie ?
est ce que c’est possible de le faire avec un esp32
Merci d’avance pour votre retour
Bonjour
Comme décrit dans l’article j’utilise un automate wago serie 750 équipé de cartes pt100, sortie relais et d’un module d’entrées digitales, c’est sur celui ci que sont raccordés mes deux flotteurs. Bien entendu un ESP32 fera l’affaire, il faut utiliser ses entrées/sorties digitales GPIO. Regarde dans cet article https://domo.rem81.com/2021/05/11/home-assistant-gestion-piscine-4_mesure-ph/ il y a un schéma de raccordement d’un ESP32, notamment les deux BP sur les bornes 30 & 31 qui pourraient être tes flotteurs. Bon courage
Bonjour,
Je me suis largement inspiré de votre développement pour automatiser une piscine existante.
Je vous suis très reconnaissant de partager ainsi vos réalisations.
J’ai un souci inattendu avec un module de remplissage automatique existant.
Celui ci récupère le statut d’une sonde passive de type flotteur PTFA 3415 (https://www.e-catalogue.celduc-relais.com/gb/level-flow-sensors/611-ptfa3415.html). Lorsque le circuit s’ouvre (flotteur en position basse), le module de remplissage automatique déclenche une vanne 12V (rainbird classique). Inversement si le flotteur est position haute, la vanne se ferme (ou reste fermée).
Tout ceci fonctionne parfaitement … sauf de temps en temps. Du coup j’ai décidé d’activer ce module avec un ESP 32 (qui sert aussi à d’autres choses / temp / pression etc …) avec une prise connectée sous HA deux fois (voir trois en plein été) par semaine et pendant un temps limité. Je suis satisfait de cette solution.
Je me suis dit que je pourrai récupérer l’état du flotteur avec un ESP 32 sous HA et ainsi vérifier si je dois activer ou non le module en dehors des plages horaires programmées. J’ai donc un créer un GPIO Binary sensor. Je vois effectivement l’état s’inverser suivant la position du flotteur … mais en revanche, le module de remplissage ne se déclenche plus en position ouverte si ce module est connecté en parallèle avec l’ESP et le flotteur.
L’ESP32 délivre une tension entre les bornes du flotteur en position ouverte et le module de remplissage semble détecter que le circuit est fermé et donc … pas de remplissage.
Mon Binary Sensor est en mode INPUT PULLUP; J’ai essayé d’autres mode mais c’est le seul qui fait changer d’état en fonction de l’ouverture ou de la fermeture du flotteur.
Auriez vous une idée pour simplement récupérer l’état du flotteur sans compromettre la fonction du module de remplissage qui se base sur ce flotteur … ?
Désolé pour la longueur de mon explication, j’ai voulu être le plus clair possible. J’espère l’avoir été 🙂
Merci d’avance
Stéphane
Bonjour. Merci pour votre retour d’expérience. De ce que je comprends, vous souhaitez garder le capteur de niveau connecté à la fois sur le module de remplissage automatique et sur l’esp32? Dans ce cas, essayer de relayer la sortie du capteur, un contact sec vers le module auto et un contact sec vers l’esp avec un petit relais finder par exemple, tout dépend de la tension delivrée par le module auto.
Autre solution, essayer de mettre un diodee (1n4001 par ex) de la sortie du capteur vers la DI de l’esp.
Autre solution, essayer de raccorder le capteur sur une voie analogique de l’ESP et comparer la à une valeur fixe.
Autre solution plus radicale, supprimer le module auto, connecter le capteur de niveau uniquement sur l’esp et piloter la vanne avec l’esp via un relais.
Pour mon info, quel est le modele de module auto que vous utilisez?
@+
Merci pour vos suggestions.
Voici le module qui était installé avant mon arrivée:
https://www.manomano.fr/p/coffret-remplissage-automatique-par-flotteur-12540850?model_id=12540850&referer_id=702620&gclid=EAIaIQobChMI65v8u83C_QIVV53VCh2ALALVEAQYAyABEgKUdfD_BwE
Il a apparemment été remplacé par un modèle plus récent sur le site du fabriquant.
Pour l’instant je souhaite conserver ce module auto car je fais mes premiers pas avec un ESP32 et aussi HA … A l’avenir peut être en effet que je le supprimerai, et en cas de panne je ne le remplacerai pas , c’est sur !
Si je comprends bien votre première suggestion. Je récupère la sortie du capteur (contact sec), je relie cette sortie d’une part vers le module auto et d’autre part sur un relais que je connecte sur l’ESP. Ce que je faisais sans le relais entre. Je ne comprends pas ce que va recevoir l’ESP et comment le relais serait alimenté.
Pour la diode, il faudrait bloquer une tension très faible. Circuit ouvert je mesure <2V en sortie de l'ESP. C'est cette tension qui à mon avis gène le module auto. Quelle type de diode pour ca ?
Pour la troisième, je dois m'assurer que la tension max < 3,3V (éventuellement un pont diviseur ?) je note la tension dans les deux positions et je déclenche un sensor pour la tension qui correspond à la position flotteur bas ?
Je dois mesurer la tension aux bornes du contact sec/module auto lorsque le flotteur est haut et que le circuit est fermé. Lorsque le flotteur est bas, il me semble que j'ai un tension nulle.
Je ne suis pas électronicien comme vous pouvez le constater. Je m'excuse par avance pour mes éventuelles stupidités !
J'essaye de comprendre ce que je fais et parfois la marche est haute …
Merci beaucoup pour vos conseils,
Stéphane
Avec quelques précisions:
Flotteur bas, contact ouvert, tension aux bornes du module auto : 20V ALTERNATIF. Pour info, le module auto enclenche dans cet état la vanne qui est alimentée sur du 24 V alternatif (rain bird classique).
Flotteur haut, contact fermé continuité du circuit, tension nulle. Pas de remplissage.
J’ai l’impression que j’aurai pu cramer mon ESP en le branchant en parallèle sur les mêmes connections … mais curieusement, cela empêchait le relais de se déclencher …
J’avoue que je suis encore plus confus.
De fait ce que je souhaite c’est récupérer l’état du contact sec du flotteur sans alimenter le module automatique que je n’alimente que sur des périodes précises.
Donc en fait une solution serait de ne pas mettre sous tension le GPIO de l’ESP pendant ces périodes.
Le contact sec renseigne soit l’ESP soit le module auto mais jamais en meme temps.
Existe un moyen de faire ca (désactiver le GPIO – aucune tension) en YAML / automation ? Est ce une bonne idée de tenter cela ?
Merci encore pour votre aide précieuse.
Stéphane