Witam, czy ktoś próbował skonfigurować zliczanie impulsów za pomocą ESP8266 ?
Gazomierz firmy METRIX, posiadam oryginalny impulsator do tego gazomierza. Każdy impuls to
0,01m3
Wszelkie instrukcje w internecie opierają się o ESP32 lub na czujniku optycznym.
angler
(Cezary.K)
2
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 ?
szopen
5
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
szopen
7
Hmm odwróciłeś logikę, ale nie filtrujesz drgań.
Nie skopiowało całej konfiguracji. Już poprawiłem.
szopen
9
Do filtrowania drgań są takie konstrukcje
# Example configuration entry
binary_sensor:
- platform: gpio
pin: D2
name: ...
filters:
- delayed_on: 10ms