Tematem zacząłem się już interesować od pojawienia się wersji Home Assistant 2022.11, gdzie dodano oficjalnie pomiar zużycia wody do zakładki Energii. Wszystko wydawało się na prostą sprawę, jest masa nakładek do zliczania impulsów, ale niestety do mojego licznika żadna się nie naddawała. Przynajmniej ja takiej nie znalazłem. Więc przyszła pora na kombinowanie. W ruch poszedł czujnik odbiciowo optyczny, a nie czujnik indukcyjny jak to większości nowych liczników wody wystarczy. I to wszystko za kwotę 4 zł. Tak dobrze widzisz, za 4 zł możesz monitorować poziom zużycia wody przez domowników.
Potrzebne materiały:
– czujnik odbiciowy optyczny TCRT5000 ważne, aby był ten ze zdjęć lub linków.
– Wemos D1 Mini
– zasilacz/ładowarka 5V
– przewód LGY 3×0.34
– cyna-lutownica
– śrubka, wkręt
– rzep kablowy, trytytka
– drukarka 3D (opcjonalnie)
– klej typu „Kropelka”
Budowa Elektroniki
Jak widać, nie ma nic skomplikowanego w podłączeniu czujnika optycznego do płytki Wemos D1 Mini. Użyłem przewodu LGY 4×0.14mm bo taki miałem. Zasilanie z zasilacza 5V, który również posiadałem.
Oprogramowanie
Z pomocą oczywiście przychodzi ESPHome. Kod w sumie bardzo prosty. Wystarczy skopiować i wkleić do waszego ESPHome. Nie wiesz jak to zrobić? Tu opisywałem pierwsze kroki z ESPHome. Pamiętaj, aby zmienić nazwę Twojej sieci WiFi oraz hasło.
substitutions:
device_name: "Licznik Wody" #Nazwa Twojego urządzenia wyświetlna w Home Assistant
esphome:
name: "licznik-wody" #Wprowadź nazwę Twojego urządzenia w ESPHome.
esp8266:
board: d1_mini #Twój moduł ESP
# Enable logging
logger:
# Enable Home Assistant API
api:
ota:
web_server:
port: 80
# Parametry sieci WiFi
wifi:
networks:
- ssid: "Nazwa Twojej Sieci"
password: "Haslo Twojej Sieci"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "D1-Mini"
password: "Haslo Twojej Sieci"
captive_portal:
# Pobieranie czasu z HA
time:
- platform: homeassistant
id: homeassistant_time
# Dioda LED Informacyjna o stanie połącznia.
status_led:
pin:
number: GPIO2 # PIN D4
inverted: yes # "yes" - Dioda mryga gdy nie można nawiązać połączenie.
# "no" - Dioda świeci gdy połączenie jest nawiązane.
# Przyscisk Restartu Urządzenia
switch:
- platform: restart
name: "${device_name} Reset"
#Global dla Total Water Pulse
globals:
- id: total_water_pulses
type: int
restore_value: yes
binary_sensor:
# Status Urządzenia
- platform: status
name: "${device_name} Status"
- platform: gpio
id: internal_pulse_counter
name: Impuls z Licznika Wody
filters:
- delayed_on_off: 50ms
pin:
number: D3 # Pin podłączonego czujnika tcrt5000
inverted: true
mode:
input: true
on_press:
- then:
lambda: id(total_water_pulses) += 1;
sensor:
# Poziom Sygnału WiFi
- platform: wifi_signal
name: "${device_name} WiFi Sygnał"
update_interval: 160s
# Czas Pracy Urządzenia
- platform: uptime
name: "${device_name} Czas Pracy"
update_interval: 300s
device_class: "timestamp"
entity_category: "diagnostic"
unit_of_measurement: ""
filters:
- lambda: |-
auto time = id(homeassistant_time).now();
if (time.is_valid()) {
return time.timestamp - x;
} else {
return {};
}
# Template Licznika Wody
- platform: template
id: watermeter_pulses
name: "Główny Licznik Wody"
state_class: "total_increasing"
lambda: return id(total_water_pulses);
unit_of_measurement: "m³"
icon: "mdi:water-pump"
device_class: water
accuracy_decimals: 3
filters:
- multiply: 0.001
# Wyśietl Parametry Sieci WiFi w Home Assistant
text_sensor:
- platform: wifi_info
ip_address:
name: "${device_name} IP Addres"
ssid:
name: "${device_name} Połączony z siecią"
mac_address:
name: "${device_name} Mac Adres WiFi"
Wydruk 3D nakładki na licznik.
Z tym tematem walczyłem bardzo długo. Stosowałem gotowe rozwiązania, które znalazłem w Internecie. Chodzi o samą obudowę do TCRT5000 ale nie do końca spełniało to moje oczekiwania. Więc przyszła pora na zaprojektowanie samemu nakładki na licznik. Od razu podkreślam jestem amatorem, w tej dziedzinie, ale używając prostego oprogramowania do modelownia wydruku 3D, jakim jest tinkercad udało mi się coś takiego stworzyć. Obudowę można pobrać z Thingiverse.
W miarę wygląda i co najważniejsze pasuje. Zaprojektowany tak, aby można było nakładkę ściągnąć bez problemu i zamontować nie uszkadzając licznika. Pewnie można by było ładniej to zrobić, ale jestem amatorem.
Nakładka składa się z 3 elementów:
– ring
– podstawa adaptera
– dekielek adaptera
Po wydruku wszystkich elementów, trzeba przykleić ring do podstawy adaptera. Po sklejeniu tych dwóch elementów należy rozwiercić otwór na wkręt mocujący moduł TCRT5000. Specjalnie nie projektowałem pod jeden typ wkrętu, bo każdy z Was może mieć różne wkręty dostępne gdzieś w domu. Druga sprawa to otwór na przewód, tu też występują różnego typu przewody, więc otwór na przewód dostosuj do twojego przewodu. Opcjonalnie jest dostosowane do przewodu o przekroju 3,5 mm. Dekielka osobiście bym nie kleił, wchodzi na lekki wcisk.
Składanie w całość – kolejność.
1. Zacznij oczywiście od wydruku o ile to możliwe. Link do plików adaptera na Thingiverse.

