Natywna integracja z Home Assistant (komponent) 2.1

  • 338 Odpowiedzi
  • 25183 Wyświetleń
*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #255 dnia: Lutego 17, 2022, 10:38:42 »
Włączyłem i myślę, że będzie nas grubo ponad 10 może nawet 15  :D 8)
:o :o :o jak żyć?! Co robić? ;)
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.1
« Odpowiedź #256 dnia: Lutego 17, 2022, 10:48:23 »
W AIS tego nie ma?

Okazuje się, że jest... przepraszam ale ja z nowym układem GIU od niedawna  :-\


Miałem włączone, więc pewnie się wliczałem w tę liczbę 8 szt.
« Ostatnia zmiana: Lutego 17, 2022, 10:50:35 wysłana przez Cezary.K »
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.

*

Offline shibby

  • ***
  • 193
    • Zobacz profil
Odp: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #257 dnia: Lutego 18, 2022, 09:57:54 »
po aktualizacji HA mam taki warning w logach.

Entity binary_sensor.czujka_przedpokoj (<class 'custom_components.extalife.binary_sensor.ExtaLifeBinarySensor'>) implements device_state_attributes. Please report it to the custom component author.
Entity binary_sensor.czujnik_zalania_2 (<class 'custom_components.extalife.binary_sensor.ExtaLifeBinarySensor'>) implements device_state_attributes. Please report it to the custom component author.
Entity binary_sensor.okno_salon_2 (<class 'custom_components.extalife.binary_sensor.ExtaLifeBinarySensor'>) implements device_state_attributes. Please report it to the custom component author.
Entity binary_sensor.balkon_salon_2 (<class 'custom_components.extalife.binary_sensor.ExtaLifeBinarySensor'>) implements device_state_attributes. Please report it to the custom component author.
Entity binary_sensor.balkon_pokoj (<class 'custom_components.extalife.binary_sensor.ExtaLifeBinarySensor'>) implements device_state_attributes. Please report it to the custom component author.

integracja działa ale wolę zgłosić za w czasu.
Elementy systemu, których używam: EFC-01, 1x RNK-22, 2x RNK-24, P-457/2, ROP-21, 3x ROP-22, RDP-21, 2x RGT-01, SLR-21, SLR-22, 3x RCK, 2x RCM, RCZ, RCR

*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #258 dnia: Lutego 18, 2022, 10:21:35 »
po aktualizacji HA mam taki warning w logach.

Entity binary_sensor.czujka_przedpokoj (<class 'custom_components.extalife.binary_sensor.ExtaLifeBinarySensor'>) implements device_state_attributes. Please report it to the custom component author.
Entity binary_sensor.czujnik_zalania_2 (<class 'custom_components.extalife.binary_sensor.ExtaLifeBinarySensor'>) implements device_state_attributes. Please report it to the custom component author.
Entity binary_sensor.okno_salon_2 (<class 'custom_components.extalife.binary_sensor.ExtaLifeBinarySensor'>) implements device_state_attributes. Please report it to the custom component author.
Entity binary_sensor.balkon_salon_2 (<class 'custom_components.extalife.binary_sensor.ExtaLifeBinarySensor'>) implements device_state_attributes. Please report it to the custom component author.
Entity binary_sensor.balkon_pokoj (<class 'custom_components.extalife.binary_sensor.ExtaLifeBinarySensor'>) implements device_state_attributes. Please report it to the custom component author.

integracja działa ale wolę zgłosić za w czasu.
Ciekawe, nie zauważyłem tego u siebie, ale ja nie mam czujniów Exta Life, więc pewnie daltego. Wygląda na to, że zmienił się nieco model danych i implementacja dla encji w HA w wersji 2021.12.
Spróbuj zmienić w tej linii tylko u siebie lokalnie: https://github.com/dgtal1/extalife_custom_component/blob/1fc95315f1b76c97abc5d096c0234f0050e65a11/extalife/__init__.py#L749
def device_state_attributes(self): na def extra_state_attributes(self):
i zobacz czy po restarcie też będzie warning. To powinno roziwązać sprawę. Zmienię to w najbliższej wersji nad którą pracuję, ale będę potrzebował waszej pomocy, bo albo coś się w HA zmieniło albo dzieją się u mnie dziwne rzeczy. Napiszę o tym zaraz
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

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #259 dnia: Lutego 18, 2022, 10:28:38 »
@shibby @Cezary.K @SebiCo @Fantomas przyzywam Was! ;)
Zacząłem pracę nad tymi nowymi usługami dla integracji i w zasadzie myślę, że jest to gotowe, ale niestety nie działa. Co gorsze nie działają mi na developerskim HA inne usługi integracji, które wprowadziłem jeszcze w wersji 2.0 czyli prawie 2 lata temu. Sprawa jest o tyle dziwna, że na produkcyjnym HA te stare usługi mi działają, a nie chcę na razie łądować developerskiej wersji integracji do produkcyjnego HA.

Potrzebuję Waszej pomocy.
Czy możecie odpalić jakąkolwiek usługę extalife u siebie na Waszych HA i dać mi znać czy działa czy sypie błędem?

Odpalcie przykładowo w narzędziach deweloperskich HA usługę: extalife.refresh_state. Tylko nie zapomnijcie podać parametru entity_id czyli encji extalife.efc_01 albo odpowiednio innej zależnie od nazwy waszego EFC-01 w integracji.

Z nieznanego mi powodu na wersji developerskiej HA nie działa pobieranie z HA Core informacji o Entity Registry dla encji kontrolera a to jest niezbędne, aby odpalić usługę. Tak jakby encja kontrolera nie trafiała do Entity Registry. Ale co ciekawe na produkcyjnym HA 2022.2 działa to bez problemu. Nie wiem co jest grane.
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 shibby

  • ***
  • 193
    • Zobacz profil
Odp: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #260 dnia: Lutego 18, 2022, 10:44:47 »
Spróbuj zmienić w tej linii tylko u siebie lokalnie: https://github.com/dgtal1/extalife_custom_component/blob/1fc95315f1b76c97abc5d096c0234f0050e65a11/extalife/__init__.py#L749
def device_state_attributes(self): na def extra_state_attributes(self):
i zobacz czy po restarcie też będzie warning. To powinno roziwązać sprawę. Zmienię to w najbliższej wersji nad którą pracuję, ale będę potrzebował waszej pomocy, bo albo coś się w HA zmieniło albo dzieją się u mnie dziwne rzeczy. Napiszę o tym zaraz

nie pomogło. Nadal czepia się device_state_attributes dla binary_sensor. Zamieniłem więc też 2 wystąpienia device_state_attributes w binary_sensor.py. Wtedy zaczął się czepiać device_state_attributes w sersors, więc i tak zamieniłem 2 wystąpienia. Wtedy czepił się switch ale jak tam zmieniłem to już cała integracja padła ;)

Odpalcie przykładowo w narzędziach deweloperskich HA usługę: extalife.refresh_state. Tylko nie zapomnijcie podać parametru entity_id czyli encji extalife.efc_01 albo odpowiednio innej zależnie od nazwy waszego EFC-01 w integracji.

klikam na wywołaj usługę i nic się nie dzieje. Taki ma być efekt? mam wersję 2022.2.7
« Ostatnia zmiana: Lutego 18, 2022, 10:46:27 wysłana przez shibby »
Elementy systemu, których używam: EFC-01, 1x RNK-22, 2x RNK-24, P-457/2, ROP-21, 3x ROP-22, RDP-21, 2x RGT-01, SLR-21, SLR-22, 3x RCK, 2x RCM, RCZ, RCR

*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #261 dnia: Lutego 18, 2022, 10:54:59 »
nie pomogło. Nadal czepia się device_state_attributes dla binary_sensor. Zamieniłem więc też 2 wystąpienia device_state_attributes w binary_sensor.py. Wtedy zaczął się czepiać device_state_attributes w sersors, więc i tak zamieniłem 2 wystąpienia. Wtedy czepił się switch ale jak tam zmieniłem to już cała integracja padła ;)
Sorki, podałem ci złą linijkę w kodzie, która dotyczyłą tylko encji kontrolera a nie bazy dla wszystkich encji Exta Life. Chodziło o linię 629 https://github.com/dgtal1/extalife_custom_component/blob/1fc95315f1b76c97abc5d096c0234f0050e65a11/extalife/__init__.py#L629

Zmiany które robiłeś w pozostałych plikach były raczej ok, skoro czepiał się kolejno potem różnych encji to znaczy, że te które zmieniłem zostały naprawione. A na switchu pewnie o coś innego chodziło, może popełniłeś jakiś drobny błąd typu literówka? Co to znaczy, że "integracja padła"? Co było w logu?

