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

Platform tauron_amiplus does not generate unique IDs. #183

Open 3jam3 opened 4 months ago

3jam3 commented 4 months ago

Logger: homeassistant.components.sensor Source: helpers/entity_platform.py:744 integration: Sensor (documentation, issues) First occurred: 03:20:21 (8 occurrences)

Platform tauron_amiplus does not generate unique IDs. ID tauron-102457311_41325721_389350-consumption_yearly already exists. This error originated from a custom integration.

Logger: custom_components.tauron_amiplus.coordinator Source: helpers/update_coordinator.py:315 integration: Tauron AMIplus (documentation, issues) First occurred: 03:20:21 (4 occurrences) Last logged: 03:20:32

Unexpected error fetching tauron_amiplus data: Failed to login Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 315, in _async_refresh self.data = await self._async_update_data() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 271, in _async_update_data return await self.update_method() ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/tauron_amiplus/coordinator.py", line 35, in update_method data = await self.hass.async_add_executor_job(self._update) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run result = self.fn(*self.args, **self.kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/tauron_amiplus/coordinator.py", line 49, in _update return self.connector.get_raw_data() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/tauron_amiplus/connector.py", line 120, in get_raw_data data.tariff = self.login() ^^^^^^^^^^^^ File "/config/custom_components/tauron_amiplus/connector.py", line 193, in login session, login_response = self.login_service(CONST_URL_LOGIN, CONST_URL_SERVICE) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/tauron_amiplus/connector.py", line 189, in login_service raise Exception("Failed to login") Exception: Failed to login

3jam3 commented 4 months ago

Wygląda na to, że integracja wykonuje wiele odświeżeń podczas uruchamiania systemu. Skutkuje to wpisem Something is blocking Home Assistant from wrapping up the start up phase. Uruchomienie trwa rzeczywiście bardzo długo. Warto zauważyć, że zaczęło się to dziać po najnowszej aktualizacji core do 2024.4.4. Uruchomienie w trybie awaryjnym lub czasowe wyłączenie integracji rozwiązuje problem.

PiotrMachowski commented 4 months ago

Platform tauron_amiplus does not generate unique IDs. ID tauron-102457311_41325721_389350-consumption_yearly already exists.

Aktualnie rozwiązaniem tego jest usunięcie i ponowne dodanie integracji

Exception: Failed to login

Tutaj może Tauron blokować logowanie, po kilku próbach logowania, najlepiej jest wyłączyć integrację, poczekać 1 dzień i spróbować ponownie włączyć

Wygląda na to, że integracja wykonuje wiele odświeżeń podczas uruchamiania systemu

Powinna wykonywać jedno odświeżenie, ale w zależności od konfiguracji może ono trwać dość długo (każdy dzień musi być pobrany osobno). Na ten moment nie wymyśliłem jak to ładnie ogarnąć

3jam3 commented 4 months ago

Dzięki za wyjaśnienia. Spróbuję usunąć i dodać. Co dzisiejsza aktualizacja core zmieniła w konfiguracji?

PiotrMachowski commented 4 months ago

Nic nie powinna zmieniać

3jam3 commented 4 months ago

Może warto rozważyć dodanie opóźnienia tak, by integracja nie rozpoczynała odświeżania podczas ponownego uruchomienia?

PiotrMachowski commented 4 months ago

Rozważam coś w tym stylu, może kiedyś coś z tym zrobię