[Article] Gestion de sa consommation d'eau

Comment se termine cette histoire au final ? :smiley:

Au final, j’utilise le code suivant :

Code esp comptage

esphome:
  name: shelly-uni 


esp8266:
  board: esp01_1m

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: !secret api_key

ota:
  password: !secret ota_password 

# Enable Web server (optional).
web_server:
  port: 80
  auth:
    username: !secret auth_login
    password: !secret auth_password


# Wifi Config
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  
  # ...
  manual_ip:
    # Set this to the IP of the ESP
    static_ip: !secret ip_su1
    # Set this to the IP address of the router. Often ends with .1
    gateway: !secret ip_gateway
    # The subnet of the network. 255.255.255.0 works for most home networks.
    subnet: 255.255.255.0  

# Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid:  "Shelly-Uni Fallback Hotspot" #!secret ap_ssid_su1  
    password: !secret ap_password_su1 

captive_portal:


##########################
# Device Specific Config
##########################

# Name device mask
substitutions:

  friendly_name1: "Sensor ECS"
  friendly_name2: "Compteur ECS"

globals:
    
  - id: ecs_pulse_counter
    type: float #Le counter n'est pas integer car il sert aussi pour la division m3
    initial_value: "0" 

#################
# Binary Sensor #
#################

# Binary sensor utilisé pour comptage des impulsions et Totalisateur
binary_sensor:

  - platform: gpio
    pin:
      number: GPIO13
      allow_other_uses: true
      mode: INPUT_PULLUP
      inverted: True
    filters:
      - delayed_on: 50ms
      - delayed_off: 50ms 
    name: "${friendly_name1} counter state"
    id: ecs_counter_state

    on_press:
      then: 
        - lambda: |-
            // increment le compteur ECS puis publish mqtt
            id(ecs_pulse_counter) += 1;
            id(ecs_counter_pulse).publish_state(id(ecs_pulse_counter));
            id(ecs_counter_l).publish_state(id(ecs_pulse_counter)/1);
            id(ecs_counter_m3).publish_state(id(ecs_pulse_counter)/1000);

   
####################################
# Sensors with general information.
####################################
sensor:

# Débit d'eau instantané l/mm (0 après 10s)
# Ne pas utiliser pour comptage (comptage erroné)
  - platform: pulse_meter
    name: "${friendly_name1} pulse"
    id: pulse_id_ecs
    pin:
      number: GPIO13
      allow_other_uses: true
      inverted: true
      mode:
        input: true
        pullup: true
    internal_filter: 500ms    
    icon: mdi:water
    timeout: 300s
    unit_of_measurement: 'L/mn'
    filters:
      - multiply: 1

# Comptage impulsion  
  - platform: template
    name: "${friendly_name2} counter pulse"
    id: ecs_counter_pulse
    unit_of_measurement: ''
    accuracy_decimals: 0  # Précision en entiers
    icon: "mdi:counter"
    #update_interval: 5s  # Mise à jour sur changement de valeur

 
# Comptage litres 
  - platform: template
    name: "${friendly_name2} counter l"
    id: ecs_counter_l
    unit_of_measurement: 'L'
    accuracy_decimals: 0  # Précision en entiers
    state_class: total_increasing    
    device_class: water

# Comptage m³ (utilisé pour le compteur services HA)
  - platform: template
    name: "${friendly_name2} counter m3"
    id: ecs_counter_m3
    unit_of_measurement: 'm³'
    accuracy_decimals: 3  # Précision en entiers
    state_class: total_increasing
    device_class: water    
      
############Pour Flash shelly uni -- Tasmota --- Esphome-- mode OTA
# https://ghost.canaletto.fr/flasher-un-shelly-1-avec-esphome/
# http://shellyip/ota?url=http://dl.dasker.eu/firmware/mg2tasmota-ShellyUni.zip   

Le pulse meter me sert à avoir les débits instantanée à titre information (car je suis pas sur de la fiabilité de ce comptage)
J’utilise le counter (binary) pour compter les impulsions, j’ai un resultat correct avec une erreur < à 3%

