PiotrMachowski / Home-Assistant-custom-components-Tauron-AMIplus

This sensor uses unofficial API to get energy usage and generation data from https://elicznik.tauron-dystrybucja.pl.
MIT License
128 stars 34 forks source link

Odczyty, których jeszcze nie ma. Brak danych godzinowych. Brak danych wcześniejszych #153

Closed travnick closed 1 year ago

travnick commented 1 year ago

Zauważyłem, że od około tygodnia (przy próbach jak i czy działa bilansowanie godzinowe), coś jest bardzo nie halo z odczytami. Wcześniej w zasadzie wyglądało to w porządku. Dane godzinowe były, historyczne też - nie wiem jedynie, czy od początku historii licznika, czy nie.

Moja konfiguracja: obraz

PiotrMachowski commented 1 year ago

Integracja notuje skokowe zużycie (zamiast ładnego rozkładu na godziny) mniej więcej o tej samej godzinie każdego dnia (powiedzmy, że około południa).

To jest normalne zachowanie (ze względu na to, że Tauron wrzuca dane paczkami, a nie na żywo)

Ponadto odczyt, który jest ze wczoraj (08.06, jest odnotowany jako dzisiejszy 09.06)

Tak jak napisałem, Tauron nie wrzuca danych na żywo, tylko wstecz, za dzień poprzedni.

W odczytach są dziury, tj. brakuje dni:

Prawdopodobnie w danym dniu nie ma kompletu danych w eLiczniku

Brakuje odczytów sprzed 17 maja

Tutaj już nie jestem w stanie powiedzieć, co się stało. Dane można uzupełnić dla dowolnego okresu wstecz używając usługi tauron_amiplus.download_statistics

Open your Home Assistant instance and show your service developer tools with a specific service selected.

travnick commented 1 year ago

Tylko tak jak pisałem, wcześniej były dane ładnie na godziny porozbijane a teraz zamiast na godziny, to zużycie z całego dnia jest skumulowane w jednej godzinie.

Ponadto, zużycie z poprzedniego dnia nie powinno być wpisywane w dniu bieżącym - tak nigdy nie było.

Dane w e-liczniku wyglądają nienagannie. Wziąłem dla przykładu 05.06, jest komplet odczytów na każdą godzinę, niestety w HA brak danych w panelu energii.

Jak mogę pomóc zdebugować te cuda?

PiotrMachowski commented 1 year ago

Tylko tak jak pisałem, wcześniej były dane ładnie na godziny porozbijane a teraz zamiast na godziny, to zużycie z całego dnia jest skumulowane w jednej godzinie.

Ponadto, zużycie z poprzedniego dnia nie powinno być wpisywane w dniu bieżącym - tak nigdy nie było.

Akszuali, to zawsze było tak, jak piszesz. Dane rozbite na godzinne zużycie są (i zawsze były) dostępne tylko jako statystyki "tauron_importer".

Dane w e-liczniku wyglądają nienagannie. Wziąłem dla przykładu 05.06, jest komplet odczytów na każdą godzinę, niestety w HA brak danych w panelu energii.

Jak mogę pomóc zdebugować te cuda?

Możesz mi przesłać dane diagnostyczne, ale zanim to zrobisz, to spróbuj użyć usługi tauron_amiplus.download_statistics

travnick commented 1 year ago

No to jednak ja się zgubiłem, przy ilości tych sensorów z licznika i w ich pokrętnych nazwach. Faktycznie, używając tauron_importer do panelu energii dane pokazywane są tam pokazywane prawidłowo i nie ma dziur.

Jedyne co zostało, to brak danych sprzed 1 maja, ale to pewnie tym download_statistics załatwię.

PiotrMachowski commented 1 year ago

Jedyne co zostało, to brak danych sprzed 1 maja, ale to pewnie tym download_statistics załatwię.

