Projet domotisation adoucisseur (alarme fuite)

Mon problème

Bonjour

Je voudrais pouvoir contrôler l’absence de fuite sur mon adoucisseur.
Je voudrais donc installer des débitmètre à turbine pour vérifier l’eau utilisé, mais surtout pouvoir effectuer un contrôle d’absence de fuite.

schema adoucisseur

Principe de fonctionnement :
Après avoir utiliser sa capacité en eau adoucie, l’adoucisseur passe en cycle de régénération.

  • lors de ce cycle le micro switch régénération (3) s’enclenche jusqu’à la fin du cycle complet

  • La durée d’un cycle est d’environ 90 minutes

  • pendant ce cycle de l’eau s’écoule par le rejet et traverse le compteur à turbine (2)

  • Je voudrais donc vérifier qu’il n’y a pas d’eau qui traverse le compteur (2) si l’adoucisseur n’est pas en régénération.
    et donc recevoir une alerte si le compteur tourne.

  • Je voudrais aussi totaliser le nombre de déclenchement de régénération (cycle) (3) afin de recevoir une alerte pour remplir le bac à sel tous les X cycles.

  • Je voudrais que 90 minutes après un déclenchement de cycle de régénération (3), vérifier que l’eau ne coule plus par le compteur (2) et recevoir une alerte si c’est pas le cas.

le compteur a turbine serait de ce type :
https://fr.aliexpress.com/item/4001114496369.html?gatewayAdapt=glo2fra&spm=a2g0o.cart.0.0.46973c00dvGKUI&mp=1

le switch de régénération est un simple contact sec inverseur.

Je sollicite votre aide, votre expérience, ou votre avis pour mener a bien ce projet
Mes questions sont les suivantes :

  • Qu’elle type de matériel je dois utiliser pour pouvoir réaliser un tel montage ?
    (j’ai vu que certains ont utilisé des ESPhome pour domotiser leur adoucisseur, mais je dois bien avouer que je n’y connais rien.)

  • Pensez vous que ce soit réalisable pour un débutant ?

  • Ceci est il intégrable à Home Assistant ?

Merci par avance a tous ceux qui m’apporteront leur aide, ou qui auront pris le temps de me lire. :grin:

Ma configuration


System Health

version core-2022.3.5
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.9.9
os_name Linux
os_version 5.10.92-v8
arch aarch64
timezone Europe/Paris
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4742
Installed Version 1.23.0
Stage running
Available Repositories 1080
Downloaded Repositories 41
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 7.5
update_channel stable
supervisor_version supervisor-2022.03.5
docker_version 20.10.9
disk_total 219.4 GB
disk_used 18.1 GB
healthy true
supported true
board rpi4-64
supervisor_api ok
version_api ok
installed_addons Terminal & SSH (9.3.0), Samba share (9.5.1), File editor (5.3.3), Duck DNS (1.14.0), Mosquitto broker (6.0.1), MariaDB (2.4.0), NGINX Home Assistant SSL proxy (3.1.1), Nginx Proxy Manager (0.11.0), Simple Scheduler (0.40), Check Home Assistant configuration (3.10.0), Node-RED (11.1.0), Studio Code Server (4.1.0), Plex Media Server (2.8.0)
Lovelace
dashboards 2
resources 33
views 17
mode storage
Xiaomi MIoT
logged_in true
can_reach_micloud_server ok
accounts_count 1
account_devices_count 1
added_devices 1
___

hello
pour ma part je mesure ma conso heure par heure
compteur avec reset.
de 2h à 4h (chez moi on dort hi )
ma conso doit être égale à 0.
si <> il y a fuite
notification sms free (fuite eau)
bye

Le problème, c’est que l’adoucisseur se nettoie automatiquement au bout d’un certain volume d’eau consommé, et donc le cycle de nettoyage peut être n’importe quel jour (entre les 7 à 10jours ), mais toujours à partir 2H et jusqu’à 4H maxi.
Donc le contrôle d’absence de fuite ne doit se faire que en dehors de cet horaire.

Mon Projet avance…un peu

  • Je viens de recevoir le capteur de passage pour mettre sur la vidange de l’adoucisseur
    https://fr.aliexpress.com/item/4000933130112.html?gatewayAdapt=glo2fra&spm=a2g0o.order_list.0.0.21ef5e5bhqgJOI

  • J’ai récupérer un switch contact pour l’information de régénération.

  • Pour Alimentation je vais récuperer le 24V sur l’alimentation de l’adoucisseur

  • Je voulais partie sur ESP… mais comme je n’y connais rien, je me suis plutôt tourné vers un shelly Uni (en attente de réception). Une fois que j’aurai testé et si sa fonctionne, je verrais avec les experts de HACF pour faire installation avec un ESP.

Voila ou en est ce projet,
J’ai installé le shelly uni, le switch et le capteur de débit sur un banc d’essai avant de le mettre en place sur adoucisseur.
Le câblage des différent élément est le suivant :

