Menu główne

Natywna integracja z Home Assistant (komponent) 2.2

Zaczęty przez admin, Wrzesień 20, 2022, 22:35:33

Poprzedni wątek - Następny wątek

Łukasz

Cytat: w3t3ran w Marzec 07, 2024, 17:24:51
Po dzisiejszej aktu HA, ExtaLife nie odpala. Logi:


  File "/config/custom_components/extalife/helpers/core.py", line 63, in Core
    def get(cls, entry_id: ConfigEntry.entry_id) -> "Core":  # forward
                           ^^^^^^^^^^^^^^^^^^^^
AttributeError: type object 'ConfigEntry' has no attribute 'entry_id'

Niestety integracja jest słabo napisana i tutaj wychodzi błędna anotacja typów. By integracja działała zmieńcie ten plik custom_components/extalife/helpers/core.py:63

z
Cytat
    def get(cls, entry_id: ConfigEntry.entry_id) -> "Core":  # forward

na

Cytat
    def get(cls, entry_id: str) -> "Core":  # forward

w3t3ran

Cytat: Łukasz w Marzec 09, 2024, 17:54:41
Cytat: w3t3ran w Marzec 07, 2024, 17:24:51
Po dzisiejszej aktu HA, ExtaLife nie odpala. Logi:


  File "/config/custom_components/extalife/helpers/core.py", line 63, in Core
    def get(cls, entry_id: ConfigEntry.entry_id) -> "Core":  # forward
                           ^^^^^^^^^^^^^^^^^^^^
AttributeError: type object 'ConfigEntry' has no attribute 'entry_id'

Niestety integracja jest słabo napisana i tutaj wychodzi błędna anotacja typów. By integracja działała zmieńcie ten plik custom_components/extalife/helpers/core.py:63

z
Cytat
    def get(cls, entry_id: ConfigEntry.entry_id) -> "Core":  # forward

na

Cytat
    def get(cls, entry_id: str) -> "Core":  # forward


Dziękuję, działa  :)

admin

Potwiedzam, jest problem. Ja zazwyczaj nie aktualizuję HA do wersji .0, tylko czekam na .1 lub .2. Tym razem się skusiłem i integracja się nie łąduje. Po opisie błędu w zasadzie nie wiem dlaczego.
Mineło sporo czasu bo chyba z 1.5 roku jak ostatni raz uruchamiałem środowisko developerskie dla HA i po odpaleniu go teraz okazało się, że nic nie działa. Docker Desktop się wali, WSL Ubuntu ma problemy i nijak nie ma szans, żeby szybko zdebugować problem. Do VSCode nawet nie dotarłem, bo Docker Desktop jest do tego potrzebny...

Najpierw będę muiał rozwiązać problemy z oprogramowaniem do programowania i dopiero jak mi się uda to pewnie jakąś poprawkę trzeba będzie wymyślić.

Na ten moment nie ma innej opcji jak zostać na HA 2024.2. Jak coś będę miał to dam znać.

Kolego @McGregor - jakieś pomysły? Oferowałeś pomoc, więc śmiało :)
Elementy systemu, których używam: 3xSRP-22, 5xRDP-21, 3xROP-22, 4x ROP-21, 1xP-456/36, 1xRNK-24, 3x RNP-21, 1xRCT-22, aplikacja na Android oraz iOS + Home Assistant

Łukasz

Cytat: admin w Marzec 11, 2024, 09:08:29
Potwiedzam, jest problem. Ja zazwyczaj nie aktualizuję HA do wersji .0, tylko czekam na .1 lub .2. Tym razem się skusiłem i integracja się nie łąduje. Po opisie błędu w zasadzie nie wiem dlaczego.
Mineło sporo czasu bo chyba z 1.5 roku jak ostatni raz uruchamiałem środowisko developerskie dla HA i po odpaleniu go teraz okazało się, że nic nie działa. Docker Desktop się wali, WSL Ubuntu ma problemy i nijak nie ma szans, żeby szybko zdebugować problem. Do VSCode nawet nie dotarłem, bo Docker Desktop jest do tego potrzebny...

Najpierw będę muiał rozwiązać problemy z oprogramowaniem do programowania i dopiero jak mi się uda to pewnie jakąś poprawkę trzeba będzie wymyślić.

Na ten moment nie ma innej opcji jak zostać na HA 2024.2. Jak coś będę miał to dam znać.