2. Połącz wydruk ring z podstawą adaptera za pomocą kleju. Pamiętaj, aby klej wysechł.
3. Dostosuj otwory na wkręt oraz przewód.

4. Odlutuj goldpin-y z modułu TCRT5000, o ile masz przylutowane.
5. Przylutuj przewody do modułu TCRT5000 zgodnie ze schematem.

6. Przepuść przewód od modułu TCRT5000 przez otwór adaptera.

7. Przykręć moduł TCRT5000 do adaptera.
8. Dostosuj długość przewodu pomiędzy modułem TCRT5000 a płytką Wemos D1 Mini i przylutuj zgodnie ze schematem.
9. Wgraj oprogramowanie do Wemos D1 Mini.
10. Zamontuj adapter-nakładkę na licznik.
Strojenie Adaptera.
Niestety ta czynność wymaga od nas cierpliwości, czasu oraz straty w wodzie. Musimy dostroić nasz moduł optyczny do naszego licznika.
1. Przytnij wystający element osłony diod tak, aby ich czubki były na równo z podstawą adaptera.

2. Sprawdź, czy diody są mniej więcej na równo z postawą adaptera. Lepiej, aby delikatnie wystawały.
3. Skręć potencjometr na minimalną wartość (kręć w przeciwnym ruchu niż wskazówki zegara).
4. Znajdź obszar na Twoim liczniku, gdzie nie ma wskazówek (puste pole pod szybką licznika) i skieruj diody, na pole kręcąc adapterem. Pamiętaj, aby adapter dobrze dolegał do licznika, nie wisiał w powietrzu. Oczywiście wszystko z czuciem, aby nie uszkodzić licznika.
5. Teraz kręć potencjometrem (zgodnie ze wskazówkami zegara), do momentu aż dioda od impulsu sygnału się zaświeci. Kręć bardzo powoli.
6. Gdy dioda nam się zaświeci, cofnij obrót potencjometrem minimalnie (naprawdę minimalnie) w kierunku przeciwnym do ruch wskazówek zegara tak, aby dioda zgasła.
7. Teraz przekręć adapter na pole ze wskazówkami, które liczą wartość 0,0001 oczywiście mniej więcej.
8. W zależności, w którym położeniu jest obecnie wskazówka licznika, dioda może wam się zaświecić. U mnie to wygląda mniej więcej tak, że jak jest wskazówka pomiędzy wartością 1 a 6 to dioda świeci. Na innych wartościach dioda nie świeci.
9. Jak Ci się udało za pierwszym razem to gratuluje. Jeśli nie to pozostaje Ci się cofnąć, do punktu gdzie stroimy potencjometrem w lewo lub w prawo. Również może będziesz musiał przekręcić w lewo lub w prawo sam adapter. Pamiętaj, aby to robić minimalnymi ruchami u mnie delikatne ruszenie potencjometru zmieniało już stan diody.
10. Puść wodę i obserwuj zachowanie diody i wskazówki czy faktycznie obrót wskazówki to jeden impuls. Również można śledzić wynik Twojej pracy w Home Assistant. Oczywiście po wcześniejszym zaprogramowaniu. Należy również pamiętać, że wartość licznika w HA nie zmienia się od razu. Najlepiej patrzeć na sam czujnik włączenie wyłączenia impulsu.
11. Złe zestrojenie modułu będzie dawać fałszywe wyniki. Warto dobrze przećwiczyć za nim skonfigurujemy zużycie energii w Home Assistant.
12. Jeśli wszystko działa zamontuj dekielek oraz zamontuj na stałe adapter za pomocą rzepu na kabel lub trytytki. Technika montażu tak naprawdę dowolna. Ważne, aby adapter dobrze dolegał i nie ruszał się.
Wielka prośba.
Zwracam się do Was z pomocą. Jeśli masz taki licznik i wydrukowałeś mój adapter, proszę daj znać w komentarzach, jak Ci poszło i czy faktycznie na Twoim liczniku działa.
Dla chętnych 2 osób mogę wydrukować obudowę adaptera za darmo. Poniesiesz tylko koszty wysyłki. Warunek to posiadanie takiego licznika jak ja. Chętny? Spełniasz warunki? Pisz śmiało – kontakt. Odpowiem tak szybko, jak to możliwe.
UWAGA
Należy pamiętać, że licznik wody jest własnością dostawcy wody. Chyba że masz zamontowany własny osobny licznik. Wszelkie zerwanie, naruszenie plomb wiąże się z karą grzywny. Prośbę o montaż adaptera należy zgłosić do dostawcy wody.
Osobiście tego jeszcze nie zrobiłem. Inkasent nie przychodzi spisywać licznika od początku pandemii. Ale zamierzam zgłosić taki montaż, ciekaw jestem co mi odpowiedzą. Na razie strategia jest taka, że jak przyjdzie inkasent, wpuszczam go innymi drzwiami, wcześniej ściągając nakładkę, aby uniknąć problemów, póki nie zrobię zgłoszenia i uzyskam zgody. Domownicy są przeszkoleni w demontażu. Jeśli dostanę odpowiedź od dostawcy wody, na pewno zaktualizuję post.
Kosztorys:
– Moduł TCRT5000: Aliexpress 2.19 zł | ABC-RC.PL 3.50 zł
– Wemos D1 Mini: Aliexpress 11,41 zł | Allegro 17,50 zł
Odwiedzając sklep AliExpress za pośrednictwem powyższych linków, robisz zakupy za pośrednictwem linków partnerskich. Nie wiąże się to z żadnymi dodatkowymi kosztami. Dzięki tej formie wspierasz smartinhome.pl w formie prowizji od sprzedaży.
Konfiguracja w Home Assistant.
Po zaprogramowaniu modułu ESP oraz wstępnym zamontowaniu adaptera, przychodzi pora na dodanie go do Home Assistant.
1. Przejdź do USTAWIENIA – DASHBOARDY – ENERGIA
2. W polu ZUŻYCIE WODY dodaj ŹRÓDŁO WODY wybierając encję Główny Licznik Wody (chyba że nazwałeś inaczej).

