Contents
Intro
Dans cet article, je vous propose de découvrir un projet que j’ai récemment mis en place pour surveiller la consommation d’eau de ma piscine : un compteur d’eau connecté basé sur un ESP8266 (Wemos D1 Mini) et programmé avec ESPHome. Ce petit dispositif me permet de suivre en temps réel le débit d’eau (en litres par minute) et le volume total consommé (en m³), directement depuis mon interface Home Assistant. Voici comment j’ai procédé, avec le code complet et quelques explications pour vous aider à reproduire ce projet chez vous !
Pourquoi ce projet ?
En tant que passionné de domotique, j’aime avoir un contrôle précis sur les ressources de ma maison, y compris l’eau utilisée pour ma piscine. Que ce soit pour détecter une fuite, surveiller le remplissage ou simplement mieux gérer ma consommation, ce compteur connecté est une solution économique et efficace. Avec un capteur de débit d’eau (modèle USS-HS43TI), un ESP8266, et la puissance d’ESPHome, j’ai pu intégrer ces données directement dans Home Assistant pour une visualisation et des automatisations simplifiées.
Le matériel utilisé
- ESP8266 Wemos D1 Mini : Une petite carte compacte et abordable, parfaite pour les projets IoT.
- Capteur de débit d’eau USS-HS43TI : Ce capteur génère des impulsions proportionnelles au débit d’eau (8 impulsions par litre par minute, soit 477 Hz pour 1 litre). Ali Express
- Quelques câbles pour connecter le capteur à la carte.

Le code ESPHome
Voici le programme complet que j’ai utilisé pour configurer mon ESP8266 avec ESPHome. Ce code est adapté à mon réseau local et à mon capteur, mais vous pouvez facilement le modifier pour vos propres besoins.
substitutions:
device_name: esp173-cpt-eau-piscine
adress_ip: "192.168.0.173"
friendly_name: esp173
time_timezone: "Europe/Paris"
esphome:
name: ${device_name}
esp8266:
board: d1_mini
framework:
version: recommended
wifi:
networks:
- ssid: !secret wifi
password: !secret mdpwifi
reboot_timeout: 5min
manual_ip:
static_ip: ${adress_ip}
gateway: 192.168.0.254
subnet: 255.255.255.0
dns1: 192.168.0.192
dns2: 192.168.0.37
# Enable logging
logger:
level: INFO
# Enable Home Assistant API
api:
ota:
platform: esphome
web_server:
port: 80
binary_sensor:
#Etat de la connection
- platform: status
name: "${friendly_name}_Status"
sensor:
# USS-HS43TI
# F(Hz)= 8*flow rate(Q)(l/min)
# 1L=477Hz,
# D4
- platform: pulse_meter
pin: RX
name: "${friendly_name} Cpt Eau Piscine"
unit_of_measurement: "litre/mn"
icon: "mdi:water"
filters:
- lambda: return (x/(8*60));
total:
name: "${friendly_name} Cpt Eau Piscine Total"
unit_of_measurement: "m³"
accuracy_decimals: 3
device_class: water
state_class: total_increasing
filters:
- lambda: return (x/(8*60)/1000);
# Informations WI_FI
- platform: wifi_signal # Reports the WiFi signal strength/RSSI in dB
name: "${friendly_name} WiFi Signal dB"
update_interval: 60s
############### TEMPLATE ######################"
#
switch:
- platform: restart
name: "${friendly_name} Restart"
Explications du code
- Substitutions : J’ai défini des variables comme le nom de l’appareil (esp173-cpt-eau-piscine), son adresse IP statique (192.168.0.173), et un nom convivial (esp173) pour une meilleure lisibilité dans Home Assistant. Le fuseau horaire est réglé sur Europe/Paris.
- Configuration de l’ESP8266 : J’utilise une Wemos D1 Mini (board: d1_mini) avec la version recommandée du framework ESPHome.
- Connexion Wi-Fi : Le module se connecte à mon réseau Wi-Fi avec une IP statique pour éviter les conflits. Les identifiants Wi-Fi sont stockés dans un fichier secrets.yaml (via !secret).
- Capteur de débit :
- Le capteur USS-HS43TI est connecté à la broche RX (D4 sur la Wemos D1 Mini).
- J’utilise le composant pulse_meter d’ESPHome pour compter les impulsions générées par le capteur.
- Le débit est calculé en litres par minute avec la formule x/(8*60) (où x est le nombre d’impulsions par seconde, 8 est le facteur du capteur, et 60 convertit les secondes en minutes).
- Le volume total (en m³) est obtenu avec x/(8*60)/1000 pour convertir les litres en mètres cubes.
- Autres capteurs et fonctionnalités :
- Un binary_sensor (status) me permet de vérifier l’état de la connexion de l’ESP.
- Un capteur wifi_signal affiche la force du signal Wi-Fi en dB, mis à jour toutes les 60 secondes.
- Un switch de redémarrage (restart) est ajouté pour pouvoir redémarrer l’ESP à distance depuis Home Assistant.
- Intégration avec Home Assistant : Grâce au composant api, l’ESP est automatiquement détecté par Home Assistant. J’ai aussi activé les mises à jour OTA (ota) et un serveur web (web_server) pour accéder à l’interface de l’ESP via un navigateur.
Intégration dans Home Assistant
Une fois le firmware téléversé sur l’ESP8266 via ESPHome, l’appareil est apparu automatiquement dans Home Assistant. J’ai ensuite créé un tableau de bord pour visualiser :
- Le débit instantané de l’eau de la piscine (en litres par minute).
- Le volume total consommé (en m³), avec un historique pour suivre l’évolution.
- La force du signal Wi-Fi, pour m’assurer que l’ESP reste bien connecté.

Ce que ce projet m’apporte
Ce compteur connecté me permet de garder un œil sur l’eau utilisée pour ma piscine, ce qui est particulièrement utile pour détecter des anomalies (comme une fuite) ou pour mieux gérer le remplissage. Les données sont accessibles en temps réel sur mon interface Home Assistant, et je peux même configurer des notifications si le débit dépasse un certain seuil.
Conclusion
Si vous avez une piscine ou un autre système à surveiller, ce projet est un excellent moyen de vous initier à ESPHome et à la domotique DIY. Le matériel est abordable, et ESPHome rend la configuration accessible, même pour les débutants. N’hésitez pas à adapter le code à vos besoins et à partager vos propres projets en commentaire !
Liste des publications en lien avec cet article:
- Filtration avec ESPHome et ESP32
- Filtration avec « AppDaemon »
- Filtration avec « Pool Pump Manager«
- Mesure de puissance électrique
- Mise à niveau automatique
- Mesure du pH
- Régulation du Ph
- Mise Hors Gel
- Mesure de pression
- Mesure consommation d’eau
- Panneau de contrôle avec un ESP32
- Analyse de l’eau avec PoolLAB2.0