Liczniki Impulsów na wemos d1 mini

Karol503
Posts: 33
Joined: Sat Dec 31, 2022 7:17 pm
Been thanked: 1 time

Post

Witam.
Od ok 5 miesięcy mam zrobiony licznik impulsów na 9 liczników na płytce uniwersalnej, schemat wzorowany na tym z projektu Roberta Błaszczaka z przed kilku lat z jego strony www
Mój projekt jest na 9 transoptorach i nie ma potwierdzenia na LED przez ESP policzonego impulsu tylko z wyjścia transoptora na wejście gpio jest dioda led z dużym rezystorem żeby nie zakłócać impulsu. Led 3mm błyska bardzo słabo tak żeby było tylko widać impuls.
ESP to wemos d1.
Problem mam w tym że albo wemos nie liczy wszystkich impulsów gdy jest online a dioda led miga albo co na pewno wemos nie liczy impulsów gdy jest offline wifi lub internet z GSM ma chwilę przerwy. Na przeciągu miesiąca brakuje mi kilka tysięcy impulsów. Liczniki to sdm630.

Czy mogę coś zrobić żeby poprawić zliczanie impulsów ?
Zasilanie wemosa jest z akumulatorów upsa przez przetwornicę dc-dc więc zasilanie jest ciągle stałe.
Robiąc próby na stole nie zdarzyło się by wemos nie policzył któregoś impulsu, czyli w czasie testu liczy 100% impulsów. Na pewno nie liczy impulsów gdy brak neta.
You do not have the required permissions to view the files attached to this post.
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

Licznik impulsów w tym sofcie używa cyklicznego sprawdzania stanu GPIO na timerze.
Implementację do tego robiłem wieki temu i w sumie nie sprawdzałem jak to działa na ESP8266, bo wtedy robiłem to pod kątem Arduino Mega.
U mnie na Arduino mam zliczanie chyba 7 liczników i ogólnie dane są zgodne z licznikami. Nie ma tam 100% zgodności, bo nie mam podtrzymania bateryjnego i kilka razy w ciągu ~3 lat zdarzyło mi się, że musiałem Arduino zresetować.

U Ciebie liczniki mają dość duże zużycie nabite, natomiast rozjazd na poziomie kilku tysięcy impulsów jest dość spory.

Możliwe, że podczas próby łączenia z siecią, ten timer dostaje mniej czasu procesora i przez to są trudności.
Możesz też spróbować zmniejszyć ten "limit czasu" ustawiony na 60 ms. Nie jestem pewien, ale wydaje mi się, że ta opcja w GG to ustawienie parametru "debounceDelay" na ImpulseCounter. Oznacza ona, że musi być minimum 60 ms odstępu czasu między kolejnymi impulsami, aby je policzyć.
Przy 60 ms powinno zliczać około 16 imp/s, czyli powinno ogarnąć obciążenie nawet około 60 kW na liczniku dającym 1000 imp/kWh.

Alternatywnie możesz przejść na integrację po modbus. SDM630 chyba wspiera modbusa, a @krycha niedawno udostępnił taką funkcję w GG:
viewtopic.php?t=11879

Przy okazji będziesz miał pomiary napięcia i innych parametrów dostępne.
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
Robert Błaszczak
Posts: 5222
Joined: Sat Dec 22, 2018 8:55 pm
Location: Zielona Góra
Has thanked: 37 times
Been thanked: 27 times

Post

Projekt jest z przed kilku lat na starym sofcie. Zainstaluj tam GUI-Generic i powinno być zdecydowanie lepiej.
Pozdrawiam
Robert Błaszczak


Moja prywatna strona: www.blaszczak.pl
Karol503
Posts: 33
Joined: Sat Dec 31, 2022 7:17 pm
Been thanked: 1 time

Post

klew wrote: Mon Jan 02, 2023 12:43 pm Licznik impulsów w tym sofcie używa cyklicznego sprawdzania stanu GPIO na timerze.
Implementację do tego robiłem wieki temu i w sumie nie sprawdzałem jak to działa na ESP8266, bo wtedy robiłem to pod kątem Arduino Mega.
U mnie na Arduino mam zliczanie chyba 7 liczników i ogólnie dane są zgodne z licznikami. Nie ma tam 100% zgodności, bo nie mam podtrzymania bateryjnego i kilka razy w ciągu ~3 lat zdarzyło mi się, że musiałem Arduino zresetować.