3. Teraz musisz poczekać aż dane zużycia wody się pojawią (do 2h). Oczywiście musisz zużyci trochę wody.
Statystyki zużycia wody w Home Assistant.

Opcjonalnie można dodać tak zwane statystyki zużycia wody, podzielone na dni, miesiące itp.
1. Przejdź do USTAWIENIA – URZĄDZENIA ORAZ USŁUGI – POMOCNICY
2. UTWÓRZ POMOCNIKA – LICZNIK MEDIÓW
3. Uzupełnij dane licznika mediów. Poniższy przykład zużycia miesięcznego wody. Od Ciebie zależy jakich danych potrzebujesz. Pamiętaj natomiast że statystyka liczy się od momentu dodania pomocnika.

Aktualizacja 20.01.2023
Tak jak się spodziewałem i ostrzegałem. Niestety nie można zamontować nakładki – adaptera na licznik (legalnie). Po testach chciałem zalegalizować nakładkę bo sprawdzała się bardzo dobrze, a nie chciałem mieć później przez to problemów. Co prawda inkasent i tak nie chodził spisywać licznika, ale i tak człowiek miał tą świadomość że kiedyś ten dzień jednak nadejdzie. Dla tego postanowiłem napisać do mojego dostawcy, właściciela licznika. Niestety nie wyrazili zgody. ALE w treści do spółki wodociągowej, powołałem się na Unijną dyrektywę dotyczącą udostępniania danych z urządzeń pomiarowych użytkownikom końcowym. O dziwo Pani z którą korespondowałem mailowo zaproponowała mi wymianę licznika. Licznika z nakładką radiową. I w dodatku całkowicie za darmo, bo jak Pani napisała i tak planują wymianę wszystkich liczników na radiowe. Niestety Pani nie potrafiła określić co to za nakładka i jak działa, obiecała napisać do producenta. Podała tylko markę licznika która mi nic nie mówiła, a odpowiedzi do dziś nie dostałem. Panowie od wymiany licznika z wodociągów zjawili się dość szybko bo już na drugi dzień od momentu korespondencji. Panowie też za bardzo nie wiedzieli o co chodzi, ale wymienili licznik a ja zostałem sam z problemem. Jak się szybko okazało to nakładka IZAR RC 868 R4 radiowa, działająca po częstotliwości 868MHz. Ale o tym już w osobnym wpisie. Suma summarum jak na razie wyszedłem lepiej niż zakładałem. Co prawda obecna nakładka radiowa jest w fazie testów ale już widzę prawidłowe działanie zliczania na bieżąco zużycia wody. I najważniejsze całkowicie legalnie.












