Licznik impulsów ESP Home (ESP8266) dla gazomierza METRIX

Witam, czy ktoś próbował skonfigurować zliczanie impulsów za pomocą ESP8266 ?
pobrane

Gazomierz firmy METRIX, posiadam oryginalny impulsator do tego gazomierza. Każdy impuls to
0,01m3

pobrane

Wszelkie instrukcje w internecie opierają się o ESP32 lub na czujniku optycznym.
ba4fc709025eb419ead4a6fa8f45eb8cfbf65d98

Jest to dość dobrze opisane w dokumentacji:

Moja konfiguracja w ESp8266:

sensor:
  - platform: pulse_counter
    pin: 
      number: D5
      mode: INPUT_PULLUP
    name: "Licznik Gazu"
    update_interval : 60s
    filters:
      - lambda: |-
          static float total_value = 0.0;
          total_value += x * 0.01;
          return total_value;
    unit_of_measurement: "m³"
    accuracy_decimals: 2
    icon: 'mdi:fire' 

Problem polega na tym że zlicza mi zamiast 1 impulsu co 0,01m3 to 3 lub 4.

Ktoś wie gdzie mam błąd i podpowie ?

Możliwe, że masz drgania kontaktronu przy jego załączaniu, można to filtrować:

Ok sprawa załatwiona. Faktycznie chodziło o filtrowanie. Wrzucam kod może komuś się jeszcze przyda.

binary_sensor:
  - platform: gpio
    name: "Magnetic Sensor"
    pin:
      number: D5
      inverted: true
      mode: INPUT_PULLUP
    internal: true
sensor:
  - platform: pulse_counter
    pin: 
      number: D5
      inverted: true
      mode: 
        input: true
        pullup: true
    name: "Licznik Gazu"
    update_interval : 60s
    filters:
      - lambda: |-
          static float total_value = 0.0;
          total_value += x * 0.01;
          return total_value;
    unit_of_measurement: "m³"
    accuracy_decimals: 2
    icon: 'mdi:fire' 
1 polubienie

Hmm odwróciłeś logikę, ale nie filtrujesz drgań.

Nie skopiowało całej konfiguracji. Już poprawiłem.

Do filtrowania drgań są takie konstrukcje

# Example configuration entry
binary_sensor:
  - platform: gpio
    pin: D2
    name: ...
    filters:
      - delayed_on: 10ms