Kolego @McGregor - jakieś pomysły? Oferowałeś pomoc, więc śmiało :)

Jak pisałem wyżej problem jest w anotacji typów. entry_id jest typu str.

admin

Dzięki! :) Nie wiem dlaczego nie widziałem twoich postów gdy odpisywałem.

Cytat: Łukasz w Marzec 09, 2024, 17:54:41
Niestety integracja jest słabo napisana i tutaj wychodzi błędna anotacja typów. By integracja działała zmieńcie ten plik
Chętnie powitam kogoś do pomocy. Poprawki mile widziane. Pythona poza tą integracją w ogóle nie używam, a i zaglądanie do niej tylko raz na parę miesięcy powoduje, że wiedza ulatuje z głowy. Kwestii typowania do tej pory nie rozpoznałem zbyt dobrze i w sumie nadal mnie to dziwi, dlaczego mamy błędy w runtime w języku który podobno nie ma typowania, a typowanie jest tylko po to, aby łatwiej pisało się kod. A przynajmniej tak to rozumiem.

Chętnie wsiadłbym już w fotel zwykłego użytkownika i tylko pobierał nowe wersje zamiast rozgryzać kolejne błędy i dłubać w pythonie, dlatego zachęcam jeśli ktoś się zna na pythonie i programowaniu dla HA - niech wesprze rozwój integracji lub nawet przejmie jej rozwój.
Elementy systemu, których używam: 3xSRP-22, 5xRDP-21, 3xROP-22, 4x ROP-21, 1xP-456/36, 1xRNK-24, 3x RNP-21, 1xRCT-22, aplikacja na Android oraz iOS + Home Assistant

Łukasz

Cytat: admin w Marzec 11, 2024, 10:27:32
Dzięki! :) Nie wiem dlaczego nie widziałem twoich postów gdy odpisywałem.

Cytat: Łukasz w Marzec 09, 2024, 17:54:41
Niestety integracja jest słabo napisana i tutaj wychodzi błędna anotacja typów. By integracja działała zmieńcie ten plik
Chętnie powitam kogoś do pomocy. Poprawki mile widziane. Pythona poza tą integracją w ogóle nie używam, a i zaglądanie do niej tylko raz na parę miesięcy powoduje, że wiedza ulatuje z głowy. Kwestii typowania do tej pory nie rozpoznałem zbyt dobrze i w sumie nadal mnie to dziwi, dlaczego mamy błędy w runtime w języku który podobno nie ma typowania, a typowanie jest tylko po to, aby łatwiej pisało się kod. A przynajmniej tak to rozumiem.

Chętnie wsiadłbym już w fotel zwykłego użytkownika i tylko pobierał nowe wersje zamiast rozgryzać kolejne błędy i dłubać w pythonie, dlatego zachęcam jeśli ktoś się zna na pythonie i programowaniu dla HA - niech wesprze rozwój integracji lub nawet przejmie jej rozwój.

Zupełnie rozumiem. Ja zaś nie znam środowiska developerskiego HA. Ale tutaj możemy wymienić się wiedzą i się wesprzeć. Jeśli masz czas chętnie się zdzwonie gdzie opowiesz mi co i jak działa z tą integracją, oraz jak wygląda środowisko deweloperskie, a ja pomyślę na ile mogę pomóc.

admin

Cytat: Łukasz w Marzec 11, 2024, 10:44:41
Zupełnie rozumiem. Ja zaś nie znam środowiska developerskiego HA. Ale tutaj możemy wymienić się wiedzą i się wesprzeć. Jeśli masz czas chętnie się zdzwonie gdzie opowiesz mi co i jak działa z tą integracją, oraz jak wygląda środowisko deweloperskie, a ja pomyślę na ile mogę pomóc.
No i to brzmi dobrze :) Napiszę na priv odnośnie tego.
Myślę, że środowisko developerskie HA to pikuś w porównaniu do samego programowania w pythonie. Dla mnie 5 lat temu jak zaczynałem to wszystko było jedną wielką niewiadomą, bo nie znałem w ogóle ani pythona, ani frameworku HA ani VS Code, ani Dockera ani githuba. Ale krok po kroku udało się w to wejść na poziomie amatora. Ale muszę przyznać, że programowanie tego typu to mały koszmarek. Co rusz jakies niezrozumiałe problemy ze środowiskiem i jego poszczególnymi składnikami. Problem z niedziałającym środowiskiem ogarnąłem, ale tylko częściowo. Docker był już zbyt stary i po aktualizacji odpalił się, ale nie działa mi już środowisko w którym programowałem HA. Nadal nie wiem dlaczego. Muszę zacząć stawiać to wszystko od nowa :/
Elementy systemu, których używam: 3xSRP-22, 5xRDP-21, 3xROP-22, 4x ROP-21, 1xP-456/36, 1xRNK-24, 3x RNP-21, 1xRCT-22, aplikacja na Android oraz iOS + Home Assistant

