Skip to content

Latest commit

 

History

History
110 lines (82 loc) · 4.27 KB

README.fr.md

File metadata and controls

110 lines (82 loc) · 4.27 KB

ESPHome Water Meter

Read this in other languages: English

Photo du boitier contenant l'électronique

Présentation

Si vous possédez un compteur d'eau (Sensu R-315 pour ma part), ce dernier dispose peut être d'un indicateur vous permettant de connaitre assez précisément la consommation courante. Son fonctionnement est assez simple, un disque (voir photo) visible dans le cadran du compteur tourne à une vitesse proportionnelle au débit d'eau circulant. Il est conçu pour que chaque révolution complète corresponde à un 1L d'eau.

Le disque est constitué d'une partie réfléchissante et d'une partie mat (voir photo ci-dessous), ainsi, en utilisant un capteur adapté, il est possible de détecter la rotation du disque et donc d'en déduire la consommation courante de votre compteur.

Photo du compteur

Afin de détecter la rotation le disque, j'ai utilisé un capteur TCRT5000 disposant d'une LED émettrice IR et d'un photo-transistor dans le même boitier. Il est possible de trouver ces capteurs sur des cartes autonomes avec un amplificateur opérationnel et une résistance ajustable pour un prix très intéressant.

J'ai collé au double face le capteur avec une méthode très approximative mais cela fonctionne très bien, j'ai cependant prévu de faire une pièce imprimable en 3D afin de faciliter l'installation.

Photo du compteur avec le capteur posé dessus

Caractéristiques

Mesures de consommation

  • Consommation journalière
  • Consommation hebdomadaire
  • Consommation mensuelle
  • Consommation annuelle
  • Consommation primaire / secondaire: Des compteurs qu'il est possible de remettre à 0 à tout moment afin d'effectuer des mesures en tout genre
  • Consommation courante: Indique la consommation instantanée
  • Dernière consommation: Indique la dernière consommation (la mesure continue tant que le compteur tourne sans interruption de plus de 5 minutes)

Mises à jour

2024-01-15

  • Mise à jour en utilisant l'intégration pulse_meter (utilisé depuis plusieurs mois avec une bien meilleur précision)
  • Suppression des parties n'étant pas directement en rapport avec la mesure de consommation d'eau (led, mesure température)
  • Ayant changer de compteur, je n'ai plus l'intention de désigner un support adapté pour le compteur Sensu R-315

Réglage

Vous devez modifier la valeur pulse_gpio que vous utilisez pour l'entrée:

substitutions:
  name: watermeter
  friendly_name: "Water meter"
  pulse_gpio: GPIO18

Fonctionnement

Le fonctionnement est assez simple et la partie YAML la plus importante est reportée ci-dessous:

binary_sensor:
  # TCRT5000 pulse counter
  - platform: gpio
    id: water_pulse
    pin:
      number: $pulse_gpio
      allow_other_uses: true
    internal: true
    filters:
       - delayed_on_off: 50ms
       - lambda: |-
          id(main_counter_pulses) += x;
          id(secondary_counter_pulses) += x;
          id(daily_counter_pulses) += x;
          id(weekly_counter_pulses) += x;
          id(monthly_counter_pulses) += x;
          id(yearly_counter_pulses) += x;
          id(event_quantity) += x;
          return x;
    on_state:
       - script.execute: publish_states

Un capteur numérique est déclaré et utilise l'entrée / sortie numérique 18 sur laquelle est branchée le TCRT5000.

Un filtre permet de supprimer les impulsions parasites en provenance du capteur si son état n'est pas défini durant plus de 50 milli-secondes.

Une fois le filtre passé, on atterrit dans la lambda ou le code C est exécuté et qui consiste simplement à incrémenter des globales définies plus haut.

Une autre partie déclare un capteur de type compteur d'impulsion qui permet de connaître la consommation instantanée.

sensor:
  - platform: pulse_meter
    id: water_pulse_counter
    name: "${friendly_name} water consumption"
    pin:
      number: $pulse_gpio
      allow_other_uses: true
    internal_filter: 100ms
    unit_of_measurement: "L/min"
    accuracy_decimals: 2
    timeout: 30s
    icon: "mdi:water"

Fichiers

  • watermeter.yaml: Le fichier de configuration ESPHome
  • network.yaml: Les informations de votre réseau
  • secrets.yaml: Les informations secrètes relatives à votre réseau