Tylko uważaj, bo pobieranie może chwilę potrwać przy dłuższych okresach, także nie puść tego 2x.

travnick commented 1 year ago

btw. z tymi nazwami. Ustawiłem sobie krótszą nazwę licznika, żeby móc coś widzieć w polach wyboru, i większość id się zmieniła, ale dla okresów z ostatnich 12 miesięcy nazwa ma przedrostek Tauron AMIplus <Nazwa Ulicy> <numer>. Dla porównania "dobra nazwa" u góry i "niezbyt dobra" na dole:

image

PiotrMachowski commented 1 year ago

To dlatego, że balans 12 miesięczny został dodany w późniejszych wersjach i trochę się zmieniło nazewnictwo, więc musisz po prostu zmienić ręcznie nazwy osobno dla tej encji.

travnick commented 1 year ago

(po długich wędrówkach po kodzie) Wydaje mi się, że różnica wynika z tego:

tutaj jest zdefiniowana bazowa nazwa, widoczna jako ta prostsza u mnie na screenie: https://github.com/PiotrMachowski/Home-Assistant-custom-components-Tauron-AMIplus/blob/6177e28df46c21f80d905d24a5c9177b33364079/custom_components/tauron_amiplus/sensor.py#L134

a tutaj jest nadpisana: https://github.com/PiotrMachowski/Home-Assistant-custom-components-Tauron-AMIplus/blob/6177e28df46c21f80d905d24a5c9177b33364079/custom_components/tauron_amiplus/sensor.py#L303

Schemat nazwy by się zgadzał. Czy to przeciążenie jest konieczne?

PiotrMachowski commented 1 year ago

Wszystkie Twoje sensory korzystają z tej przeciążonej wersji. Różnica w nazwach wynika ze zmian w generowaniu encji pomiędzy wersjami integracji. Encje zachowują nazwy i ID, więc jeśli stare encje zostały utworzone przed zmianą, to mają starą nazwę. Gdybyś od nowa dodał integrację, to wszystkie by miały nową wersję nazwy.

travnick commented 1 year ago

A te przedłużone nazwy są konieczne? Bo powodują one, że większość nazwy sensora to powtarzające się i niepotrzebne Tauron AMIPlus Równa 18. Co utrudnia sprawdzenie, o którą zmienną chodzi

PiotrMachowski commented 1 year ago

Jaką masz nazwę urządzenia i nazwy pozostałych encji?

travnick commented 1 year ago

Ustawiłem sobie nazwę na Prąd Równa, żeby właśnie krócej było. Encje wyglądają tak: image Na dashboardzie: image

encje: image

PiotrMachowski commented 1 year ago

To w tych pozostałych też możesz zmienić bez najmniejszego problemu

travnick commented 1 year ago

Pewnie gdzieś tam mogę ręcznie klikać i edytować, ale chodzi o to, że te sensor.prad_rowna_ zmieniają się automatycznie w zależności od nazwy integracji, nie muszę chodzić po encjach i ich zmieniać. Niestety te dla 12 miesięcy są niewzruszone na te zmiany nazwy (integracji Tauron AMIPlus).

PiotrMachowski commented 1 year ago

Jak je zmienisz ręcznie raz w taki sposób, żeby pasowały do pozostałych encji, to potem będą się zmieniać. Możesz też zmienić resztę, żeby pasowały do tych 12-miesięcznych, a potem zmienić jeszcze raz, wtedy te też się zmienią.

travnick commented 1 year ago

Hmmm, no coś nawet automatycznie zmieniło. Ale przy wyłączeniu w konfiguracji np. tych 12 miesięcy, usunięciu encji i powtórnym włączeniu tworzą się te domyślne nazwy obok tych zmienionych. Co w rezultacie takie taki miks jak na załączonych screenach.

PiotrMachowski commented 1 year ago

No ta to nic nie poradzę. Jak już usuwasz encje, to równie dobrze możesz usunąć integrację i dodać od nowa, wtedy będziesz miał wszystko spójnie.

