HA-Gestion piscine-3_Mise à Niveau Automatique.

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.

Les deux fils rouges correspondent au flotteur supérieur, les deux noirs au flotteur inferieur.

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

Important

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:

    1. Filtration avec « AppDaemon » ou avec « Pool Pump Manager« 
    2. Mesure de puissance électrique
    3. Mise à niveau automatique
    4. Mesure du pH
    5. Régulation du Ph
    6. Mise Hors Gel
    7. Mesure de pression

    14 Comments on “HA-Gestion piscine-3_Mise à Niveau Automatique.”

    1. 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

    2. 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.

      1. 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….

        1. 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..

          1. 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 ?

            1. 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

    3. 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

      1. 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

    4. 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

      1. 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?
        @+

        1. 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

          1. 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

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *