Retour aux articles • DOMOTIQUE • Mis à jour en 2026 • 7 min de lecture

Compteur d'Eau Connecté DIY avec ESPHome

Surveillez votre consommation d'eau et détectez les fuites en temps réel en connectant votre compteur d'eau à Home Assistant via ESPHome (ILS Reed, optique TCRT5000, QMC5883L et AI-on-the-edge ESP32-CAM).

Compteur d'Eau Connecté DIY avec ESPHome
💧 Références Officielles ESPHome & Télémétrie Eau
⚡ ESPHome Pulse Counter : esphome.io/components/sensor/pulse_counter • 📈 ESPHome Pulse Meter : esphome.io/components/sensor/pulse_meter • 📷 AI-on-the-edge-device (ESP32-CAM) : github.com/jomjol/AI-on-the-edge-device

Introduction : pourquoi instrumenter son compteur d’eau ?

La surveillance de la consommation d’eau est l’un des projets de domotique les plus rentables et les plus utiles au quotidien. Elle permet non seulement de suivre finement les habitudes du foyer dans le Dashboard Énergie de Home Assistant, mais surtout de détecter les micro-fuites de manière proactive (chasse d’eau qui fuit, groupe de sécurité du chauffe-eau, tuyau enterré percé) avant qu’elles ne causent un dégât des eaux ou une facture de plusieurs centaines d’euros.

Bonne nouvelle : il n’est pas nécessaire d’être plombier ni de couper la canalisation ! Ce projet est 100 % non-invasif et consiste à lire mécaniquement, magnétiquement ou optiquement le cadran du compteur existant à l’aide d’un microcontrôleur ESP8266 (Wemos D1 Mini) ou ESP32 sous ESPHome.

Architecture & Flux : Compteur d'Eau Connecté DIY avec ESPHome

Le Principe : détecter chaque rotation d’un litre

La quasi-totalité des compteurs d’eau divisionnaires ou généraux (Sappel/Diehl Aquarius, Itron, Maddalena, Bmeter) possèdent une petite roue étoilée ou une aiguille qui tourne proportionnellement au débit de l’eau :

  • 1 rotation complète = $X$ litres (le plus souvent 1 tour = 1 litre, indiqué par x 0,001 m³ sur le cadran).
  • Cette roue embarque soit un petit aimant permanent, soit une demi-lune métallique/réfléchissante.
  • En comptant chaque passage devant le capteur (impulsion), ESPHome calcule à la fois le débit instantané (L/min) et le volume cumulé (m³).

Méthode 1 : Capteur Magnétique (ILS / Reed Switch)

C’est la méthode la plus simple, la plus fiable et la moins énergivore si votre compteur possède un aimant interne sur sa roue des litres.

Le Composant : Un Interrupteur à Lame Souple (ILS), aussi appelé Reed Switch. C’est une minuscule ampoule de verre sous vide contenant deux lamelles ferromagnétiques qui entrent en contact dès qu’un champ magnétique passe à proximité. On peut utiliser une ampoule ILS nue (2 fils) ou un module conditionné avec comparateur LM393 (qui ajoute une LED témoin bien pratique pour le calibrage).

Matériel Nécessaire

  • Un capteur Reed Switch (ampoule ILS nue $14\text{ mm}$ ou module LM393) : $\approx 1\text{ €}$
  • Un Wemos D1 Mini (ESP8266) ou ESP32-C3 SuperMini dans un boîtier étanche IP65 : $\approx 3\text{ €}$
  • Un support clipsable imprimé en 3D (PLA/PETG) adapté au diamètre de votre compteur.

Montage et Câblage

  1. Localisez l’aimant : Ouvrez un robinet à faible débit et approchez le capteur du cadran. La LED du module LM393 (ou votre multimètre en mode continuité) doit s’allumer brièvement à chaque tour de la petite roue.
  2. Fixez le capteur : Le positionnement millimétrique au-dessus de l’axe de la roue est déterminant pour ne rater aucune impulsion à fort débit.