travnick commented 1 year ago

To samo będzie gdy od początku nie wybiorę np. statystyk dla tych 12 miesięcy, zmienię sobie nazwę, a potem stwierdzę, że jednak je chce i włączę w konfiguracji.

Nie da się tego zrobić, żeby te encje dodawały się zgodnie z aktualną nazwą integracji?

PiotrMachowski commented 1 year ago

To samo będzie gdy od początku nie wybiorę np. statystyk dla tych 12 miesięcy, zmienię sobie nazwę, a potem stwierdzę, że jednak je chce i włączę w konfiguracji.

To jest standardowe zachowanie HA, zmiany w ID i nazwach są stosowane per encja. Możesz sobie każdą encję zmienić na inną nazwę/identyfikator. Nie jestem w stanie tego obsłużyć po stronie integracji.

travnick commented 1 year ago

ok, dzięki a obszerne wyjaśnienia!

mickeyreg commented 5 months ago

Może powinienem jednak otworzyć nowy wątek... W skócie:

Uruchomiłem tauron_amiplus.download_statistics (w tym wątku znalazłem jak) z datą 2 dni do tyłu i dostałem komunikat o nieznanym błędzie, a w logu:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 26, in _handle_async_response
    await func(hass, connection, msg)
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 795, in handle_execute_script
    script_result = await script_obj.async_run(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1600, in async_run
    return await asyncio.shield(run.async_run())
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 435, in async_run
    await self._async_step(log_exceptions=False)
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 487, in _async_step
    self._handle_exception(
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 512, in _handle_exception
    raise exception
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 485, in _async_step
    await getattr(self, handler)()
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 723, in _async_call_service_step
    response_data = await self._async_run_long_action(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 685, in _async_run_long_action
    return long_task.result()
           ^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2319, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2356, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/tauron_amiplus/services.py", line 42, in async_handle_service
    [config_entry_id] = device.config_entries
    ^^^^^^^^^^^^^^^^^
ValueError: too many values to unpack (expected 1)

Wtyczki używam od dzisiaj, więc może HA nie pozwala pobrać danych starszych niż czas działania wtyczki?

PiotrMachowski commented 5 months ago

To brzmi jak osobny problem. Swoją drogą integracja po dodaniu pobiera dane rok wstecz, więc nie powinno być potrzebne ręczne wywoływanie synchronizacji

mickeyreg commented 5 months ago

U mnie nic się nie pobrało archiwalngo. HA używam od 2 dni. AMIplusa od wczoraj, a dokładniej od dzisiaj bo wczoraj miałem "too many logins". No i tak mnie naszło, żeby pobrać dane sprzed 2 dni i skończyło się "Nie udało się wywołać usługi tauron_amiplus.download_statistics. Unknown_error" i logiem jak powyżej. Dane z licznika są, wczorajsze, ale to chyba norma na eLiczniku.

PiotrMachowski commented 5 months ago

Dane historyczne są widoczne tylko w panelu Energia, po wybraniu pozycji "tauron_importer", nie są widoczne w historii encji.

mickeyreg commented 5 months ago

OK. Historia z roku faktycznie się pobrała i w panelu energia jest (aczkolwiek chwilę mi zeszło znalezienie jak się używa _tauronimporter). Dzisiaj w środku dnia uzupełniło sobie dane o wczorajszy dzień.

Usługa _downloadstatistics pewnie nie jest mi potrzebna, ale ciągle nie działa tylko generuje wspomniany błąd.

A tak ogólnie: Jak sprawdzałem w eLiczniku, to mam statystyki od 1 stycznia 2021. Mogę to jakoś pobrać do HA?

PiotrMachowski commented 5 months ago

Mogę to jakoś pobrać do HA?

Dokładnie tą usługą, która nie działa 😄 możesz zrobić na to osobne issue?