Świetny artykuł!
Czekam na kontynuację w kwestii odczytu zdalnego.
Ja niestety mam licznik w studzience na granicy działki, wiec zastanawiam się jak podejść do tematu. TCRT5000 nie lubi wilgoci, więc zastanawiam się jak całość zabezpieczyć przed wilgocią i zmianami temperatury.
Obok studzienki mam wolną skrętkę na końcu której mógłbym podłaczyć TCRT5000 a w domu (na drugim końcu) Wemos’a, jednak to prawie 15m kabla w ziemi.
Sugestie mile widziane 🙂
WiFi + Panel słoneczny + Aku18650? Ja sobie tak zrobiłem stację pogodową. Dwa lata pracuje bezobsługowo. Normalnie jest deepsleep i co 5min. budzi się aby zmierzyć i wysłać dane.
Cześć. Na jakiej zasadzie TCRT5000 odczytuje pomiar z licznika? Zrobiłbym tak samo u siebie tylko mam inny licznik i nie wiem na co uwagę zwrócić. Podpowiesz ?
Witam. TCRT5000 to moduł który wykrywa przeszkodę, u mnie przeszkodą była wskazówka na liczniku. Jaki masz licznik jeśli można wiedzieć. Nie na wszystkich licznikach da się uzyskać taki efekt.
Ja mam licznik Fila franco czy coś takiego i nie bardzo wiem jak to właśnie ugryź
Z tego co widać jest szansa aby to zadziałało. A Sam moduł TCRT działa jak paluszkiem przysłonisz jedną z diod?
Jak się sprawdza odczyt zdalny? Również będę wdzięczny za artykuł na ten temat 🙂
Pytasz o IZAR RC 868 R4?
Jak dodać do tego licznika – przepływ wody lub zużycie, ale mierzone np. co 10-20s
update_interval: 10s
Serdecznie dziękuję za projekt, mam problem z działaniem na Wemos D1 mini (stara wersja) działa prawidłowo, na Wemos D1 mini v.3 oraz na Wemos D1 mini pro oba działają tylko, gdy są połączone przez usb z komputerem jeśli nie ma połączenia brak działania czujnika, wygląda jakby był w uśpieniu. Serdecznie proszę o podpowiedz.
aby coś więcej powiedzieć musiał bym mieć kod nie działających Wemosów. Oraz schemat podłączenia. Z tego co mi wiadomo wemos d1 mini nie posiada funkcji usypiania, dopiero esp32 taką funkcję posiada i jest z automatu wyłączona.
Połączenie z czujnikiem:
Zdjęcia podłączenia czujników:
Wemos D1 stara wersja
https://ibb.co/34tKVjs
Wemos D1 v.3
https://ibb.co/17tJRd5
Wemos D1 Pro
https://ibb.co/gjj20jw
Pliki konfiguracyjne:
Wemos D1 stara wersja
https://github.com/Tomasz720/Wemos-test/blob/main/Wemos%20D1%20stara%20wersja
Wemos D1 v.3
https://github.com/Tomasz720/Wemos-test/blob/main/Wemos%20D1%20v.3
Wemos D1 Pro
https://github.com/Tomasz720/Wemos-test/blob/main/Wemos%20D1%20pro
Film z programowania i działania .
https://youtu.be/wdcDCjQlG-E
Podlinkowany kod do github nie działa, proszę spróbować innych pinów w niedziałających wemosach, podłączyć do USB ładowarki po zaprogramowaniu lub podać 5V na pin 5V.
Serdecznie dziękuję za podpowiedz, zmiana pinu z D3 na D5 pomogła Wemos D1 v.3 oraz Wemos D1 Pro zaczeły działać.
Przyznam szczerze, że tego nie rozumiem.
Podejrzewam że nawet nie musiałeś zmieniać pinu, wystarczyło podłączyć alternatywne zasilanie np. z ładowarki od telefonu i też by działało. Pin D3 jest odpowiedzialny również za komunikację nazwę to nie fachowo komunikację przez USB. W momencie podpięcia do ładowarki zasilania piny do transmisji przez USB nie są wykorzystywane.
Właśnie to jest dziwne, bo testy robiłem na zasilaniu z ładowarek i też był problem dopiero zmiana pinu pomogła.
Mam jeszcze jedno pytanie, w jakim pliku jest przetrzymywana wartość licznika. Chodzi oto aby wpisać stan aktualny licznika.
Sprawdź repozytorium tego Pana, on zrobił właśnie z możliwością prawidłowego wskazania licznika osobiście nie robiłem tego nie potrzebowałem takiej funkcji.
https://github.com/huizebruin/s0tool
Gdzie znajdę informację o tym jak skonfigurować nakładkę IZAR RC 868 R4 z homeassistant? Wspominałeś, że jest w innym wpisie cyt: „Jak się szybko okazało to nakładka IZAR RC 868 R4 radiowa, działająca po częstotliwości 868MHz. Ale o tym już w osobnym wpisie.”
PS. artykuł jak i inne na stronie bardzo pomocne !.
Póki co można ją znaleźć https://smartinhome.pl/esphome/sih-reader/ jest tam właśnie przykład jak za pomocą mojego urządzenia skonfigurować IZAR RC 868 jak i nakładkę Unismart.
Hej jaki licznik był użyty do projektu
witam.
JS 4-02 o ile dobrze pamiętam. Ale tu mała aktualizacja bo zamiast kombinować lutować drukować okazuje się że idealnie pasuje nakładka na licznik AT-WMBUS -16-2. Można już kupić używkę za 35 zł. Do tego Sih Reader i nie trzeba kombinować.
A czy udało się zintegrować z home assistant liczniki z nakładką m-bus? Np. https://bmeters.pl/pl/gsd8_rfm/557/ z nakładką rfm-tx1 (wireless) lub rfm-mb1 (po kablu)…
Jest już coś takiego jak: https://github.com/wmbusmeters/wmbusmeters-ha-addon/blob/main/wmbusmeters-ha-addon-edge/DOCS.md ale nie wiem czy nakładka potrzebuje wstępnej konfiguracji z użyciem narzędzi producenta (mam sam licznik, bez nakładki).
Jeżeli wMbus to może zadziałąć, trzeba przetestować. Na pewno nakładka musi być zaprogramowana. A tak na marginesie to licznik jest Pana własnością czy wodociągów?, jeżeli wodociągów to nie można ingerować w licznik, nawet jeśli to tylko nakładka.
Licznik należy do wodociągów a nakładka byłaby firmowa – czyli producenta licznika (https://www.bmeters.com/en/products/rfm-tx1/). Jeżeli wodociągi nie będą jej instalować to chce to zrobić sam (za ich wiedzą i zgodą) – pod warunkiem, że jest jakiś w miarę mało skomplikowany sposób na podpięcie wmbus do home assistant…