Il n’y a vraiment aucune raison que le pulse meter ne marche pas @pascal_ha. Je ne comprend toujours pas pourquoi cela ne marche pas chez toi.

Je viens de relever et vérifier mon compteur sur une période assez longue pour être significative, de quasi 6 mois.

  • J’ai consommé 42.251 m3 d’après mon compteur Gianola.
  • Home Assistant a mesuré via le pulse meter 41.478 m3.

Donc il y a effectivement une petite différence, mais qui n’est que de 1.82%. Donc Home Assistant « loupe » effectivement quelques pulses, mais une erreur de moins de 2% reste cependant très acceptable.

Est ce que d’autres personnes ont pu faire des tests avec le pulse meter ? As tu pu faire des test, @Joffrey ?

Salut,Merci pour le tuto c’est ce qu’il me faut. Le souci c’est que le compteur est en rupture partout.
Autre point là ou je voulais le mettre il serait installé verticalement et c’est marqué qu’il doit être à l’horizontale. :frowning:

1 « J'aime »

Oh effectivement, les compteurs Gianola sont bien en rupture en France, mais en précommande. Espérons un réapprovisionnement rapide. Dispo en Suisse par contre

Super tuto !
Une question cependant ; comment serait il possible de remplacer la partie calcul du débit instantané par comptage des impulsions à l’aide d’un ESP par un calcul de différence d’index de mon compteur d’eau (qui remonte déjà dans mon HA) ?

Merci :smiling_face:

Pour calculer le débit, il faut faire la différence entre la valeur d’indexe courante et la valeur précédente en litres, diviser par le temps entre les 2 valeur (en convertissant en litres et mn si besoin).
Cela peut se faire avec un template dans une automatisation qui se déclenche a chaque réception de nouvelle valeur d’index, ou a intervalle régulier.

1 « J'aime »

Merci :slight_smile:

Je pensais qu’il était potentiellement possible de le faire dans une template sans automatisation… mais effectivement ; c’est surement indispensable.
Auriez vous un exemple / idée de template qui contient cette différence par hasard ? (j’avoue que je ne suis pas très fort en template… j’ai un peu du mal à les comprendre assez souvent :/)

Julien aka Shipset

Bonjour à tous,

J’ai une petite question, j’utilise un code assez similaire à celui de pascal_ha.
Tout fonctionnait bien jusqu’à la mise à jour du 15/01.

Sur le même esp, j’ai une sonde température et humidité, qui fonctionne toujours bien.
J’ai essayé de modifier le code, avec celui de pascal, celui de Argonaute, mais rien ne remonte.
Sur mon code d’origine, en débranchant rebranchant l’esp il envoi une info quelques secondes et ça ne marche plus. Lors de la remise à 0 de minuit cela fonctionne une heure de temps…

J’ai essayé les options avancé avec le ping etc je suis un peu à cours d’idée !

merci a vous tous par avance,

bien cordialement,

Cela ressemble plus à un pb d’ESP que de code. Tu es sûr que cela vient de la mise à jour ?
Ce peut être un pb de transfo, cable, wifi, de l’esp lui même…

Essaie de mettre en debug dans le code de l’ESP pour voir dans les log si il y a des erreurs, ou alors trop d’info qui sont envoyée et crée une saturation.

Vérifie le niveau du signal wifi.

Salut @Argonaute

Après un mois de test voici les résultat obtenu de mesure de consommation d’eau.

Pour comparer j’ai utilisé un utility meter en jour, semaine et mois.
Je l’ai comparé au information fourni par « mon eau et moi »

Pour la comparaison semaine et mois je suis à moins de 1% d’écart.
Exemple : sur un mois, mon compteur 7093 et 7159 sur le site.

Sur une semaine 1458 et 1464 sur le site.

Le relevé au jour le jour est pas très parlant, car certains jours c’est exact et d’autres nettement moins.mais je pense que cela vient de la méthode de relevé.

