Natywna integracja z Home Assistant (komponent) 2.2

  • 37 Odpowiedzi
  • 257 Wyświetleń
*

Offline admin

  • *****
  • 1566
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Natywna integracja z Home Assistant (komponent) 2.2
« Odpowiedź #15 dnia: Wrzesień 22, 2022, 19:22:25 »
Znalazłem chwilę na aktualizację HA do najnowszej wersji 2022.9.6 i potwierdzam, że nowa wersja integracji działa ok. Nie znalazłem żadnych błędów w działaniu oraz żadnych błędów ani warningów w logu HA  8)
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

*

Offline tool

  • *
  • 14
    • Zobacz profil
Odp: Natywna integracja z Home Assistant (komponent) 2.2
« Odpowiedź #16 dnia: Wrzesień 23, 2022, 14:40:03 »

Przestaw logowanie na debug tak jak opisałem tutaj) i załącz loga do postu, to zobaczymy jak daleko integracja dochodzi i na czym się zatrzymmuje.
żeby było jak należy najpierw sprawdziłem na "produkcyjnej" wersji XD i integracja nie startowała
włączyłem logowanie jak w instrukcji na testowej instancji i problem ten sam - załączam logi - "extalife uruchamia się (...)"

Masz jakieś czujniki? Jeśli tak to jakie?
mam
1x RCT-21
1x RCM-21

a z odbiorników
całą masę SRP-02 (ExtaFree)
4x ROP-21
1x ROB-21
2x SRP-22

*

Offline admin

  • *****
  • 1566
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Natywna integracja z Home Assistant (komponent) 2.2
« Odpowiedź #17 dnia: Wrzesień 23, 2022, 17:39:28 »
żeby było jak należy najpierw sprawdziłem na "produkcyjnej" wersji XD i integracja nie startowała
👍

Cytuj
włączyłem logowanie jak w instrukcji na testowej instancji i problem ten sam - załączam logi - "extalife uruchamia się (...)"

Ciekawe, nie potrafię tego wytłumaczyć. Widać, że integracja odpytałą kontroler, ten zwrócił dane dla 37 urządzeń i na tym sprawa się kończy. Nie ma żadnego błędu, po prostu wygląda jak gdyby HA nie zaczął nawet tworzyć encji dla twoich klocków Exta Life, ale za cholerę nie wiem dlaczego.

Potrzebuję trochę więcej logów. Dodałem dodatkowy punkt logowania.
Podmień plik init na ten: https://github.dev/dgtal1/extalife_custom_component/blob/2.2b1-tool-issue/extalife/__init__.py

Zrestartuj HA i załącz logi jeszcze raz. Jeśli on się zaloguje, a mimo to integracja nie ruszy, to będzie duża zagwozdka o co chodzi.
Sugerowałbym postawić jakiś testowy HA z najnowszą wersją i spróbować na nim odpalić integrację. Ciekawe czy ruszy.
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

*

Offline admin

  • *****
  • 1566
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Natywna integracja z Home Assistant (komponent) 2.2
« Odpowiedź #18 dnia: Wrzesień 23, 2022, 17:46:46 »
@tool Na wszelki wypadek ściągnij plik jeszcze raz, bo coś mi Github nie zapisał zmian od razu. Teraz widzę, że się zapisał tyw tym pliku
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

Odp: Natywna integracja z Home Assistant (komponent) 2.2
« Odpowiedź #19 dnia: Wrzesień 25, 2022, 11:24:18 »
Wydałem 2.2b1 z poprawkami do light (tymi od kolegi @SebiCo) i zauważyłem mały błąd w sensor, który sprawiałby, że wirtualne sensory dla MEM-21 by się sypały. Kolega @Piotr_K posiada MEM, więc może kiedyś da znać czy działa :)

https://github.com/dgtal1/extalife_custom_component/releases/tag/2.2b1

Oo, super wieści, nie spodziewałem się tak szybkiej implementacji MEM-21, więc tym bardziej wyrazy uznania  ;). Wychodzi, że teraz ja jestem opóźniony, dopiero dzisiaj zajrzałem na forum. Spróbuję dzisiaj zająć się aktualizacją HA i komponentu ExtaLife, ale aż się boję o ten przeskok z HA 2022.3.8 na bieżącą wersję  ;D Dam znać jakie będą rezultaty.

*

Offline tool

  • *
  • 14
    • Zobacz profil
Odp: Natywna integracja z Home Assistant (komponent) 2.2
« Odpowiedź #20 dnia: Wrzesień 25, 2022, 12:28:04 »