U Ciebie liczniki mają dość duże zużycie nabite, natomiast rozjazd na poziomie kilku tysięcy impulsów jest dość spory.
Klew Dziękuję za komentarz.
Właśnie na stole testy wychodzą dobrze w 100%, uważam że jedyną bolączką licznika impulsów firmware Supli jest nie liczenie impulsów gdy brak jest internetu z GSM lub słaby sygnał z wi-fi. Problem słabego sygnału wi-fi wyeliminowałem ale Internetu z GSM (Play) w skali miesiąca brakuje dość sporo, jest takich przerw na łączny czas ponad 6...12 godzin. Problem teraz w grudniu było widać mocniej bo mam większe zużycie prądu na ogrzewanie. Łączny pobór domu w zimny dzień to 55...60 kWh i przy tych minimum 6...12 godzinach przerwy to jest dużo impulsów i stąd bierze się te kilka tysięcy ich brakujących (sdm630 mają 400 imp/1kWh)

Dla porównania na linii Gpio licznika od grzania wody przepływowymi podgrzewaczami braki impulsów są nie liczne. Pobór przez podgrzewacze zazwyczaj jest intensywny ale krótki w czasie (średnia dzienna z roku to 2,66kWh).
Drugi przykład linia Gpio licznika produkcji PV, licznik pracuje w słoneczny dzień przez 9h i nabije 60kWh. Tu również jet znikoma różnica w impulsach (Play GSM nie ma przerw w dzień w Internecie).
Trzeci przykład linia Gpio licznika UPS (licznik sdm230 1F 1000imp/1kWh) równomierne zużycie dobowe max 4kWh. Też prawie nie brakuje impulsów.

Największe różnice w impulsach są na licznikach przez które idzie prąd do ogrzewania domu:
1 Główny licznik imp/exp,
2 Dom pobór całość z auto konsumpcją z PV,
3 Ogrzewanie pobór dobowy ciągły w zależności od temp zewnętrznej 15 do 50 kWh

Internetu najczęściej brakuje w nocy i późnym wieczorem. Widzę to na wykresach z brakiem odczytu z czujników temp ds18b20. Mam kilka Supli i na wszystkich to samo na wykresie.
Możliwe, że podczas próby łączenia z siecią, ten timer dostaje mniej czasu procesora i przez to są trudności.
Możesz też spróbować zmniejszyć ten "limit czasu" ustawiony na 60 ms. Nie jestem pewien, ale wydaje mi się, że ta opcja w GG to ustawienie parametru "debounceDelay" na ImpulseCounter. Oznacza ona, że musi być minimum 60 ms odstępu czasu między kolejnymi impulsami, aby je policzyć.
Przy 60 ms powinno zliczać około 16 imp/s, czyli powinno ogarnąć obciążenie nawet około 60 kW na liczniku dającym 1000 imp/kWh.
Specjalnie wstawiłem ten screen z ustawieniami bo tych opcji nie rozumiem. W default było tam 50ms i ja zmieniłem na 60ms. Ale nic się nie zmieniło w działaniu. U mnie na każdym liczniku po między impulsami jest przerwa kilka sekund nawet przy obciążeniu podgrzewaczem wody Vailant 27KW lub dobowo łącznie 60kWh. Na stole robiąc testy przy ustawieniu 50ms liczy szybkie impulsy bez problemu, na to specjalnie zwróciłem uwagę przy teście.

Mam 4 Sonoffy Pow R2 te z licznikami poboru prądu tylko tam jest to inaczej zorganizowane niż przez impulsy i wgrana Supla z 2021r liczy prąd który jest zużyty również w czasie gdy nie ma Internetu lub całkiem brak WiFi. Wykres i pobór z czasu offline wychodzi uśredniony.
Alternatywnie możesz przejść na integrację po modbus. SDM630 chyba wspiera modbusa, a @krycha niedawno udostępnił taką funkcję w GG:
viewtopic.php?t=11879