Je n’ai pas refait de test avec le pulse-meter, pour 2 raison le manque de temps, et comme mon relever en comptant les impulsions et plutôt juste, sa m’incite pas a persévérer.

Salut @pascal_ha,
Merci et content que cela marche. Avec ou sans utility meter, il y a donc une solution satisfaisante.
Si d’autres ont testé, ce serait bien d’avoir d’autres retours d’expérience sur l’utility meter.

Merci pour le retour !
J’ai changé l’ESP dans lequel j’ai injecté le même code, mais toujours le même problème.
J’ai changé les câbles même problème. J’ai attribué une ip fixe aussi.
J’ai vraiment noté l’arrêt des remontées depuis ce jour là. (https ://esphome.io/changelog/2023.12.0.html#release-2023-12-6-january-15)
J’avais perdu aussi ce jour la le capteur température/humidité mais en précisant le model c’est reparti. C’est aussi ce qui me fait penser que le wifi et que l’esp fonctionnent.

Je vais tenter cette nuit de remettre votre code et on verra demain. En tout cas merci pour votre retour ! C’est un sacré confort de pouvoir surveiller sa consommation d’eau !

Bon malgré les changements du code toujours pas de résultats…
HA relève bien toute les 5 minutes quant pas d’impulsion, mais j’ai aucune remonté de débit…
J’en viens à me demander si c’est pas mon compteur, mais il a moins d’un an, gianola, pose horizontale et tout…
Bref j’avoue que je « sèche » un peu ! :rofl:

Il faut effectivement savoir si c’est côté esp ou compteur. Donc ton esp marche, mais tu ne reçois plus d’impulsions ?

Le compteur physique du gianola s’incrémente quand tu prends de l’eau ?

Si oui,le capteur (il a une ampoule ILS) peut être défectueux.
Tu arrive a tester avec un ohm metre si les impulsions du compteur se font sur le capteur ? Peut être testé aussi en approchant un aimant du capteur…

Tu dois pouvoir simuler des impulsions en entrée de l’ESP pour voir si il marche en remplaçant le compteur par un bouton poussoir ( ou en branchant 2 fils et en les faisant toucher un certain nombre de fois pour simuler le contact sec du compteur). Un aimant approché a interval régulier du capteur devrait ainsi marcher…

Merci beaucoup !
Problème identifié je pense…
Compteur incrémente, sonde ok…
et la je remarque que lorsque j’ai enlevé et remis la sonde, j’ai eu 2x 2L d’ajouté…
J’ai enlevé la sonde, passé un aimant devant et la j’ai bien les remontées !
Donc je suppose que le compteur gianola de 1 an a quelques jours près est hs…
Acheté sur domotique store je crois, donc la je sais pas bien ce que je peux faire …

Bon, au moins cela confirme qu’il ne faut plus chercher côté ESP.
Attention, ce peut être aussi l’ampoule ILS qui n’est plus assez sensible pour fonctionner avec le compteur. Mais dans tous les cas, il faut reprendre contact avec Domotique Store, les 2 étant vendues ensembles…

En tout cas merci beaucoup pour votre aide !
J’espère que vous n’aurez pas ce soucis, compteur installé en mars 2023 pour ma part, et mon beau frère à installé le sien après et il ne marche plus depuis 1 mois, il va procéder au même test.
Ils vendent le câble à l’unité mais indisponible…
Je la sens mal cette histoire!
Très belle soirée à tous !

Fait troublant, depuis la mise à 0 de cette nuit, la remontée fonctionne plus ou moins.
Quant il y a un débit fort il semblerait que cela compte correctement par contre si on se lave les mains par exemple, la remonté ne semble pas se faire?
Je contacte quant même le revendeur pour le câble ou l’ampoule.

Un compteur est défecteux si la turbine ne tourne plus (à cause de calcaire par exemple). Si le compteur physique s’incrémente au même rythme que celui du compteur de ton fournisseur d’eau (à quelque % de marge d’erreur), c’est que la turbine marche et que c’est le capteur. J’imagine que tu as vérifié cela ?
Question idiote : la capteur est bien correctement enfoncé ?