Câblage sur Wemos D1 Mini :

  • Module LM393 : VCC $\rightarrow$ 3.3V, GND $\rightarrow$ GND, DO (Digital Out) $\rightarrow$ D2 (GPIO4).
  • Simple ampoule Reed Switch (2 fils) : Une patte $\rightarrow$ GND, l’autre patte $\rightarrow$ D2 (GPIO4). La résistance de tirage interne (INPUT_PULLUP) de l’ESP maintient l’entrée à 3.3V au repos et détecte la mise à la masse lors du passage de l’aimant.
Schéma de câblage d'un module Reed Switch LM393 sur un Wemos D1 Mini (ESP8266).
Schéma de câblage d’un module Reed Switch LM393 sur un Wemos D1 Mini (ESP8266).

Le Code ESPHome (pulse_counter + total)

esphome:
  name: water-meter
  friendly_name: "Compteur d'Eau"

esp8266:
  board: d1_mini

# Connexion Wi-Fi, API chiffrée Home Assistant & OTA...

sensor:
  - platform: pulse_counter
    pin:
      number: D2
      mode:
        input: true
        pullup: true # Indispensable pour un Reed Switch nu
    name: "Débit Eau Instantané"
    id: water_flow_rate
    unit_of_measurement: "L/min"
    accuracy_decimals: 1
    icon: "mdi:water-pump"
    # Anti-rebond mécanique de la lame souple (100ms = jusqu'à 600 L/min max)
    internal_filter: 100ms
    update_interval: 15s
    filters:
      # Si 1 impulsion = 1 Litre, pulse_counter renvoie directement des impulsions/minute = L/min
      - multiply: 1.0

    total:
      name: "Index Total Eau"
      id: water_meter_total
      unit_of_measurement: "m³"
      accuracy_decimals: 3
      device_class: water
      state_class: total_increasing
      icon: "mdi:counter"
      filters:
        - multiply: 0.001 # Conversion Litres -> m³ pour le Dashboard Énergie HA
Animation exécution CLI dans le terminal

Méthode 2 : Capteur Optique Infrarouge (TCRT5000 / CNY70)

Si votre compteur est doté d’un blindage anti-magnétique mais possède une roue crantée rouge/noire ou un demi-disque métallique réfléchissant, l’approche optique infrarouge prend le relais.

  • Le Composant : Le capteur de réflectance TCRT5000 (ou CNY70) combine une LED émettrice infrarouge ($950\text{ nm}$) et un phototransistor récepteur.
  • Fonctionnement : Tant que le faisceau IR éclaire le fond blanc ou le demi-disque brillant, la lumière est réfléchie vers le phototransistor. Dès que la palette noire ou mate passe sous le capteur, le faisceau est absorbé, générant une impulsion franche sur la sortie numérique DO après réglage du potentiomètre de seuil.
  • Configuration ESPHome : Strictement identique au YAML ci-dessus !

Méthode 3 : Émetteur d’Impulsions Officiel (Cyble / Itron / Diehl)

Certains compteurs d’eau disposent d’un logement dédié pour clipser une tête émettrice d’impulsions officielle (Reed ou inductive industrielle) ou sortent directement deux fils secs.

Lorsque le compteur émet plusieurs impulsions par litre (par exemple 87 impulsions par litre sur une turbine de précision), il suffit d’ajuster le diviseur dans le filtre lambda :

sensor:
  - platform: pulse_counter
    pin:
      number: GPIO12
      mode:
        input: true
        pullup: true
    name: "Débit Eau (Turbine)"
    internal_filter: 10ms
    unit_of_measurement: "L/min"
    filters:
      # Exemple : 87 impulsions = 1 Litre
      - lambda: return x / 87.0;
    total:
      name: "Consommation Totale Eau"
      unit_of_measurement: "m³"
      device_class: water
      state_class: total_increasing
      accuracy_decimals: 3
      filters:
        - lambda: return x / (87.0 * 1000.0);

