ESPHome, licznik gazu, cały czas zlicza

Hejka.
W końcu podłączyłem “nadajnik impulsów” ni-3 do mojego ESP. Wpiąłem go między D1 a GND.
Kod jaki do niego użyłem wygląda tak:

sensor:
- platform: pulse_meter
  pin:
    number: D1
    mode: INPUT_PULLUP
  internal_filter: 400ms
  name: "Gas consumption"
  filters:
    - multiply: 0.06
  unit_of_measurement: "m³/ min"
  id: gas
  accuracy_decimals: 2
  icon: 'mdi:fire'
  total:
    name: 'Gas total'
    state_class: total_increasing
    device_class: gas
    unit_of_measurement: "m³"
    accuracy_decimals: 2
    filters:
      - lambda: return x * (1.0 / 100);

który zaczerpnąłem z tego postu
Niestety u mnie integracja “szaleje”. Nie przestaje liczyć, choć impulsy nie pojawiają się. Nagrałem filmik z tego szaleństwa.
Sprawdzałem omomierzem czy przypadkiem z czujnikiem jest wszystko w porządku i na bank jest. W momencie gdy czujnik jest zwarty, rezystancja jest na poziomie kilku omów. Gdy nie jest, jest nieskończona, więc błędy hardware’owe wykluczam.
Czujnik przepinałem do innej płytki i również “szalał”.
Gdzie jest pies pogrzebany?

Pewnie długie przewody.
Dorzuć prawdziwy pullup do zasilania MCU (a nie wbudowany w MCU) oraz zewrzyj to wejście GPIO kondensatorem do masy.
Wystarczy wtedy

  pin:
[…]
    mode:
      input: true

czyli tryb wejścia bez włączonego wewnętrznego pullupu

Tak. Przewody bardzo długie.
A tą resztę przetłumacz proszę na polski amatorski.


źródło obrazka, przy okazji kalkulator filtra drgań styków
http://protological.com/debounce-calaculator/
jako rezystor sugeruję 1K (1 kiloom) jako kondensator coś rzędu 100nF-kilka uF (nie wierzę w 400ms drgań styków), z kalkulatora wyjdzie absurdalnie duża pojemność kondensatora dla 400ms.

Jutro przetestuję.
A jeszcze jedna sprawa o której nie wspomnialem. Na tym samym esp mam sterowanie oświetleniem na zewnątrz. Wydaje mi się że ten czujnik od gazu “sieje” i oświetlenie włącza się i wyłącza losowo. Możliwe to?

A wcześniej nie miałeś tego problemu?

Te długie kable to chociaż ta sama para skrętki?