Przy okazji będziesz miał pomiary napięcia i innych parametrów dostępne.
Nie jestem programistą ale czekałem na takie rozwiązanie od 2018r dlatego postawiłem na sdm630, w między czasie Robert Błaszczak zamieścił swoje rozwiązanie i ja znalazłem czas by to wdrożyć u siebie w te ostatnie wakacje. W Supli integracja przez modbus z sdm630 została zrobiona już po wakacjach 2022. Z czasem trzeba będzie się przesiąść na modbus.

Czy w tym wypadku wystarczy jeden ESP do odczytu wszystkich liczników jak przy oryginalnej bramce Eastrona czy każdy licznik musi mieć swojego ESP ?
Karol503
Posts: 33
Joined: Sat Dec 31, 2022 7:17 pm
Been thanked: 1 time

Post

Robert Błaszczak wrote: Mon Jan 02, 2023 1:10 pm Projekt jest z przed kilku lat na starym sofcie. Zainstaluj tam GUI-Generic i powinno być zdecydowanie lepiej.
Robert Błaszczak Dziękuję za komentarz.
W pierwszej wersji zrobiłem (oprócz zasilania) wszystko jak na Twoim schemacie + Twój firmware ale odkryłem że przez przerwy w dostawie Internetu nie liczyło wszystkich impulsów. Następnie wziąłem nową płytkę uniwersalną i następnego Wemosa i według Twojego schematu z transoptorami zrobiłem projekt na 9 liczników tylko bez potwierdzenia odebrania impulsu. Do tego użyłem już firmware Supla z GUI-Generic licząc że problem ze zliczaniem impulsów przy braku internetu został rozwiązany w między czasie przez kogoś mądrzejszego ode mnie. Niestety firmware z GUI-Generic z wakacji 2022 działa i liczy dokładnie tak samo jak Twój firmware z przed kilku lat.

Specjalnie wstawiłem screen z ustawieniami ESP w 1 poście żeby było widać że firmware jest w miarę świeży pochodzący z GUI-Generic.

Teraz pisząc tu na forum Supla liczę że ktoś inny korzystający z licznika impulsów potwierdzi występowanie problemu albo podpowie co ja mogłem zrobić źle jeśli firmware u kogoś innego liczy dobrze wszystkie impulsy podane na Gpio ESP w stanie offline Internetu.
User avatar
Robert Błaszczak
Posts: 5222
Joined: Sat Dec 22, 2018 8:55 pm
Location: Zielona Góra
Has thanked: 37 times
Been thanked: 27 times

Post

Niestety samo ESP nie bardzo nadaje się do precyzyjnych liczników impulsów. A już nie 9 liczników na jednym ESP. Z tego powodu w LIW-01, czyli produkcie komercyjnym zastosowany jest dodatkowy układ zliczający impulsy i przekazujący te dane do ESP.

Odnośnie SDM630, to na dzień dzisiejszy soft GUI-Generic obsługuje ModBUS (sam osobiście testuję na SDM230). Jednak na dzień dzisiejszy jest to tylko jeden licznik z adresem 1.
Pozdrawiam
Robert Błaszczak


Moja prywatna strona: www.blaszczak.pl
krycha88
Posts: 5575
Joined: Fri Nov 16, 2018 7:25 am
Been thanked: 5 times

Post

Karol503 wrote: Mon Jan 02, 2023 11:51 pm Nie jestem programistą ale czekałem na takie rozwiązanie od 2018r dlatego postawiłem na sdm630, w między czasie Robert Błaszczak zamieścił swoje rozwiązanie i ja znalazłem czas by to wdrożyć u siebie w te ostatnie wakacje. W Supli integracja przez modbus z sdm630 została zrobiona już po wakacjach 2022. Z czasem trzeba będzie się przesiąść na modbus.

Czy w tym wypadku wystarczy jeden ESP do odczytu wszystkich liczników jak przy oryginalnej bramce Eastrona czy każdy licznik musi mieć swojego ESP ?
Jeżeli uda Ci się uruchomić jeden odczyt z licznika i będziesz miał chwilę na testy to możesz się do mnie odezwać a w wolnej chwili dodam obsługę odczytu kilku liczników. Teraz odczyt zrobiłem dla licznika 1F lub 3F bo takie osoby się do mnie zgłosiły i dzięki temu wiem, że to rozwiązanie na pewno działa poprawnie :)
https://gui-generic-builder.supla.io/

Return to “Ogólna dyskusja”