MàJ 2026 Magnétomètre 3 axes, Vision IA (ESP32-CAM) & Vanne Coupe-Eau Automatique

Avec le déploiement généralisé de compteurs récents mieux blindés et des normes domotiques Matter / Zigbee, deux nouvelles approches et un actionneur de sécurité complètent aujourd’hui cette architecture :

Technologie de lectureComposant matérielCoûtAvantages clésLimites
Magnétique (Contact)Ampoule ILS Reed Switch$\sim 1\text{ €}$Ultra-simple, zéro dérive, consommation nulleNécessite un aimant franc et peut rebondir si mal filtré
Magnétique Haute SensibilitéMagnétomètre QMC5883L / HMC5883L (I2C)$\sim 2\text{ €}$Détecte les micro-variations de champ ($\mu\text{T}$) même à travers un boîtier épaisCâblage I2C (SDA/SCL) + seuils haut/bas à calibrer
Optique RéflectanceTCRT5000 / CNY70$\sim 1{,}50\text{ €}$Fonctionne sur les mires optiques sans aimantSensible à la buée et à la lumière ambiante parasite
Vision Edge AI (OCR)ESP32-CAM + AI-on-the-edge-device$\sim 7\text{ €}$Lit l’index absolu exact (rouleaux chiffrés + aiguilles) par réseau de neurones TFLiteNécessite un tube d’éclairage LED stable et alimentation 5V

Coupure d’eau automatique en cas de fuite avérée

Détecter une fuite à 3h du matin sur son téléphone est utile, mais couper automatiquement l’arrivée d’eau générale pendant vos vacances évite le sinistre :

  • L’actionneur : Une vanne motorisée quart-de-tour Zigbee ou Matter-over-Thread (type servomoteur à bras mécanique qui se fixe par-dessus la poignée de votre vanne d’arrêt existante sans plomberie, ou vanne laiton motorisée DN20 avec débrayage manuel).
  • L’automatisation Home Assistant (YAML) :
    1. Fuite franche (Capteur d’inondation au sol) : Si un capteur Zigbee (binary_sensor.fuite_buanderie ou fuite_cuisine) passe à on, fermeture immédiate de valve.arrivee_eau_generale + alerte critique.
    2. Fuite sournoise sur compteur (pulse_counter) : Si le débit ne retombe jamais à 0 L/min pendant 45 minutes consécutives entre 02:00 et 05:00 du matin (et qu’aucune machine à laver ou arrosage n’est en cours), envoi d’une notification interactive avec bouton [Couper l'eau générale].

Aide-mémoire : Dépannage & Bonnes Pratiques ESPHome

Symptôme observéCause probableSolution immédiate
Comptage double ou triple par litreRebond mécanique des lamelles du Reed Switch ou oscillation du comparateur LM393 au seuilAugmenter internal_filter: 100ms (voire 200ms) ou utiliser pulse_meter avec internal_filter_mode: PULSE.
Remise à zéro de l’index au redémarrage de l’ESPLe compteur interne de l’ESP repart de 0 après une coupure électriqueNormal côté ESP : grâce à state_class: total_increasing, Home Assistant gère nativement les remises à zéro dans ses statistiques long-terme sans perdre le cumul du Dashboard Énergie.
Aucune impulsion détectée à fort débitFiltre anti-rebond trop long (1s) qui masque les passages rapides de l’aimantDescendre internal_filter entre 50ms et 100ms (100 ms autorise jusqu’à 10 L/seconde, bien au-delà d’un compteur domestique).

Conclusion

Fabriquer son propre compteur d’eau connecté avec ESPHome et Home Assistant est un projet à moins de 5 € qui s’installe en 15 minutes sans toucher à la plomberie. Associé aux statistiques long-terme du Dashboard Énergie et à une alerte de débit nocturne anormal, il offre une visibilité chirurgicale sur votre consommation et une assurance précieuse contre les dégâts des eaux.