Pulse_meter zählt falsch

Hallo,
ich habe einen Wasserzähler nach Smarte Wasserzähler – blog.caina.de gebaut,
Also einen ESP mit einem induktiven Pulssensor.
Benutzt habe ich einen c3.
Trotz dem fertigen Sensor, der ja nicht prellen kann, zählt pulse_meter zuviele Pulse.
Wenn ich zb 41 liter verbrauche, zeigt er 46l, oder wenn ich real 31l verbraucht habe, zeigt der esp 44l
Da nur jeden Liter ein Impuls kommt (also ca nach 0,5an, nach weiteren 0,5 aus), kommen die impulse natürlich ziemlich langsam.
Den Filter hab ich schon auf 400ms gestellt…

hier das script:

sensor:
  - platform: pulse_meter
    id: cold_water_meter_pulse
    name: 'Cold Water Meter - FlowRate'
    unit_of_measurement: 'l/min'
    device_class: volume_flow_rate
    state_class: measurement
    internal_filter: 400ms
    accuracy_decimals: 0
    pin:
      number: GPIO21
      mode: INPUT_pullup

    total:
      name: 'Cold Water Meter - Total m³'
      id: cold_water_meter_total
      unit_of_measurement: 'm³'
      accuracy_decimals: 3
      state_class: total_increasing
      device_class: water
      filters:
        - multiply: 0.001
      on_value:
        then:
          - lambda: |-
              float y = round(x * 1000) / 1000;
              id(store_count).state = id(store_count).state - id(water_total_previous) + y ; 
              id(water_total_previous) = y ;
              ESP_LOGD ("global","%f", id(water_total_previous));
              ESP_LOGD ("store","%f", id(store_count).state);
          - homeassistant.service:
              service: input_number.set_value
              data:
                entity_id: input_number.water_meter_store
                value: !lambda return id(store_count).state;

  - platform: copy
    name: 'Cold Water Meter - Total L'
    unit_of_measurement: 'L'
    accuracy_decimals: 0
    state_class: total_increasing
    device_class: water
    source_id: cold_water_meter_total
    filters:
      - multiply: 1000

  - platform: homeassistant
    id: store_count
    entity_id: input_number.water_meter_store
    accuracy_decimals: 3
    internal: False
    unit_of_measurement: "m³"
    state_class: total

Hat jemand ne Idee?

Hi, ich habe einen Zenner-Zähler, der 4 Impulse pro Liter sendet.
Mit dem Pulsmeter kam auch kein vernünftiger Wert raus.
Ich bin dann bei pulse_counter gelandet.
Da ich 4 impulse pro Liter habe, mußte ich den Wert halt mit 0.25 multplizieren.
Nun habe ich in HA die direkte Literangabe.
Wichtig ist, das bei einem Neustart vom ESP alles wieder bei 0 ist!
Da habe ich mir einen Offset gebaut, der den letzten Wert von meinem Wasserzähler übernimmt und auf einen anderen Input_numberüberträgt, bis der Zähler auf 0 spring.
Kann ich dann ja gerne hier reinstellen, wenn du das übernehmen willst.

Hier ist der Code für den ESP.
Port und Umrechnung müssen natürlich angepasst werden.

sensor:
  - platform: pulse_counter
    pin:
      number: GPIO27
      mode:
        input: true
        pullup: true

    name: "Grundwasser Verbrauch"
    id: grundwasser_verbrauch

    update_interval: 1s

    filters:
      - multiply: 0.25

    total:
      name: "Grundwasser Gesamt"
      unit_of_measurement: "L"
      accuracy_decimals: 2

      filters:
        - multiply: 0.25

Ich frage mich, weshalb dann in quasi allen Beispielen die ich so finde, pulsemeter benutzt wird und das dort ja offensichtlich auch funktioniert.
Oder prüfen die alle nicht, ob das Ding auch richtig zählt?
Ich hab da alles durch, von Impulsspannung variieren, Pullup ändern, bis Betriebsspannung des Sensors erhöhen.
Die Impulse bei Strom und Gaszählern kommen doch auch nicht schneller.
Der einzige Unterschied ist, dass der Puls beim Stromzähler kürzer ist.
Vor allem verstehe ich auch nicht, weshalb alle vom einfachen Zählen des gpio abraten.

Gerne, denn da bin ich auch noch am Überlegen, ob ich das über ne Globale esphome Variable, die im Flash gespeichert wird machen soll, oder auf ne andre Art.
Über die automatische Funktion im Energy Dashboard will ichs nicht machen, da ich eh mehrere Zähler auslesen will.

Jetzt probier ich erstmal den pulsecounter. Danke.

Update:
Ich habe den vermutlichen Grund gefunden:
Pulsemeter zählt im Normalfall bei der steigenden Flanke, also wenn das Lichtchen am Sensor ausgeht.
Ab und zu wird aber auch bei der steigenden Flanke zusätzlich ein Impuls gezählt.
Ist das nun ein Bug?

:crayon:by HarryP: Zusammenführung Doppelpost (bei Änderungen oder hinzufügen von Inhalten bitte die „Bearbeitungsfunktion“ anstatt „Antworten“ zu nutzen)