McGregor

Cytat: admin w Marzec 11, 2024, 09:08:29
Potwiedzam, jest problem. Ja zazwyczaj nie aktualizuję HA do wersji .0, tylko czekam na .1 lub .2. Tym razem się skusiłem i integracja się nie łąduje. Po opisie błędu w zasadzie nie wiem dlaczego.
Mineło sporo czasu bo chyba z 1.5 roku jak ostatni raz uruchamiałem środowisko developerskie dla HA i po odpaleniu go teraz okazało się, że nic nie działa. Docker Desktop się wali, WSL Ubuntu ma problemy i nijak nie ma szans, żeby szybko zdebugować problem. Do VSCode nawet nie dotarłem, bo Docker Desktop jest do tego potrzebny...

Najpierw będę muiał rozwiązać problemy z oprogramowaniem do programowania i dopiero jak mi się uda to pewnie jakąś poprawkę trzeba będzie wymyślić.

Na ten moment nie ma innej opcji jak zostać na HA 2024.2. Jak coś będę miał to dam znać.

Kolego @McGregor - jakieś pomysły? Oferowałeś pomoc, więc śmiało :)
Ja mam również sporo do zrobienia w innych dziedzinach :) Ale plan miałem taki, by pobrać repo oraz jedynie skorygować znane błędy i wrzucić do repo. Jako błędy mam na myśli ten, który już został wskazany wraz z rozwiązaniem, ale również te, które będą błędami w przyszłości a na razie są wskazywane jako ostrzeżenia o utracie kompatybilności w przyszłym roku. Nie mam planów wchodzenia w kod pythona i wprowadzania tam zmian związanych z jakimiś udoskonaleniami, które zapewne można by wskazać. To byłoby ponad moje możliwości.
Home Asistant a w nim: 30 komponentów ExtaLife i kilka ExtaFree, EFC-01 z kilkoma nadajnikami, poza tym sporo Zigbee i innych

admin

Cytat: McGregor w Marzec 12, 2024, 13:45:20
Ja mam również sporo do zrobienia w innych dziedzinach :) Ale plan miałem taki, by pobrać repo oraz jedynie skorygować znane błędy i wrzucić do repo. Jako błędy mam na myśli ten, który już został wskazany wraz z rozwiązaniem, ale również te, które będą błędami w przyszłości a na razie są wskazywane jako ostrzeżenia o utracie kompatybilności w przyszłym roku.
To już jest dużo, nawet bardzo. Kolega @Łukasz być może zajmie się zrobieniem automatycznych testów, które będą na bieżąco wykrywać problemy w integracji w oparciu o wydania  developerskie HA na długo przed wydaniem wersji stabilnej/publicznej, ale to może potrwać, więc jeśli już teraz namierzyłeś jakieś problemy to wg mnie śmiało wrzucaj poprawki do repo, a praca kolegi Łukasza jeśli dojdzie do skutku to zaprocentuje z pewnością w przyszłości i być może tym sposobem uda się uniknąć utraty kompatybilności w kolejnych wydaniach HA. Zapraszam :)
Elementy systemu, których używam: 3xSRP-22, 5xRDP-21, 3xROP-22, 4x ROP-21, 1xP-456/36, 1xRNK-24, 3x RNP-21, 1xRCT-22, aplikacja na Android oraz iOS + Home Assistant

sarzyk

#219
Jaki jest sposób by na razie przywrócić użyteczność Exta Life na HA?

sarzyk

Udało się przywrócić.
Mam pytanie jest ktoś co to próbuje ogarniać?
Może jakaś zbiórka dla tego kogoś by człowiek miał chęci do dalszej roboty.
Nie wyobrażam sobie zmianiac teraz wszystko na ZigBee. Coś co dziala

Cezary.K

Cytat: sarzyk w Kwiecień 27, 2024, 16:51:30
Mam pytanie jest ktoś co to próbuje ogarniać?