Dans HA j’ai crée quelques automatismes qui sont :

  • Si switch cycle à l’arrêt (OFF) et contact de débit rejet (ON) pendant + 30 secondes alors Notification et fermeture électrovanne eau
  • Si contact de débit rejet (ON) pendant plus de 80 minutes alors notification et fermeture électrovanne eau
  • Si switch cycle en marche (ON) pendant plus de 80 minutes alors notification et fermeture électrovanne eau

Maintenant je voudrais ajouter quelques options. C’est la que j’ai besoin de votre aide car je ne sais pas trop comment faire

  • Comptabiliser le nombre de cycle et garder un historique (édit: J’ai trouvé pour le compteur…)

  • Avoir la date du dernier cycle (édit: J’ai trouvé pour la date…)

Bouton pour afficher l’état de adoucisseur

Carte bouton Cycle : (le bouton change d’apparence en fonction de l’état)
cycle offcycle oncycle alerte

code bouton cycle
type: custom:button-card
entity: binary_sensor.switch_cycle_input
aspect_ratio: 5/2
show_state: false
show_last_changed: true
styles:
  card:
    - background-color: white
    - border-radius: 10%
    - filter: opacity(100%)
    - padding: 2px
    - text-transform: null
    - font-size: 12px
state:
  - value: 'on'
    icon: |
      [[[
       if (states['timer.adoucisseur_minuteur_cycle'].state == 'active')
         return 'mdi:sync-circle'; return 'mdi:sync-alert'   
      ]]]
    name: |
      [[[
        if (states['timer.adoucisseur_minuteur_cycle'].state == 'active')
         return 'Régénration'; return 'Defaut cycle'
       ]]] 
    styles:
      card:
        - background-color: white
        - border: |
            [[[
             if (states['timer.adoucisseur_minuteur_cycle'].state == 'active')
               return '2px solid var(--google-grenn)'; return '2px solid var(--google-red)'   
             ]]]
        - color: red
      icon:
        - color: |
            [[[
             if (states['timer.adoucisseur_minuteur_cycle'].state == 'active')
               return 'green'; return 'red'   
             ]]]
      name:
        - color: black
  - value: 'off'
    icon: mdi:water-sync
    name: En Service
    styles:
      card:
        - background-color: white
        - border: 2px solid var(--google-grey)
        - color: grey
      icon:
        - color: grey
      name:
        - color: black

Carte bouton rejet: (le bouton change d’apparence en fonction de l’état)
rejet_1rejet_2rejet_3

Code bouton rejet
type: custom:button-card
entity: binary_sensor.debit_rejet_input
aspect_ratio: 5/2
show_state: false
show_last_changed: true
styles:
  card:
    - background-color: white
    - border-radius: 10%
    - filter: opacity(100%)
    - padding: 2px
    - text-transform: null
    - font-size: 12px
state:
  - value: 'on'
    icon: |
      [[[
       if (states['binary_sensor.switch_cycle_input'].state == 'off')
         return 'mdi:water-alert'; if (states['timer.adoucisseur_minuteur_cycle'].state == 'idle')
         return 'mdi:water-alert'; return 'mdi:water'   
      ]]]
    name: |
      [[[
       if (states['binary_sensor.switch_cycle_input'].state == 'off')
         return 'Fuite Adoucisseur'; if (states['timer.adoucisseur_minuteur_cycle'].state == 'idle')
         return 'Fuite Adoucisseur '; return 'Regeneration'   
      ]]]
    styles:
      card:
        - background-color: white
        - border: |
            [[[
             if (states['binary_sensor.switch_cycle_input'].state == 'off')
               return '2px solid var(--google-red)'; if (states['timer.adoucisseur_minuteur_cycle'].state == 'idle')
               return '2px solid var(--google-red)'; return '2px solid var(--google-green)'   
             ]]]
        - color: red
      icon:
        - color: |
            [[[
             if (states['binary_sensor.switch_cycle_input'].state == 'off')
               return 'red'; if (states['timer.adoucisseur_minuteur_cycle'].state == 'idle')
               return 'red'; return 'green'   
             ]]]
      name:
        - color: black
  - value: 'off'
    icon: mdi:water-check
    name: Pas de Fuite
    styles:
      card:
        - background-color: white
        - border: 2px solid var(--google-grey)
        - color: grey
      icon:
        - color: grey
      name:
        - color: black

Carte Gestion Adoucisseur

La partie Suivi des phases de cycle n’est pas opérationnel :face_with_head_bandage:

Je viens de finir la partie suivi des phases de cycle à l’aide d’automatisme :exploding_head:.

Ce qui me donne une carte de ce type

Bon après cette période d’essai j’ai du modifier un peu le système.

En effet certaine impureté (micro bille) venait bloquer le détecteur de fuite.
J’ai donc du mettre un filtre tamis devant pour le protéger

La carte finale a aussi un peu évolué :
AD