Mój soft kontrolera to 1.6.4. Nie próbowałem integracji 1.1.
Jeżeli chodzi o podwójny kontroler, który widnieje w logach to pojawił się sam. Dopiero gdy zauważyłem usunąłem integrację i zainstalowałem ponownie. Teraz mam wpis pojedynczy. Kontroler notorycznie się zawiesza. Spróbuję jeszcze raz odinstalować ver. 2 i zainstalować ver.1.1. Dam znać czy na poprzedniej wersji też jest taka sytuacja z kontrolerem.
Czyli wersja 2.0 to wersja z którą zacząłeś zabawę w integrowanie Exta Life z Home Assistant, czy tak? Czy też miałeś wcześniej wersję 1.0?
@jm @Cezary.K - generalnie jest jedna wspólna cecha waszych przypadków: macie dość pokaźną liczbę urządzeń Exta Life obsługiwaną przez kontroler EFC-01. U mnie zwiechy nie występują w ogóle.
Kolejne pytanie, na którę chciałbym, abyście odpowiedzieli:
1. Czy używacie oprócz HA aplikacji Exta Life i wykonujecie w niej jakieś akcje typu załączanie urządzeń, scen, wyświetlanie listy urządzeń, odświeżanie? Może inni domownicy?
2. Jakiego usera podaliście w konfiguracji? root czy inny?
3. Czy zwiecha kontrolera dzieje się podczas wykonywania jakiś operacji na kontrolerze przez integrację HA lub aplikację Exta Life??
4. Czy posiadacie jakieś czujniki Exta Life sparowane z kontrolerem? Jeśli tak, to ile?
5. Czy zmienialiście domyślny czas odpytywania 5 minut na inny, szczególnie dłuższy??
Zamel niestety nie był w stanie ustalić dlaczego kontroler się zawiesza z integracją. Ale przyszło mi do głowy pewne podejrzenie, co może być problemem. Po pierwsze integracja zużywa 2 połączenia, co w dobrze działającym kontrolerze nie powinno być żadnym problemem (ale tu może być). A po drugie i może ważniejsze - połączenie główne, które jest wykorzystywane do wykonywania poleceń, odczytywania stanu działa nieco inaczej niż apka Exta Life. Otóż odczyt danych z kontrolera następuje tylko, gdy jest do wykonania jakaś operacja typu załącz/wyłącz lub odczytanie stanu co 5 minut. Kontroler jednak działa tak, że gdy następuje jakaś zmiana stanu czujnika lub gdy inny użytkownik użyje apki Exta Life i włączy/wyłączy jakieś urządzenie to kontroler wysyła o tym fakcie informacje do wszystkich innych, zalogowanych użytkowników. Tyle że technicznie działa to tak, że te dane z powiadomieniem "siedzą" w pamięci kontrolera do momentu, aż integracja wykona kawałek kodu, który odczyta dane z kontrolera (a to nie dzieje się samoczynnie, a jedynie wtedy gdy jest jakaś akcja do wykonania lub odczyt stanu co 5 minut). Te dane zajmują pamięć kontrolera. Gdy nikt nie wykona żadnych operacji w HA pomiędzy cyklicznie wykonywanym co 5 minut odpytywaniem stanu odbiorników to dane te mogą prowadzić do przepełnienia jakiegoś bufora w kontrolerze a ten może się zawiesić. To tylko moje spekulacje i przypuszczenia, bo nie wiem jak oprogramowany jest kontroler, ale wydaje mi się, że taka sytuacja jest możliwa. Gdyby tak było to instalacje, w których nie ma czujników oraz instalacje, w których nikt nie używa apki Exta Life, a jedynie integracji z HA (czyli dokładnie mój przypadek) nie ujawniałyby takiego problemu.
Tyle że, mimo wszystko takie same zwiechy powinny się z tego powodu objawić w integracji 1.0 i 1.1 bo sposób komunikacji jest taki sam. Jedyną różnicą jest to, że wersja 2.0 dodatkowo cyklicznie odpytuje o sparowane nadajniki. Nie bardzo chce mi się wierzyć, że ta mała różnica powoduje zwiechy, ale jeśli jest jakiś błąd w kontrolerze to faktycznie może to się tak objawić.
Tak jak mówię - to tylko moje przypuszczenia, ale dla bezpieczeństwa chcę w przyszłości zmienić sposób w jaki działa komunikacja integracji z kontrolerem na 1 połączenie, które non stop będzie nasłuchiwało danych z kontrolera tak jak aplikacja. Do tego jednak jeszcze daleka droga, bo jak na razie to mam tylko abstrakcyjną wizję tego rozwiązania w głowie, ale wiem, że w praktyce będą wyboje po drodze, aby to zaimplementować, bo zmiana jest spora i wymaga zmian w logice radzenia sobie z błędami w danych od kontrolera. Pamiętacie ile czasu trwało zanim Zamel usunął
błąd nieprawidłowej zawartości zakładki w aplikacji? Powodem jest właśnie trochę zagmatwany i problematyczny w oprogramowaniu protokół komunikacji.