Przeczytaj tych kilka wpisów wcześniej w tym temacie i będziesz miał obraz, że jest jeden autor i raczej jednostki do pomocy w testowaniu. Wszystkich nas użytkowników jest 13 osób, jak wynika ze statystyk HA. Więc nie wiem o jakich kwotach myślisz aby autor poświęcił się tej pracy zarobkowo. Na dodatek Zamel nie jest zainteresowany współpracą i prawdopodobnie ma zupełnie inny pomysł na ten system.
Elementy systemu, których używam: Bramka AIS DEV3 "Jolka" + pilot+aplikacja WearOS, 32 urządzenia Exta Life z EFC-01, Mi-flora, Sonoff, ESP8266, ESP32 (ESPHome, Tasmota) Zigbee2mqtt, kamery IP, inteligentny głośnik w oparciu o AIS DEV1, urządzenia SIP.

sarzyk

Czyli dla mnie jest to jednoznaczne że śmiercią tego systemu.
Nigdy firmy zamel za poważną nie miałem. Co najwyżej mogą dzwonki (i to nie Smart) robić.

benio

Witam. Zmieniłem linie 63 jak w poprzednich wątkach zrobiłem downgrade HA i dalej nie działa. Czy z któryś kolego może pomóc aby przywrócić działanie integracji?



Logger: homeassistant.config_entries
Source: config_entries.py:442
First occurred: 20:52:14 (2 occurrences)
Last logged: 20:55:01

Error setting up entry efc-01 for extalife
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/asyncio/tasks.py", line 520, in wait_for
    return await fut
           ^^^^^^^^^
asyncio.exceptions.CancelledError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/config/custom_components/extalife/pyextalife.py", line 849, in async_send_message_await_response
    await asyncio.wait_for(fut, timeout)
  File "/usr/local/lib/python3.12/asyncio/tasks.py", line 519, in wait_for
    async with timeouts.timeout(timeout):
  File "/usr/local/lib/python3.12/asyncio/timeouts.py", line 115, in __aexit__
    raise TimeoutError from exc_val
TimeoutError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 442, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/extalife/__init__.py", line 189, in async_setup_entry
    return await initialize(hass, config_entry)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/extalife/__init__.py", line 303, in initialize
    await data.async_start_polling(poll_now=True)
  File "/config/custom_components/extalife/__init__.py", line 365, in async_start_polling
    await self.async_execute_status_polling()
  File "/config/custom_components/extalife/__init__.py", line 372, in async_execute_status_polling
    await self._async_update_callback()
  File "/config/custom_components/extalife/__init__.py", line 392, in _async_update_callback
    channels = await self.controller.async_get_channels()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/extalife/pyextalife.py", line 480, in async_get_channels
    resp = await self._connection.async_execute_command(cmd, None)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/extalife/pyextalife.py", line 873, in async_execute_command
    response = await self.async_send_message_await_response(msg, command)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/extalife/pyextalife.py", line 856, in async_send_message_await_response
    raise TCPConnError("Timeout while waiting for API response!")       # pylint: disable=raise-missing-from
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
custom_components.extalife.pyextalife.TCPConnError





rafaniem@gmail.com

Ktoś może pomóc? Kontroler widzi, ale nic więcej (błąd konfiguracji)
Rejestrator: homeassistant.config_entries
Źródło: config_entries.py:575
Pierwsze zdarzenie: 20:22:28 (1 zdarzenia)
Ostatnio zalogowany: 20:22:28

Error setting up entry Exta for extalife
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 575, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/extalife/__init__.py", line 189, in async_setup_entry
    return await initialize(hass, config_entry)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/extalife/__init__.py", line 303, in initialize
    await data.async_start_polling(poll_now=True)
  File "/config/custom_components/extalife/__init__.py", line 365, in async_start_polling
    await self.async_execute_status_polling()
  File "/config/custom_components/extalife/__init__.py", line 372, in async_execute_status_polling
    await self._async_update_callback()
  File "/config/custom_components/extalife/__init__.py", line 392, in _async_update_callback
    channels = await self.controller.async_get_channels()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/extalife/pyextalife.py", line 492, in async_get_channels
    channels.extend(self._get_channels_int(resp))
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/extalife/pyextalife.py", line 568, in _get_channels_int
    ch_no = state.get("channel", def_channel) if def_channel else state["channel"]      # pylint: disable=unused-variable
                                                                  ~~~~~^^^^^^^^^^^
KeyError: 'channel'