Une solution complète de récupération des données Eau, Gaz et Electricite

Même question : avez vous mis un filtre sur le temps de détection ?
Et quel compteur avez vous ?
Phil

Alors pourquoi 200 ? Aucune idée c’est juste pour éviter que ça ne compte des impulsions parasites .
Vous pouvez donner votre code ? Que je compare ?
Phil

Bonjour,
Ah ben je me rend compte que j’ai quand même copié une partie de votre code en l’adaptant pour qu’il fonctionne chez moi. Avec le vôtre, je ne sais plus si les litres ne correspondaient pas ou si je n’avais aucun relevé.
J’ai fait une copie d’écran car avec ma tablette, impossible de sélectionner dans esphome.

Je suis en pulse_meter et j’ai un filtre plus grand que le votre

########### EAU ##################################################################################

Debit detecteur compteur d´eau

  • platform: pulse_meter
    id: capteur_inductif_eau_pulse
    pin:
    number: GPIO25
    mode: INPUT_PULLUP
    name: « Debit compteur d’eau »
    unit_of_measurement: « l/mn »
    icon: mdi:water
    internal_filter: 200ms

#########################

Consommation Totale d’Eau Jour

total:
  name: "Compteur Eau Jour"
  icon: mdi:water
  device_class: water   
  unit_of_measurement: 'L'
  accuracy_decimals: 0
  filters:
    - multiply: 1  # (pour resrer en l)
  id: compteur_eau_jour

#########################
#########################

Consommation eau du jour en m3

  • platform: template
    name: « Compteur eau Jour m3 »
    icon: mdi:water
    lambda: |-
    return id(compteur_eau_jour).state * 0.001;
    device_class: water
    unit_of_measurement: « m³ »
    accuracy_decimals: 3
    id: compteur_eau_jour_m3
    state_class: total_increasing

########### EAU ###############################################################################

Phil

J’ai compris pourquoi mon filtre est plus petit. C’est parce que je suis en esp32 et le plus que je peux mettre pour le filtre est 13us

Pas en pulse_meter je crois
Vous êtes en counter

Ce qui me donne l’occasion, même si un peu HS de poser la question : quelle différence entre ‹ pulse_meter › et ‹ pulse_counter ›? J’avoue que même en lisant, et relisant la doc, mes neurones n’ont pas saisis :roll_eyes:

Je pense qu’il y a aussi un soucis de tension.
La tension minimale de fonctionnement du LJ18 est de 5V. Or, un ESP32 sur la branche 5V, ne délivre que 4.8V, voir même pour moi 4.3V car je l’ai branché avec un câble USB de 10m.

Je me suis aussi rendu compte que la couronne était détectée plusieurs fois sur un tour, mais pas toujours le même nombre.
Je suppose que c’est dû au problème d’alimentation.
En l’état, je n’ai même pas besoin d’abaisser la tension, car avec 4.3V aux bornes du capteur, il me donne 3.1V en sortie.

Effectivement ce n’est pas clair clair !
Je crois que j’avais changé afin de pouvoir mettre un filtre plus long
Phil

bonsoir

Je viens aussi de poser un compteur a impulsion (1L par impulsion) de ce type

J’ai essayé plusieurs code, mais j’avais un problème il prenait les impulsions a la monté et a la descente du contact reed.

J’ai donc utilisé le code ci dessous pour éviter ce problème, mais il semblerais que j’ai un décalage, car j’ai un écart de 15% entre le compteur ESP et le compteur réel.
J’ai utilisé un internal_filter à 50ms et un internal_filter_mode à pulse, par sur que les 2 soit utile ?
faut il que j’utilise un multiply pour corriger ?

Résumé
############################################
#         EAU DEBUT      
############################################   
## Debit detecteur compteur d´eau
  - platform: pulse_meter
    id: capteur_inductif_eau_pulse
    pin: 
      number: GPIO32
      mode: INPUT_PULLUP
    name: "${friendly_name2} Debit d'eau" 
    unit_of_measurement: "l/mn"
    icon: mdi:water
    internal_filter: 50ms
    internal_filter_mode: pulse
    
