Energa Mój Licznik - custom component

Cześć,

chciałbym podzielić się z Wami swoim custom componentem do Energi (MójLicznik): Home Assistant custom components / Energa integration component · GitLab

Komponent w pełni wspiera GUI Home Assistanta i nie ma dodatkowych zależności w postaci dockera/mqtt.

Potrafi też ściągnąć godzinne statystyki dotyczące zużycia i wyprodukowania Energii, dzięki czemu można pokazać te dane na dashboardzie od energii.

Aktualnie brakuje wsparcia dla kont z wieloma licznikami - jeżeli ktoś byłby chętny mnie wspomóc informacjami, co się prezentuje użytkownikowi i jak zmieniać kontekst licznika, to bybłym bardziej niż wdzięczny.

Nie mam jeszcze wsparcia dla HACS, jednak spędzę trochę czasu nad tym, by go tam dodać (niestety, HACS nie wspiera Gitlaba, więc będę musiał się trochę pomęczyć z mirrorem… albo dodać wsparcie do HACSa :wink: ).

3 polubienia

Dodam może, że planowana integracja z HACS się już rozpoczęła i mirror na Githubie powstał:

dzięki czemu można dodać tę integrację juz teraz do HACS jako custom repository.

2 polubienia

Chyba musisz systematycznie zwiększać numer wersji, bo w tej chwili instaluje się tylko bieżąca wersja po commicie (teraz 354529a i jest to wersja różna od 2.0.0, bo zmieniłeś istotne pliki dla HACS, ale w ogóle wydaje mi się, że tagi wersji nie działają jak należy).