Cytuj
Odpalcie przykładowo w narzędziach deweloperskich HA usługę: extalife.refresh_state. Tylko nie zapomnijcie podać parametru entity_id czyli encji extalife.efc_01 albo odpowiednio innej zależnie od nazwy waszego EFC-01 w integracji.

klikam na wywołaj usługę i nic się nie dzieje. Taki ma być efekt? mam wersję 2022.2.7
Tak, taki ma być efekt - znaczy, że stan encji się zaktualizował z kontrolera i nie było błędu. Czyli znaczy że integracja działa na zwykłych, produkcyjnych HA, a ja będę musiał dojść dlaczego nie działa na developerskim. Kompletnie tego nie rozumiem. Jeszcze przychodzi mi do głowy, że może nadal działa na HA, któe używają tej integracji od lat. Może na świeżej instalacji będzie ten sam problem. Nie wiem. Dojście do tego na pewno zajmie trochę czasu
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 shibby

  • ***
  • 193
    • Zobacz profil
Odp: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #262 dnia: Lutego 18, 2022, 11:08:44 »
wtedy mam

Logger: homeassistant.components.binary_sensor
Source: custom_components/extalife/binary_sensor.py:98
Integration: Sensor binarny (documentation, issues)
First occurred: 11:06:32 (2 occurrences)
Last logged: 11:06:32

Error adding entities for domain binary_sensor with platform extalife
Error while setting up extalife platform for binary_sensor
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 382, in async_add_entities
    await asyncio.gather(*tasks)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 614, in _async_add_entity
    await entity.add_to_platform_finish()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 782, in add_to_platform_finish
    self.async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 539, in async_write_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 579, in _async_write_ha_state
    self.device_state_attributes is not None
  File "/config/custom_components/extalife/binary_sensor.py", line 98, in device_state_attributes
    attr.update({"sync_time": data.get("sync_time")})
AttributeError: 'NoneType' object has no attribute 'update'

i tak dla binary_sensor, sensors, climate i switch.
Elementy systemu, których używam: EFC-01, 1x RNK-22, 2x RNK-24, P-457/2, ROP-21, 3x ROP-22, RDP-21, 2x RGT-01, SLR-21, SLR-22, 3x RCK, 2x RCM, RCZ, RCR

*

Offline SebiCo

  • ***
  • 225
    • Zobacz profil
Odp: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #263 dnia: Lutego 18, 2022, 11:37:13 »
Cytuj
Odpalcie przykładowo w narzędziach deweloperskich HA usługę: extalife.refresh_state. Tylko nie zapomnijcie podać parametru entity_id czyli encji extalife.efc_01 albo odpowiednio innej zależnie od nazwy waszego EFC-01 w integracji.

U mnie przy wywołaniu usługi tez nic się nie dzieje, żadnego błędu.
Mam wersję HA 2022.2.8
« Ostatnia zmiana: Lutego 18, 2022, 11:43:08 wysłana przez SebiCo »

*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #264 dnia: Lutego 18, 2022, 12:14:36 »
Cytuj
Odpalcie przykładowo w narzędziach deweloperskich HA usługę: extalife.refresh_state. Tylko nie zapomnijcie podać parametru entity_id czyli encji extalife.efc_01 albo odpowiednio innej zależnie od nazwy waszego EFC-01 w integracji.

U mnie przy wywołaniu usługi tez nic się nie dzieje, żadnego błędu.
Mam wersję HA 2022.2.8
Dzięki za info. Ja postawiłem na szybko świeżą instancję w Dockerze 2022.2.8 i też działa. Czyli to coś z wersją developerską jest nie tak. Będę musiał testować na normalnym HA, ale bez debuggera :( Powrót do korzeni. Muszę przyznać, że gdybym miał tak działać cały czas, to integracja zatrzymałaby się na wersji 1.0 bo zbudować tak skomplikowanego tworu jakim obecnie ona jest bez debugera nie tyle się nie da, co jest to bardzo czasochłonny proces.

No nic, ważne że na produkcyjnych działa, bo wtedy problem byłby dużo poważniejszy bo nie wiedziałbym nawet od czego zacząć żeby zlokalizować ten problem.

Dzięki Panowie
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.1
« Odpowiedź #265 dnia: Lutego 18, 2022, 12:44:27 »
Wywołanie usługi extalife.refresh_state działa bez błędów.
AIS HA    2021.12.9
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.

*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #266 dnia: Lutego 18, 2022, 16:25:56 »
Wywołanie usługi extalife.refresh_state działa bez błędów.
AIS HA    2021.12.9
Dzięki, już doszedłem o co chodzi. Po nitce do kłębka. Nie wiem jeszcze dlaczego, ale w instancji developerskiej nie działa biblioteka, której używam do odczytywania adresu MAC kontrolera. MAC jest użyty jako unikalna globalnie wartość dla encji kontrolera. Aby encja znalazła się w HA Entity Registry musi posiadać unikalne ID. A tu bez adresu MAC unikalne ID jest puste i encja kontrolera nie trafia do Entity Registry, a w konsekwencji nie działają usługi, ponieważ używają Entity Registry do odczytania Config Flow ID, które jest potrzebne do ustalenia obiektu reprezentującego kontroler i wykonania na nim akcji. Na instancji developerskiej zaharcode;owałem sobie na sztywno MAC na czas developmentu, a potem usunę to, aby w wersji produkcyjnej pobierał się prawdziwy MAC, bo co dziwne - wszędzie indziej to działa. Może to problem z Dockerem albo WSL2 w Windows, że ta biblioteka nie działa. Windows jak zawsze najgorszy do developmentu czegokolwiek :)