# Consommation Totale d'Eau Jour
    total:
      name: "${friendly_name2} Eau (L)"    
      icon: mdi:counter
      device_class: water   
      unit_of_measurement: 'L'
      accuracy_decimals: 0
      filters:
        - multiply: 1  # (pour resrer en l)
      id: compteur_eau_l
    
# Consommation eau du jour en m3
  - platform: template
    name: "${friendly_name2} eau (m3)"
    icon: "mdi:counter"
    lambda: |-
      return id(compteur_eau_l).state * 0.001;
    device_class: water
    unit_of_measurement: "m³"
    accuracy_decimals: 3 
    id: compteur_eau_m3
    state_class: total_increasing

Je suis en test depuis Samedi, si vous avez une idée ou un conseil je suis preneur.

Merci

https://forum.hacf.fr/t/une-solution-complete-de-recuperation-des-donnees-eau-gaz-et-electricite

Bonjour @Pbranly

Merci pour le lien, je me suis inspiré de ton projet, a la différence prêt, que mon compteur me donne 1 impulsion par litre (ampoule Reed 2 fils) et non pas X impulsion pour 1 litres.
Mon souci c’est que j’ai une différence de comptage entre mon compteur « ESP » et mon compteur Réel exemple 10L passé dans le compteur et seulement 6 à 7 affiché par ESP.
Je suis entrain d’essayer de faire des test, pour corriger ce problème
Je n’ai pas bien saisi la différence entre les Pulse-meter et les pulse-counter ?

Bonjour,
Je suis ma conso de gaz après avoir suivi le tuto sur le site auto-domo en utilisant le bouton Zigbee de chez Ikea. Depuis 2 mois que le système est en place j’ai constaté des différences avec les relevés sur le site de grdf (systématiquement en dessous du relevé grdf)
@Pbranly vous avez poster un message sur le site pour solutionner le problème d’erreur de comptage qui consiste à modifier l’automatisme:

alias: Compteur litres gaz zigbee
description: «  »
entity_id:
– sensor.sonde_gaz_action
attribute: action
to: « on »
condition: []
action:
– service: input_number.set_value
data:
value: « {{ states(‘input_number.compteur_gaz_litres_zigbee’) | int + 10 | int }} »
entity_id: input_number.compteur_gaz_litres_zigbee
mode: single

Du coup après avoir adapter votre automatisme à celui d’origine je perds carrément l’automatisme dans Home Assistant ! Je me demandais donc dans quelle mesure l’automatisme devait être modifier/non modifier ?
Merci

Bonsoir
Actuellement j’ai ça dans mon automatisme et ça fonctionne parfaitement

alias: Compteur litres gaz zigbee
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.sonde_gaz_action
    attribute: action
    to: "on"
condition: []
action:
  - service: input_number.set_value
    data:
      value: "{{ states('input_number.compteur_gaz_litres_zigbee') | int + 10 | int }}"
    entity_id: input_number.compteur_gaz_litres_zigbee
mode: single

Philippe

Bonjour
Merci j’ai testé cette automatisme pour le moment ça fonctionne mais il semblerait qu’au changement de jour (après minuit) l’automatisme disparait littéralement !! J’utilise des utility meter est ce que ça peut expliquer le soucis ?
Merci

Bonjour
Un automatisme qui disparaît est peu probable .
Il faudrait que tu postes toutes tes configs pour comprendre le problème …et quel problème surtout
Phil

Mon sensor.yaml:

      ################
      ################
- platform: template
  sensors:
    gaz_energy:
      friendly_name: "Gaz Energy"
      unit_of_measurement: 'm³'
      value_template: "{{ states('input_number.gaz_counter') | int / 1000 | round(3) }}"
      device_class: gas      

      #####################
- platform: systemmonitor
  resources:
      - type: disk_use_percent
        arg: /home
      - type: memory_use_percent
      - type: swap_use_percent
      - type: processor_use
      - type: processor_temperature
      - type: last_boot
############################

- platform: command_line
  name: CPU Temperature
  command: "cat /sys/class/thermal/thermal_zone0/temp"
      # If errors occur, make sure configuration file is encoded as UTF-8
  unit_of_measurement: "°C"
  value_template: "{{ value | multiply(0.001) | round(1) }}"
  #device_class: measurement
#   customize:
#   sensors:
#       sensor.cpu_temp:
#       device_class: measurement
#################################

- platform: gazpar
  username:xxxxxxxxx
  password: xxxxxxxxx
  pce_identifier: xxxxxxxxx
  tmpdir: /tmp
  scan_interval: '01:00:00'

Mon config.yaml:

# Example configuration.yaml entry
input_number:
  slider1:
    name: Slider
    initial: 30
    min: -20
    max: 35
    step: 1
  box1:
    name: Numeric Input Box
    initial: 30
    min: -20
    max: 35
    step: 1
    mode: box

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
sensor: !include sensors.yaml

# SSL/TLS
http:
  base_url: patgeohome.duckdns.org:8123
  ssl_certificate: /ssl/fullchain.pem
  ssl_key: /ssl/privkey.pem

# Text to speech
tts:
  - platform: google_translate



### inluxdb
influxdb:
  host: a0d7b954-influxdb
  port: 8086
  database: homeassistantDB
  username: !secret influxdb_user
  password: !secret influxdb_password
  max_retries: 3
  default_measurement: state
  
utility_meter:
  gaz_total_usage_yesterday:
    source: sensor.gaz_energy
    cycle: daily
    
  gaz_total_usage_hourly:
    source: sensor.gaz_energy
    cycle: hourly
    
  gaz_total_usage_daily:
    source: sensor.gaz_energy
    cycle: daily

  gaz_total_usage_weekly:
    source: sensor.gaz_energy
    cycle: weekly

  gaz_total_usage_monthly:
    source: sensor.gaz_energy
    cycle: monthly

  gaz_total_usage_quarterly:
    source: sensor.gaz_energy
    cycle: quarterly

  gaz_total_usage_yearly:
    source: sensor.gaz_energy
    cycle: yearly

  energy_total_usage_daily:
    source: sensor.gas_energy
    cycle: daily
    
  energy_total_usage_weekly:
    source: sensor.gas_energy
    cycle: weekly
      
  ############################
  #####Compteur_Gaz###########
  ############################
template:
- sensor:
  - name: gas_energy
    unit_of_measurement: 'kWh'
    availability:  >
      {{ is_number(states('sensor.gazpar')) }}    
    state: >
      {% set nextValue = states('sensor.gazpar') | float %}
      {% set currentValue = states('sensor.gas_energy') | float(0.0) %}    
      {% if (not is_number(states('sensor.gas_energy'))) or (nextValue > currentValue) %}      
        {{ nextValue }}
      {% else %}
        {{ currentValue }}
      {% endif %}
    icon: mdi:fire
    device_class: energy
    state_class: total_increasing
  ###################
  ###################

et mon automation.yaml:

alias: 3_clic_gaz_clic1
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.gaz_energy
    attribute: action
    to: "on"
condition: []
action:
  - service: input_number.set_value
    data:
      value: "{{ states('input_number.gaz_counter') | int + 10 | int }}"
    entity_id: input_number.gaz_counter
mode: single

Je débute avec Home Assistant donc les config sont" relativement vide"… :grin:
Merci
Par contre est ce que je ne devrais pas ouvrir un nouveau post ?

Par contre depuis la modification de l’automatisme l’input nomber ne bouge pas (mon chauffage au gaz vient de s’enclencher et je n’ai plus rien qui remonte)

Tu as relance home assistant ?
Vous tu ton sensor.gaz_action passer à on quand il y a de la conso ? Un truc facile : prend le bouton en main au chaud (! Si ton compteur est dehors) et génère des clics à la main . Et tu remonte la chaîne .
Tu dois voir les clics
Si il`y a des clics, l’automatisme doit démarrer
Si pas de clics, commence par debugger ça

Oui j’ai relancé Home Assistant, du coup pour être sur que ça fonctionne j’ai relancé la config de base (identique à celle du site auto-domo ) et ça marche, je dois quand même faire la vérif en appuyant physiquement sur le bouton ?
En tout cas merci pour le coup de main!!