Nie miałem.
Ten kabel to taki ulep, tj.:

  • prawie po całej dlugości (ok.15m) to koncentryk TV (wyciągnąłem go podczas budowa na wszelki wypadek i teraz wykorzystałem do licznika
  • jako że kabel kończył się przy furtce, a do licznika były jeszcze 3m to dołożyłem zwykły - dwużyłowy - linkę (ok.2m)
  • na końcu - jest oryginał, jaki był przy “nadajniku impulsów” - 2m.

Poniżej wklejam zrzut z HA od tego światła:


Licznik podłączyłem 9 września ok. 18.00. Na wykresie widać, że światło włączyło się ok północy. Ok. 12.00, 10 września odłączyłem licznik, który ponownie wpiąłem ok. 16.00 tego samego dnia.
Poniżej jeszcze ciekawsze wykresy - konsumpcji gazu:
obraz
obraz
czyli, jakby w nocy działał dobrze.
P.S. Masz jakiegoś Patronite’a albo buycoffee.to ? Bez Ciebie bym się męczył do końca świata, a Ty od razu sypnąłeś pomysłem. Chętnie bym Ci tą kawę “postawił”, a i pewnie inny, którym pomogłeś, również by coś sypnęli.

tam gdzie koncentryk daj masę na ekranie, na całą resztę nie mam pomysłu (niech zostanie jak jest), łączenia dobrze zaizolowane?

W sumie nie zwracałem uwagi, czy ekran daję do masy. Przepatrzę jeszcze to.
Wieczorem dołożę filtr drgań i zobaczymy.

A nie lepiej Ci będzie tam wsadzić moduł na zigbee z dodatkową baterią? Ja mam tak u siebie i zero problemów. Bateria sądzę że z 3 lata wytrzyma.


1 Like

Obecnie nie mam żadnych urządzeń na Zigbee, ale - nigdy nie mów nigdy

Może warto przeanalizować jakie urządzenie elektryczne (mogące wytwarzać zakłócenia) pracowało w pobliżu w tych godzinach, kiedy masz te radykalne i systematyczne wzrosty (patrząc na godziny pracy jest to dość intrygujące od około 5 rano do około 7 rano oraz koło 19 - 21 ale tu w sumie nie wiadomo od kiedy, bo to początek wykresu).

Tak długi kabel działa jak antena i może zbierać zakłócenia rzutujące na pracę MCU.

Druga i trzecia potencjalna teoria na źródło zakłóceń, to upływności - problemy z izolacją (tu by też mogło pasować inne urządzenie elektryczne włączane w danych godzinach), ewentualnie połączenie różnych mas.

Żadne inne niż wcześniej. Przed chwilą, po podłączeniu czujnika z filtrem, znów ta sama historia ze światłem.

Sprawdziłem filtr. Nie pomogło. Chyba pójdę w Zigbee.

To nie jest odpowiedź, wcześniej nie miałeś “anteny” w postaci 20m kabla, może równolegle z nim są położone inne kable z których pochodzą zakłócenia? - no nie jesteś zbyt wylewny w opisie konstrukcji… swoją drogą przyczyn może być więcej (kabel antenowy nie jest najszczęśliwszym rozwiązaniem, w dodatku przyczyną mogą być upływności).

Do zdiagnozowania problemu by się przydał choćby najprostszy oscyloskop…

1 kiloom nie jest bardzo mocnym pullupem (popłynie tam przez kontaktron prąd 3.3mA), ale nie chciałem przeginać - nie stanowi dużego problemu użycie 100om, ale zależy jaki masz tam stabilizator 3.3V (wtedy prąd w obwodzie kontaktronu zrobi się istotny, bo sięgnie 33mA przy przeciętnym poborze prądu przez całe ESP na poziomie zapewne koło 80mA).

Jakkolwiek montaż MCU blisko czujnika stykowego jest zawsze optymalnym rozwiązaniem - możesz wykorzystać ten koncentryk do zasilania ESP i się podpiąć z MCU bliżej źródła sygnału (choć rozwiązanie bateryjne z czujnikiem Zigbee jest moim zdaniem świetnym pomysłem).

Fakt. O tym nie pomyślałem.

Bo nie ma o czym pisać. ESP siedzi w rozdzielni. Od rozdzielni lecą wspomniane kable zakończone impulsatorem. Równolegle do tych kabli nie lecą żadne inne w których jest napięcie.

Niestety nie mam skąd wziąć ale wychodzi na to, że spędzę przy tym długie godziny zamiast…

pójść tą drogą, Przy okazji zrobię sobie powiadomienie do skrzynki na listy.

W każdym razie czegoś się nauczyłem:

Dziękuję za poświęcony czas.

Możesz jeszcze poprawić filtrowanie zasilania tego ESP - w sposób podobny do tamtego

Spróbuję. To będzie ostatnia szansa rozwiązania kablowego.

Jeśli przygotujesz puszkę pod ewentualne przyszłe rozwiązanie Zigbee, to możesz ESP tam wrzucić - będzie dostatecznie blisko kontaktronu (tak, wiem masz jakieś inne funkcje, więc to by musiała być oddzielna płytka), wtedy koncetrykiem (czy wręcz tym kundlem koncentryk + coś jeszcze) podasz zasilanie.

Dla płytki ESP z wbudowanym stabilizatorem sugeruję podać nieco wyższe napięcie niż 5V (powiedzmy coś w zakresie 6V-9V by rezystancja przewodów nie miała istotnego znaczenia dla jakości zasilania, tu oczywiście też warto dorzucić kondensator elektrolityczny o znacznej pojemności i takim dopuszczalnym napięciu pracy by go nie pokonało to nieco wyższe napięcie - wersja na 16V jest doskonałym wyborem w tej kwestii).

Pomijając te kwestie, to wszelką elektronikę montowaną nawet w “hermetycznych” puszkach należy zabezpieczyć przed wilgocią - najlepiej przez impregnację dedykowanym lakierem (więc połączenia powinny być lutowane, oczywiście gniazd nie zalakierowujemy :stuck_out_tongue: ).
W warunkach zimowych kondensacja jest właściwie pewna, w zasadzie w celach diagnostycznych warto wrzucić jakiś czujnik temperatury (może też wilgotności) by badać środowisko w puszce.