Najważniejsze że działa na naszych HA i tego się trzymajmy. Tym czasem nowy feature czyli dwie usługi działa obiecująco i jeszcze trochę pracy zostało, ale najważniejsze rzeczy już są.

Dodatkowo kolego @shibby - dokonałem w każdym pliku zmian `device_state_attributes` na `extra_state_attributes` i teraz nigdzie nie otrzymuję warningów (faktycznie były widoczne na wersji developerskiej, a na produkcyjnej ma poziom logowania error i tego nie widziałem). Stawiam, że czegoś nie podmieniłeś i dlatego się wysypało. W nowej wersji 2.1.4 dodam również tą zmianę.
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 SebiCo

  • ***
  • 225
    • Zobacz profil
Odp: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #267 dnia: Lutego 18, 2022, 19:28:12 »
@admin jak już się tak rozpędziłeś to dodaj tez obsługę ROBa z https://github.com/SebiCo/extalife_custom_component/tree/gate

*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #268 dnia: Lutego 18, 2022, 21:43:04 »
@admin jak już się tak rozpędziłeś to dodaj tez obsługę ROBa z https://github.com/SebiCo/extalife_custom_component/tree/gate
Będzie! ;)
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

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #269 dnia: Lutego 21, 2022, 09:22:55 »
Cześć Panowie,
Mam dobre i złe wieści (a w zasadzie jedną złą i jedną dobrą). Dobre są takie, że te nowe serwisy są gotowe i mógłbym wydać testową wersję integracji 2.1.3 :)

Zła wiadomość jest natomiast taka, że mam problem z dodaniem funkcji wyszarzania encji gdy integracja utraci połączenie z EFC-01. Encję kontrolera mogę wyszarzyć bez problemu, a pozostałe encje nie. Dokładnie chodzi o to, że encje zmieniają stan na 'unavailable'. Z jakiś względów python asyncio sypie mi błędami o niedozwolonych operacjach (non-thread safe operation) gdy wołam odświeżanie stanu na encjach HA. Gdy udało mi się to ogarnąć to znowuż przestało działać sterowanie encjami z HA i notyfikacje stanu z tego samego powodu. Bezpośrednim winowajcą jest "wołanie" obiektów HA z poziomi bilbioteki do komunikacji z kontrolerem, ale nie wiem co w tym złego. Niestety sam komunikat błędu niewiele wyjaśnia i nie jestem w stanie znaleźć przyczyny tego błędu i tym samym zmienić kod tak, aby wyszarzanie działało. W związku z tym na razie wyszarzanie encji na podstawie braku połączenia z kontrolerem nie będzie działać tzn po prostu go nie będzie.

Mogę wydać wersję testową bez tego feature, ale za to z nowymi serwisami do kontroli połączenia + poprawkami do ROB-21. Jak wolicie? ??? Myślę, że lepsze to niż opóźnianie wydania na czas nieokreślony, bo nie będę stanie powiedzieć ile mi to zajmie, dopóki nie poznam przyczyny.

Przydałby się jakiś guru asyncio do pomocy. Popytam na discord HA dev, ale nie ma gwarancji, że znajdzie się ktoś, kto odgadnie, albo lepiej - przeanalizuje kod i powie co może być przyczyną.

Dajcie znać.
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