Sugerowałbym postawić jakiś testowy HA z najnowszą wersją i spróbować na nim odpalić integrację. Ciekawe czy ruszy.

No i ciekawe!
Postawiłem testową wersję z HA 2022.9.6 i wszystko ruszyło
na 2022.7.0 nie chciało tak na działającej (HassOS na Rb pi4) jak i testowej (docker na Synology)

*

Offline admin

  • *****
  • 1566
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Natywna integracja z Home Assistant (komponent) 2.2
« Odpowiedź #21 dnia: Wrzesień 25, 2022, 12:44:31 »

Sugerowałbym postawić jakiś testowy HA z najnowszą wersją i spróbować na nim odpalić integrację. Ciekawe czy ruszy.

No i ciekawe!
Postawiłem testową wersję z HA 2022.9.6 i wszystko ruszyło
na 2022.7.0 nie chciało tak na działającej (HassOS na Rb pi4) jak i testowej (docker na Synology)
Może pora na aktualizację produkcyjnej do 2022.9.6? :)
Ja u siebie na produkcyjnej używam najnowszej wersji integracji i wszystko działa, a mam dość dużo różnych integracji włączonych.
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

*

Offline tool

  • *
  • 14
    • Zobacz profil
Odp: Natywna integracja z Home Assistant (komponent) 2.2
« Odpowiedź #22 dnia: Wrzesień 25, 2022, 16:07:59 »
Ok to znalazłem jeszcze taki problem:
Czujniki wyświetlają teraz tylko wartość, bez jednostki
« Ostatnia zmiana: Wrzesień 25, 2022, 16:10:50 wysłana przez tool »

*

Offline admin

  • *****
  • 1566
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Natywna integracja z Home Assistant (komponent) 2.2
« Odpowiedź #23 dnia: Wrzesień 25, 2022, 16:50:02 »
Ok to znalazłem jeszcze taki problem:
Czujniki wyświetlają teraz tylko wartość, bez jednostki
Faktycznie... U mnie czujnik temperatury też nie ma jednostki. Przyjrzę się temu bliżej
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

Odp: Natywna integracja z Home Assistant (komponent) 2.2
« Odpowiedź #24 dnia: Wrzesień 25, 2022, 19:05:24 »
Kolego @Piotr_K a jak w nowej integracji odnajduje się twój MEM?

Ok, aktualizacje przeprowadzone (HA do wersji 2022.9.6 i integracja do 2.2b1), jednak z MEM-21 jest problem. Nie wiem czy w wyniku jakiegoś konfliktu z wykorzystywanymi wcześniej encjami utworzonymi za pomocą dodatku 'attributes' (aczkolwiek wszystkie te encje usunąłem i nie są już one tworzone przez 'attributes'), czy jednak w wyniku błędu w integracji. Nie próbowałem jeszcze całkiem usuwać z HA integracji ExtaLife i pozwolić jej od nowa zaczytać wszystkie urządzenia. Na tą chwilę sprawa wygląda tak:
- MEM-21 widnieje jako urządzenie w integracji
- MEM-21 widnieje jako encja typu sensor ("sensor.licznik_energii_dom"), jednak jest niedostępna (w informacjach taki komunikat: "Ta encja nie jest już dostarczana przez extalife. Jeśli encja nie jest już używana, usuń ją w ustawieniach.")
- w encjach jest jeszcze tylko jedna związana z MEM, a mianowicie "sensor.licznik_energii_dom_phase_2_apparent_energy" i ta działa (widać na wykresie narastającą wartość).
I teraz błędy widniejące w logach HA Core:

Logger: homeassistant.components.sensor
Source: helpers/entity_platform.py:520
Integration: Sensor (documentation, issues)
First occurred: 18:44:03 (35 occurrences)
Last logged: 18:44:03

Platform extalife does not generate unique IDs. ID extalife-2294558-21-1-phase[2].apparent_energy already exists - ignoring sensor.licznik_energii_dom_phase_2_apparent_energy

Logger: homeassistant.components.sensor
Source: custom_components/extalife/sensor.py:344
Integration: Sensor (documentation, issues)
First occurred: 18:44:03 (2 occurrences)
Last logged: 18:44:03

Error adding entities for domain sensor with platform extalife
Error while setting up extalife platform for sensor
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 428, in async_add_entities
    await asyncio.gather(*tasks)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 691, in _async_add_entity
    await entity.add_to_platform_finish()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 777, in add_to_platform_finish
    self.async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 533, in async_write_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 571, in _async_write_ha_state
    state = self._stringify_state(available)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 539, in _stringify_state
    if (state := self.state) is None:
  File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 388, in state
    value = self.native_value
  File "/config/custom_components/extalife/sensor.py", line 303, in native_value
    value = self.get_value_from_attr_path(self._config.value_path)
  File "/config/custom_components/extalife/sensor.py", line 357, in get_value_from_attr_path
    return find_element(path, self.channel_data)
  File "/config/custom_components/extalife/sensor.py", line 355, in find_element
    return _find_element(_keys.split("."), dictionary)
  File "/config/custom_components/extalife/sensor.py", line 344, in _find_element
    rv = _find_element(keys[1:], rv[keys[0]])
KeyError: 'value_1'

Ten błąd pochodzi z niestandardowej integracji.

Logger: homeassistant
Source: custom_components/extalife/sensor.py:344
Integration: Exta Life (documentation)
First occurred: 18:49:11 (2 occurrences)
Last logged: 18:54:12

Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 520, in async_update_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 571, in _async_write_ha_state
    state = self._stringify_state(available)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 539, in _stringify_state
    if (state := self.state) is None:
  File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 388, in state
    value = self.native_value
  File "/config/custom_components/extalife/sensor.py", line 303, in native_value
    value = self.get_value_from_attr_path(self._config.value_path)
  File "/config/custom_components/extalife/sensor.py", line 357, in get_value_from_attr_path
    return find_element(path, self.channel_data)
  File "/config/custom_components/extalife/sensor.py", line 355, in find_element
    return _find_element(_keys.split("."), dictionary)
  File "/config/custom_components/extalife/sensor.py", line 344, in _find_element
    rv = _find_element(keys[1:], rv[keys[0]])
KeyError: 'value_1'

*

Offline admin

  • *****
  • 1566
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Natywna integracja z Home Assistant (komponent) 2.2
« Odpowiedź #25 dnia: Wrzesień 25, 2022, 20:54:47 »
Kolego @Piotr_K - niestety nie jestem w stanie żadnego z tych problemów rozwiązać bez pełnego logu. Tutaj widzę tylko że błędy wystąpiły i gdzie dokładnie wystąpiły, ale nie wiem dlaczego wystąpiły tzn nie mam kontekstu czyli danych zwróconych przez kontroler.

Nie mam już dostępu do danych zwracanych dla Multisensora, a to jest kluczowe, aby widzieć jak wyglądają dane i jak prawidłowo należy je przeczytać, aby integracja działała.

O ile spodziewałem się jakiś problemów dla multisensora w obrębie odczytywania wartości, o tyle błąd z brakiem unique ID mnie trochę dziwi, ale nie wykluczam, że gdzieś tam jest błąd, który go powoduje. Wszystkie wątpliwości powinien rozwiać pełny debug log i dane z kontrolera.

Załącz debug log tak jak kolega @SebiCo i @tool. Najlepiej od początku jak startuje HA i po wystartowaniu już raczej będzie te błędy widać w logu bo sensory przy tworzeniu encji będą odpytane o wartości. Przy startowaniu integracja pobiera listę urządzeń z kontrolera i to właśnie jest dla mnie najważniejsze - tam widać jak wyglądają dane dla konkretnego urządzenia - nazwy pól itp. Tylko wytnij swojego usera i hasło :)

Kiedyś jak znajdę dłuższą chwilę to dodam kawałki tych logów do naszej wiki, aby te informacje już nie uciekły i żeby było jasno widać co zwraca kontroler dla konkretnego urządzenia.
« Ostatnia zmiana: Wrzesień 26, 2022, 12:58:47 wysłana przez admin »
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

*

Offline admin

  • *****
  • 1566
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Natywna integracja z Home Assistant (komponent) 2.2
« Odpowiedź #26 dnia: Wrzesień 25, 2022, 21:06:11 »
Ok to znalazłem jeszcze taki problem:
Czujniki wyświetlają teraz tylko wartość, bez jednostki

Znalazłem przyczynę. Trzeba podmienić:
    @property
    def native_unit_of_measurement(self):
        return self._config.unit_of_measurement
na
    @property
    def native_unit_of_measurement(self):
        return self._config.native_unit_of_measurement

Dodam tą poprawkę w następnej wersji. A na teraz zaktualizowałem plik w repozytorium (https://github.com/dgtal1/extalife_custom_component/commit/f84d784eec892de95b34c86c047ba9c2af91b4c7)
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

*

Offline tool

  • *
  • 14
    • Zobacz profil
Odp: Natywna integracja z Home Assistant (komponent) 2.2
« Odpowiedź #27 dnia: Wrzesień 25, 2022, 22:21:49 »
Ok to znalazłem jeszcze taki problem:
Czujniki wyświetlają teraz tylko wartość, bez jednostki

Znalazłem przyczynę. Trzeba podmienić:
    @property
    def native_unit_of_measurement(self):
        return self._config.unit_of_measurement
na
    @property
    def native_unit_of_measurement(self):
        return self._config.native_unit_of_measurement

Dodam tą poprawkę w następnej wersji. A na teraz zaktualizowałem plik w repozytorium (https://github.com/dgtal1/extalife_custom_component/commit/f84d784eec892de95b34c86c047ba9c2af91b4c7)

to od siebie jeszcze dodam że:

zamiast:
   
 SensorDeviceClass.HUMIDITY: ExtaLifeSensorEntityConfig(
        native_unit_of_measurement=PERCENTAGE,
        device_class=SensorDeviceClass.ILLUMINANCE,
        state_class=SensorStateClass.MEASUREMENT,
        factor=1,
    ),

to:

    SensorDeviceClass.HUMIDITY: ExtaLifeSensorEntityConfig(
        native_unit_of_measurement=PERCENTAGE,
        device_class=SensorDeviceClass.HUMIDITY,
        state_class=SensorStateClass.MEASUREMENT,
        factor=1,
    ),

bo teraz zamiast ikony wilgotności jest ikona od naświetlenia

*

Offline admin

  • *****
  • 1566
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Natywna integracja z Home Assistant (komponent) 2.2
« Odpowiedź #28 dnia: Wrzesień 26, 2022, 08:22:38 »
to od siebie jeszcze dodam że:

zamiast:
   
 SensorDeviceClass.HUMIDITY: ExtaLifeSensorEntityConfig(
        native_unit_of_measurement=PERCENTAGE,
        device_class=SensorDeviceClass.ILLUMINANCE,
        state_class=SensorStateClass.MEASUREMENT,
        factor=1,
    ),

to:

    SensorDeviceClass.HUMIDITY: ExtaLifeSensorEntityConfig(
        native_unit_of_measurement=PERCENTAGE,
        device_class=SensorDeviceClass.HUMIDITY,
        state_class=SensorStateClass.MEASUREMENT,
        factor=1,
    ),

bo teraz zamiast ikony wilgotności jest ikona od naświetlenia

No tak, zgadza się, tu też była pomyłka, dzięki :)
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

Odp: Natywna integracja z Home Assistant (komponent) 2.2
« Odpowiedź #29 dnia: Wrzesień 26, 2022, 23:32:29 »
Kolego @Piotr_K - niestety nie jestem w stanie żadnego z tych problemów rozwiązać bez pełnego logu. Tutaj widzę tylko że błędy wystąpiły i gdzie dokładnie wystąpiły, ale nie wiem dlaczego wystąpiły tzn nie mam kontekstu czyli danych zwróconych przez kontroler.

Nie mam już dostępu do danych zwracanych dla Multisensora, a to jest kluczowe, aby widzieć jak wyglądają dane i jak prawidłowo należy je przeczytać, aby integracja działała.

O ile spodziewałem się jakiś problemów dla multisensora w obrębie odczytywania wartości, o tyle błąd z brakiem unique ID mnie trochę dziwi, ale nie wykluczam, że gdzieś tam jest błąd, który go powoduje. Wszystkie wątpliwości powinien rozwiać pełny debug log i dane z kontrolera.

Załącz debug log tak jak kolega @SebiCo i @tool. Najlepiej od początku jak startuje HA i po wystartowaniu już raczej będzie te błędy widać w logu bo sensory przy tworzeniu encji będą odpytane o wartości. Przy startowaniu integracja pobiera listę urządzeń z kontrolera i to właśnie jest dla mnie najważniejsze - tam widać jak wyglądają dane dla konkretnego urządzenia - nazwy pól itp. Tylko wytnij swojego usera i hasło :)

Kiedyś jak znajdę dłuższą chwilę to dodam kawałki tych logów do naszej wiki, aby te informacje już nie uciekły i żeby było jasno widać co zwraca kontroler dla konkretnego urządzenia.

Dodałem w configuration.yaml:
logger:
  logs:
    default: error
    custom_components.extalife: debug
    homeassistant.core: debug
jednak w logu widzę zdarzenia związane ze wszystkimi integracjami, które są w HA (oczywiście restartowałem HA po dodaniu wpisu 'logs'). Coś robię nie tak, że nie działa odfiltrowanie zdarzeń? Załączam ten plik z logami, ale nie wiem czy będzie on przydatny w takim stanie.