Intro
La pression du filtre à sable reflète le niveau d’encrassement de celui-ci, il est un facteur clef dans l’optimisation de la consommation d’énergie quotidienne d’un piscine, plus il est sale moins il est efficace. Je vous propose dans cet article la mise en oeuvre d’une mesure de pression simple et économique.
Cahier des charges
- Mesurer la pression
- Notifier sur dépassement d’un seuil
Liste des courses
J’ai acheté ce type de capteur. Gamme de pression 30psi ce qui fait 2068.33 mbar.

Entrée: 0-30 psi
Sortie: sortie de tension linéaire de 0.5V ~ 4.5V. 0 sortie psi 0.5V, 15 sorties psi 2.5V, 30 sorties psi 4.5V.
Précision: à moins de 2% de la lecture (pleine échelle).
Filetage: 1/8 « -27 NPT.
Connecteur de câblage: déconnexion rapide étanche à l’eau. Le connecteur d’accouplement est inclus.
Câblage:
- Rouge pour + 5V
- Noir pour le 0 V
- Vert pour le signal analogique
Pour l’interfacer avec HA, j’ai choisi de le raccorder sur la voie analogique A3 de l’ESP32 de la piscine.
Mise en oeuvre
Peut être la partie la plus délicate, sur le ballon j’ai ajouté un Té en laiton entre le ballon et le pressostat d’origine.


Le câblage est simple, le capteur délivre une valeur analogique comprise entre 0.5 et 4.5 V proportionnelle à la pression (pour mémoire 1 psi = 68,9476 mbar):
- 0 psi -> 0 mbar -> 0.5 Vcc
- 15 psi -> 1034.21 mbar -> 2.5 Vcc
- 30 psi -> 2068.43 mbar -> 4.5 Vcc
Le schéma global de l’ESp32 est le suivant:

Un zoom sur la voie analogique A3:

J’utilise un ESp32 Lolin, les voies analogiques sont limitées à 3.3 V, il convient d’adapter la tension de 5V à 3.3 V. Un simple pont diviseur fait l’affaire, vous pouvez le calculer facilement sur ce site:

J’ai choisi ces deux résistances dispo dans mon stock. Ce qui donne pour:
- 0.5 V en entrée -> 0.37 V sur l’entrée Ana soit 0 mbar
- 2.5 V en entrée -> 1.83 V sur l’entrée Ana soit 1034.21 mbar
- 4.5 V en entrée -> 3.3 V sur l’entrée Ana soit 2038.43 mbar
Bien entendu, ces valeurs sont théoriques et dépendent en grande partie de la précision des résistances, mais nous sommes bien d’accord, nous ne sommes pas dans un laboratoire.
Bon ça c’est la théorie car en pratique, j’obtiens en valeur brute (il faut pour ce faire supprimer dans un premier temps la mise à l’échelle « filters: …)):
- Pompe à l’arrêt: 0 bar sur mon pressostat à aiguille et 0.5 V en entrée ANA
- Pompe en marche: 0.8 bars sur mon pressostat à aiguille et 2.21 V en entrée ANA
N’ayant pas de moyen d’étalonner la chaîne de mesure, je me contente de ces 2 valeurs pour calculer la mise à l’échelle, ce qui donne dans l’ESP Home:
# Mesure de la pression filtre
- platform: adc
pin: A0
id: esp125_pression_filtre
name: "Pression filtre"
unit_of_measurement: "Bars"
update_interval: 60s
attenuation: 11db
filters:
- calibrate_linear:
- 0.5 -> 0.0
- 2.21 -> 0.8
# moyenne sur 30 mn + affichage toutes les 10 mn
- sliding_window_moving_average:
window_size: 30
send_every: 1
Pour le fun, je calcule la moyenne glissant sur 30 mn avec un affichage toutes les minutes
Notification
Un automatisme tout simple envoyant une notification si la pression est supérieure à 1 bar pendant plus de 15 mn
alias: 3_1_5 Piscine-Pression haute
description: ''
trigger:
- platform: numeric_state
entity_id: sensor.pression_filtre
above: '1'
for:
hours: 0
minutes: 15
seconds: 0
milliseconds: 0
condition: []
action:
- service: notify.telegram
data:
message: >-
Pression Haute = {{states("sensor.pression_piscine_p")
}}{{-"\n"-}}{{states("sensor.date_time") }}
title: Piscine Alerte Pression Filtre !!!
mode: single