Nowy tag release będę musiał wypuścić dla HACSa po pełnym wsparciu, mają taki wymóg - muszę poczekać na review logo (Adding icon/logo for energa_my_meter custom integration. by thedeemling · Pull Request #6008 · home-assistant/brands · GitHub)…

Normalnie standardową wersję wypuszczam tylko jak coś zmieniam w kodzie aplikacji, zgodnie ze standardami release (major.minor.patch). Aktualnie zmieniam proces CI/CD (po dodaniu github actions pojawiły się nowe wymogi po ich uruchomieniu), więc nie ma sensu generować nowych wersji, bo dla użytkownika końcowego nic się nie zmienia, a dostawałby ciągle powiadomienie, że pojawiła się nowa wersja :slight_smile:

Major - tzw. breaking changes, trzeba przeinstalować komponent od nowa
Minor - nowe funkcjonalności, które nic nie psują i same się dodadzą po aktualizacji - jak skończę integrację z HACS, to dodam nową wersję tego typu (2.1.0)
Patch - Poprawy błędów - zawsze warto aktualizować

No i czasami, zamiast wypuszczać wersję co commit ze zmianą, lepiej jest ich trochę zebrać i wypuścić razem w ramach nowej paczki, podobnie jak to robi np. Home Assistant.

Co do samych release automatycznych, muszę ten proces jeszcze trochę poprawić, bo niestety obraz Gitlaba nie działa na moim runnerze z Rpi (jeżeli o tym mówisz), dlatego release klepię ręcznie.

1 polubienie

Dziękuję za komponent. Działa dobrze, bezproblemowa instalacja oraz integracja z HA.

Aktualnie walczę z Energą o dostęp do telegramów WM-BUS. Jak to zwykle bywa, opór Energii jest olbrzymi.

1 polubienie

Zainstalowało się bez problemu (wersja 2.0.0 - taka się zainstalowała). Ale nie widzę historii - podczas instalacji wpisałem 1000dni - są tutaj jakieś ograniczenia? No i mam przestawione sensory, to można poprawić, ale może to jest jakiś inny kłopot. Stany licznika są “nieznany” a wartości są przypisane do Energy produced i Meter reading.

Hm, może powinienem dodać to do README…

Jeżeli wpisałeś 1000 dni, upewnij się, że Energa tyle dni Ci udostępnia :slight_smile: Ja pobieram te dni w paczkach po 60, więc jeżeli komponent zacznie 1000 dni wstecz i w ciągu 60 dni nie znajdzie żadnej paczki, to nie zapisze sobie dnia na którym skończył (bo nie stworzył statystyk, a kontynuuje od ostatnio zapisanej statystyki). Więc przy nastepnym uruchomieniu znowu pobierze od 1000 dnia wstecz… I tak długo, aż upłynie tyle dni (rzeczywistych), żeby trafić na jakiś dzień, w którym są dane :slight_smile: Dla przykładu: ja sobie pobrałem 750 dni, więc wiem, że działa - tylko Energa musi te dni w sobie zawierać.

Poszukam sposobu, by zmusić go do zapamietania “sprawdzałem ten okres i nic nie było”. W międzyczasie usuń wpis i podaj mniejszą wartość dni do pobrania (sprawdź w Moim Liczniku, od kiedy masz dane i oblicz sobie różnicę dni). Dla wygody użytkowników może poszukam pierwszego dnia, w którym znajdują się jakieś dane i go zaproponuję z automatu?

Stany statystyk “Nieznany” opisałem w README. Home Assistant aktualnie nie pozwala zapisywać danych historycznych dla sensorów, które mają jakiś stan, więc musiałem im wyzerować stan (stąd “Nieznany”), żeby móc tworzyć statystyki z poprzednich dni. To normalne i nie przeszkadza w dashboardzie od energii, a one istnieją tylko po to, żeby tam je dodać.

Nie, problem musi być gdzie indziej. Sprawdziłem na stronie i w aplikacji mobilnej, mam dane z prawie 3 lat i aktualizacje co 1h. Ile dni bym nie wpisał, efekt jest taki, że brak danych historycznych. Zgodnie z opisem przy nowej instalacji usuwam, statystyki w zakładce narzędzi deweloperskich. Na moje problem może być w tym, że ja mam licznik 2-taryfowy i nie produkuje energii, a tutaj zawsze pokazuje mi wartości 1 i 2 taryfy opisane jako Energy produced i Meter reading. A przecież Energy produced powinien wskazywać 0. Próbowałem przy instalacji nie “odhaczać” 2-taryfy. - bez zmian. W zasadzie to też dziwne, bo nawet jakby tak było, powinien wgrać stare dane tylko, źle opisane.

Czy mógłbyś w takim razie wygenerować logi w trybie debug (w integracji masz taką opcję)? Jeżeli nie wyczytasz z nich samodzielnie przyczyny problemu (starałem się je dodawać bardzo opisowo), mogę Ci pomóc w analizie, jeżeli byś mi je podesłał (np. w issue na githubie). Uwaga: mogą zawierać Twoje dane, więc warto byłoby je podmienić na wartości typu “*****” przed wysłaniem.
Jeżeli Ci tak wygodniej, mogę się nawet podłączyć na jakąś sesję Google Meet/Discord i sprawdzić, co się dzieje.

Wiem, że liczniki 2-taryfowe też są wspierane (kolega używa, ma G12w i działa - screenshot w README z wieloma taryfami pochodzi od niego), nawet testowałem to u siebie lokalnie, tworząc symulację taryfy G12, więc raczej coś dziwnego się podziało :slight_smile:

BTW: jesteś pewny, że po użyciu tych sensorów statystyk na dashboardzie od energii nie ma danych? Bo, jak mówiłem, w GUI Home Assistanta one nie mają żadnych wartości, istnieją tylko dla dashboardu i tylko tam pokażą się słupki. Pytam, bo skoro usuwasz statystyki zgodnie z opisem w README to oznacza, że one tam są :slight_smile:
Może jeszcze raz przypomnę, że one się pobierają w paczkach po 60 dni, więc jeżeli ustawiłeś aktualizację raz na godzinę, to co godzinę się pobierze kolejnych 60 dni - przy 1000 pobranie całości danych zajmie ~17h. Sprawdź na dashboardzie dni sprzed 3 lat, one się powoli pobierają ze względu na orgraniczenia API Energi (Captcha…). Jeżeli chcesz ten proces przyspieszyć, ustaw mniejszy interwał na czas pobierania dni (10 minut? 5 minut?), albo klikaj “Reload” na wpisie w integracji. W logach zobaczysz informację, który dzień właśnie pobiera i jakie statystyki załadował.

Meter reading to aktualna wartość na liczniku, wskazywana przez Energę:
image

Oni to rzadko aktualizują, więc żeby móc wspierać statystyki co godzinę, dla każdej strefy stworzą się “Unknown/Nieznana” wpisy ze statystykami:
image

Jeżeli masz dwie strefy, to stworzą się 2 takie encje. Jeżeli zaznaczysz też produkcję, to dojdą 2 kolejne (produced dla każdej strefy). Tych encji statystycznych (ale nie meter reading) musisz użyć do dashboardu z energią - i powinny się pokazać słupki godzinowe. Dodaj wszystkie statystyczne encje, jeżeli chcesz mieć pełnię informacji na dashboardzie.

Daj znać, jeżeli mogę jakkolwiek pomóc :slight_smile:

coś takiego masz na myśli??
obraz

1 polubienie

Tak jest :slight_smile:
W skrócie, nie mam żadnego znajomego, który miałby wiele liczników na jednym koncie, więc pisałem wsparcie starając się przewidzieć, jak to wygląda po stronie Energii. Tych funkcjonalności nawet nie mogłem stestować.

Bardzo chętnie dodam wsparcie, jeżeli byłbyś chętny udzielić mi informacji, których do tego potrzebuje (źródła HTML? Jak wygląda zmiana kontekstu (request POST? Query parametry w GETcie?). Statystyki mniej-więcej wiem, jak pobrać, chodzi głownie o informacje zawarte na stronie głównej.

nie ma problemu, tylko po polsku napisz czego ci potrzeba :wink:

@lolekanabolek Jasne, wybacz :slight_smile: Zrobiłem zgłoszenie na Githubie, zeby mi tego nie wcięło: Dodać wsparcie dla wielu liczników · Issue #2 · thedeemling/hass-energa-my-meter · GitHub

Zawarłem tam instrukcje, co mniej więcej trzeba zrobić - w razie niejasności - służę pomocą.

@Romek_Z Czy udało Ci się rozwiązać swój problem ze statystykami? Z moich obliczeń wynika, że powinny się już załadować wszystkie?

@The_Deemed sprawdź githuba, czy to ci wystarczy

Powinno wystarczyć, dzięki - wysyła się get i widzę w HTMLu, że podają w menu wyboru potrzebne parametry.
Dziękuję - w wolnym czasie się za to zabiorę i dam Ci znać, kiedy będzie można testować :slight_smile: