sensor:
- platform: pulse_counter
pin: GPIO0
name: "Water Usage"
update_interval: 10s
unit_of_measurement: 'gal'
filters:
# reports in pulses/min, so divide by 6 and by 64 pulses per gallon
multiply: 0.0026041667
Sensor rejestrował przy otwartym obwodzie (zakładam przez pullup programowy), przy połączeniu do masy lub Vcc nie rejestrował. Więc cosik robi. Teraz muszę jeszcze coś pokombinować żeby działało odwrotnie
Jutro będę się jeszcze bawił, coś takiego znalazłem:
Pewnie zadziała, ale wcięcia całkiem wywiało z tego YAMLa, więc będziesz miał nieco rzeźby by go poprawić.
Po pełnej dokumentacji nie chciało mi się rzeźbić, ale masz to https://tttapa.github.io/ESP8266/Chap04%20-%20Microcontroller.html
więc jednak można włączyć wewnętrzny pullup, a zatem prościej będzie wpiąć kontaktron między GPIO a masę.
PS sugeruję wpiąć rezystor 330R (lub nieco więcej) szeregowo z kontaktronem (tzn. musu nie ma, ale ja bym tak zrobił by mieć święty spokój i się nie zastanawiać czy w stanach nieustalonych się coś spieprzy, czy nie i to bez kopania po tej dokumentacji producenta, do której chyba nikt nie zagląda).
I wyjaśnienie czemu akurat taka wartość - obciążalność wyjścia (tak - rozpatruję to GPIO jako wyjście, mimo, że użytkowo będzie wejściem) to 12mA, mamy 3,3V, więc by nie popłynął prąd większy od 12mA wystarczyłoby 275omów, a 330omów to najbliższa wyższa od obliczonej wartość w szeregu E12 (można by jeszcze zrobić jakąś prostą symulację “worst case”, ale nie przesadzajmy, przy 3,6V też tyle wystarczy)
Wrzuć kompletny kod (nawet jeśli się teraz nie kompiluje), to może linter podpowie coś w sprawie błędów (tak te podpowiedzi niekoniecznie wskazują faktyczne błędy, ale zawsze jednak trochę coś tam podpowiedzą), a takie wrzucanie kodu (czy jak wolisz skecza, bo to w sumie konfig, a nie realny kod) po kawałku to trochę takie rzucanie ewentualnemu próbującemu pomóc kłód pod nogi…
Zanim się zabrałem za
to zawartość posta się zmieniła, a ciekaw byłem jaka jest kwestia z tymi wartościami, bo pożydziłeś informacji - była za dużo za mało, jakaś reguła, czy może całkiem od czapy, kiedyś (nie wiem czy nie przez chwilę) w tym wątku był kod do licznika w wersji amerykańskiej - liczącego w galonach
Ogarnięcie składni polega na… skorzystaniu z dokumentacji.
Nie nie. Wszystkie sensory typu pulsem counter
liczą imp/min. A mnie chodzi bo sumę impulsów, bo 1 imp 1 litr. Nie potrzebuję niczego więcej. Bo w Home Asistant sobie w utility meter zobie.
Ten kod co jest zwraca mi tylko 0 lub 1 ale nie potrafię zliczyć impulsów, chodzi mi o sume, wiex generalnie tylko coś muszę grzejnąć w ostatniej części
Guzik prawda… nie definiujesz update_interval więc defaultowo wynosi 60s więc tylko Ci sią wydaje.
jesli go zmienisz będziesz miał np 1imp/sek.
Używasz kontaktronu więc brakuje deboucing tzn … internal_filter na poziomie 100ms , defaultowe 13us to stanowczo za mało.