Additionner données pulse meter

Bonjour,

Je n’arrive pas à savoir comment faire ce que je veux. Dans ma tête c’est clair mais la mise en œuvre est cauchemardesque pour moi.

En gros, j’ai un esp32 qui compte ma consommation d’eau. Le « total » fonctionne super bien. Jusque là, tout va bien. Mais lorsque je met à jour ou redémarre mon esp, ben le total se remet à 0. Mais moi, j’aimerais que ca continue d’additionner.
Donc en gros, je pense à une global dans l’esp qui serait réinjecté au redémarrage. Seulement, je ne sais pas comment faire.
Autre option, créer un Template mais encore une fois, je manque de compétences.
A terme, j’aimerais créer un « sensor » avec l’index de mon compteur auquel s’ajouterait le fameux total de l’esp.

Sauriez-vous m’aider?

Merci

Salut Jérome,
Avec Home assistant, je ne sait pas comment réinjecter une valeur dans ton ESP.
Peut être que Node-red pourrait faire cela plus simplement.
Par contre si tu es à l’aise avec la prog de ton ESP tu peux toujours mémoriser ta dernière valeur en EEprom et reprendre cette valeur au redémarrage de ton ESP.
Tuto ici

Bonsoir

Je ne sais pas si cela pourra t’aider, Mais pour ma part J’ai créer un compteur dans HA.
Celui ci est incrémenter par le pulse meter a l’aide d’une automatisations. De cette manière, le compteur totalise ma consommation et n’est pas perdu.

J’utilise un compteur a impulsion 1 Litres.
Automatisation :

alias: Compteur Eau Impulsion
description: comptage impulsion litres
trigger:
  - platform: state
    entity_id:
      - binary_sensor.sensor_impulsion
    from: "off"
    to: "on"
condition: []
action:
  - service: counter.increment
    data: {}
    target:
      entity_id: counter.compteur_impulsion
mode: single

Pour ESP :

# Name device mask
substitutions:
  name: adoucisseur
  friendly_name: "Fleck"
  friendly_name1: "sensor"
  friendly_name2: "Compteur"

##########
# sensor #
##########
sensor:

###########################
#      COMPTEUR EAU       
## Counter meter - Debit detecteur compteur d´eau
  - platform: pulse_counter
#    pin: GPIO32
    pin:
      number: 32
      inverted: true
      mode:
        input: true
        pullup: true
    unit_of_measurement: 'L'
    id: pulse_id
    name: "${friendly_name1} pulse"
    update_interval : 30s 
    filters:
      - lambda: return (x/2);
    
# Consommation eau du jour L et  m3
  - platform: integration
    name: "${friendly_name2} Litre"
    id: pulse_l
    unit_of_measurement: "L"
    state_class: total_increasing
    accuracy_decimals: 0
    sensor: pulse_id
    time_unit: min
    device_class: water
  - platform: integration
    name: "${friendly_name2} m3"
    id: pulse_m3
    unit_of_measurement: "m³"
    state_class: total_increasing
    accuracy_decimals: 3
    sensor: pulse_id
    time_unit: min
    device_class: water
    filters:
      - lambda: return (x/1000);
##################
## Binary sensor #
##################
binary_sensor:
##  Définition du comptage des impulsions en L 
  - platform: gpio
    name: ${friendly_name1} impulsion
    id: impulsion_cpt
    pin:
      number: GPIO32
      mode: INPUT_PULLUP
      inverted: True

J’ai une petite erreur de comptage mais < 2% entre mon compteur réel et le compteur HA (ou ESP). Cela n’est pas très gênant (pour moi)

1 « J'aime »

Salut,

Merci de ta réponse.
Je pensais effectivement à cela mais via une variable.
Alors, j’ai voulu regarder ton tuto mais j’ai directement eu un gros mal de tête lol.
Je ne suis pas calé en programmation d’autant plus que le tuto traite des arduino et qu’il faut transposer cela à esphome.

En tout cas merci d’avoir pris le temps d’essayer de m’aider.

Bonsoir,
Merci aussi de ta réponse.
Faut que je regarde à ça à tête reposée car j’ai eu énormément de mal à avoir un code fonctionnant nickel et il est différent du tiens. Faudrait pas que ça chamboule tout chez moi… d’ailleurs, je ne sais pas si ça joue dans quoi que ce soit mais moi c’est pulse meter et toi pulse counter. Je te passe les détails mais je suis obligé de passer par le meter.
Je vais essayer mais ta partie binary sensor me laisse perplexe, car chez moi, à chaque fois que je l’utilise, rien ne remonte.
Je vais essayer et te tiendrai au jus.
Pour info, mon code, que j’ai mis du temps à peaufiner, remonte les infos sans aucune erreur de comptage.

Merci à toi

Bonjour Jérôme

Si tu peux partager ton code, j’ai un compteur ECS a poser. Ce sera l’occasion de tester.

Merci

Soit par un enregistrement sur la flash, mais c’est déconseillé à cause du nombre d’écriture.

Soit par mqtt. Esphome va lire dans le brocker la dernière valeur
mqtt:

on_connect:

C’est pas parfait surtout si le brocker mqtt redémarre aussi.

Bonjour,

J’essaie d’appliquer l’article « Gestion de sa consommation d’eau » Gestion de sa consommation d'eau
De mon côté, je reçois 1 impulsion par litre en Zwave par l’intermédiaire d’un Fibaro Smart Implant
Additionner les litres à chaque impulsion fonctionne.
Comment puis-je calculer le débit instantané en me basant sur les impulsions ?

Merci d’avance,