Oto jest! Obiecana nowa, bardziej funkcjonalna i prostsza w instalacji wersja integracji z Home Assistant! 🔥🔥🔥
Do pobrania z:
https://github.com/dgtal1/extalife_custom_component/releases/tag/1.1Zdecydowałem, że będę korzystać z github’a, bo to może trochę pomóc w zarządzaniu wersjami.
UWAGA: od września 2020 dostępna jest nowsza, bardziej rozbudowana wersja integracji, którą można zainstalować z GUI Home Assistant. Więcej tutajOpis rozwiązania:Pakiet plików w archiwum zip w załączniku pozwala zintegrować Exta Life z Home Assistant z pominięciem pośrednich, dodatkowych narzędzi jak skrypty python oraz MQTT.
Integracja ta działa na zasadzie natywnego komponentu Home Assistant czyli tak jak wszystkie integracje, które możecie zobaczyć na stronie
https://www.home-assistant.io/integrations/Różnica do tych integracji wbudowanych w HA jest taka, że tą integrację trzeba zainstalować samemu zamiast po prostu używać po ściągnięciu HA. Działa ona na zasadzie tzw. Custom Component czyli komponentu, który nie jest oficjalnie dystrybuowany z HA, ale działa na takiej samej zasadzie jak komponenty wbudowane w HA. Posiada taką samą budowę i architekturę jak wbudowane w HA integracje.
Integracja została zbudowana w dużej mierze dzięki pracy twórcy integracji supla. Ta prosta integracja pozwoliła mi zrozumieć jak to powinno się w HA budować. Z nieskrywaną dumą przyznam, że moja integracja Exta Life przerosła już na starcie możliwościami oryginalną integrację supla

(np wspiera cykliczne discovery bez konieczności restartu HA, aby dodać nowe urządzenie, obsługuje wszystkie typy urządzeń Exta Life).
Instalacja jest banalnie prosta, ale o tym później.
Funkcjonalność:- integracja obsługuje tzw. device discovery czyli samoczynnie tworzy nowe encje odpowiadające kanałom odbiorników i czujników Exta Life (dla urządzeń wielokanałowych stworzy się tyle encji ile kanałów z wyjątkiem multisensora RCM, gdzie stworzą się osobne encje dla każdej z wielkości mierzonych, gdyż najprawdopodobniej wszystkie wielkości nadawane są na jednym kanale). Dzieje się to z każdym odpytaniem kontrolera o stan odbiorników czyli co każde 5 minut, ale można zdefiniować w konfiguracji swój interwał czasowy
- integracja nasłuchuje na osobnym połączeniu wiadomości z kontrolera zawierające tzw notyfikacje zmiany stanu. Czyli HA zostanie powiadomiony o każdej zmianie stanu wywołanej przez aplikację Exta Life oraz o każdej zmianie stanu dowolnego czujnika gdy tylko kontroler otrzyma dane z czujnika i wyśle taką informację. Na tą funkcjonalność niektórzy z Was czekali (choć wierzę, że porzucicie aplikację Exta Life na rzecz aplikacji HA na zasadzie one app to rule them all
) Możliwe jest zatem zrealizowanie sterowania urządzeniami natychmiast po zmianie stanu czujnika ruchu lub kontaktronu! Prawdziwy smart home! 
- integracja potrafi samoczynnie wykryć kontroler tak jak to robi aplikacja Exta Life, więc podawanie jego IP nie jest koniecznie, ale możliwe
Obsługiwane urządzenia Exta Life:- Odbiorniki: ROM, ROP, RDM, RDP, SRP, SRM oraz nowości 2019 - gniazdko ROG-21, SLR-21/22, RGT-01 i GKN-01
- Czujniki: czujnik temperatury z RNK oraz czujniki RCT, eksperymentalna obsługa nowych czujników 2019 - multisensor RCM, czujnik zalania RCZ, czujnik ruchu RCR, kontaktron RCK
Powyższe nowe czujniki są obsługiwane na zasadzie moich domysłów co do ich modelu danych i ich reprezentacji w wiadomościach JSON z kontrolera. W rzeczywistości zweryfikujemy czy to działa, gdy tylko się pojawią i gdy ktoś będzie w stanie je przetestować (kolego
@shibby - liczę, że będziesz w stanie pozyskać nowości do testów

).
Urządzenia Exta Free nie są wspierane.
Czego integracja nie posiada z punktu widzenia funkcjonalności HA:- nieobsługiwana jest konfiguracja z GUI (tzw. config flow & config entry), a jedynie w pliku configuration.yaml. Być może kiedyś z czasem się to pojawi, gdy poznam development HA jeszcze lepiej
- z powyższego względu nieobsługiwany jest feature HA o nazwie Device Registry / integrations. Czyli nie zobaczymy w ekranie integracji (nie mylić z ekranem stanu w narzędziach deweloperskich) wszystkich encji stworzonych przez tą integrację tak jak to widzimy np dla integracji Chromecast, Philips Hue czy Esphome. Nie udało mi się tego zaimplementować, a dodatkowo wymagałoby to sporych zmian w integracji. Może z czasem się to pojawi
- nieobsługiwany jest nowy feature HA o nazwie Device triggers czyli uproszczone tworzenie automatyzacji. Wiąże się to z powyższymi kwestiami
Instalacja i konfiguracja:1. Wypakować podkatalog
extalife z archiwum do katalogu HA
config/custom_components. W razie potrzeby stworzyć katalog custom_components gdy nie istnieje. Po wypakowaniu pliki z kodem (rozszerzenie .py) powinny znajdować się w katalogu HA
config/custom_components/extalife2. w pliku configuration.yaml dodać następujący wpis z parametrami:
extalife:
user: <user>
password: <hasło>
Opcjonalnie można też podać “ręcznie” adres IP kontrolera podając parametr
controller_ip, jeśli z jakiegoś względu integracja nie poradzi sobie z jego wykryciem w sieci.
Jest także możliwość zdefiniowania własnego interwału czasowego (w minutach) do wykonywania cyklicznych zapytań o stan poprzez podanie parametru
poll_interval.
Przykładowa minimalna konfiguracja:
extalife:
user: root
password: mojehasloniedozlamania
Przykładowa szczegółowa konfiguracja:
extalife:
user: root
password: mojehasloniedozlamania
controller_ip: 192.168.1.25
poll_interval: 3
3. Zrestartować HA, aby integracja została załadowana.
Proszę w tym wątku o wszelkie komentarze z problemami, niedziałającymi funkcjami, wrażeniami, sugestiami itp. Im więcej błędów znajdziemy tym lepiej, bo to pozwoli na stworzenie stabilnego i lepszego softu.Liczę, że ta integracja pozwoli ściągnąć uwagę kolejnych potencjalnych użytkowników Exta Life, a wśród nich może znajdzie się jakiś programista mogący mnie wesprzeć w działaniach integracyjnych. A najlepiej gdyby udało się nawiązać współpracę z Zamel (który powinien być tym na prawdę sam z siebie zainteresowany jako promocją swojego systemu) i tym sposobem testować kompatybilność i nadal rozwijać integrację, choć patrząc na dotychczasowe moje doświadczenia z tą firmą to na to jednak chyba nie mogę liczyć.
Dla chętnych przyłączyć się do pracy nad tą integracją deweloperów - oto
link do repozytorium Github.
ROADMAP:Integrację tą chciałbym nadal rozwijać i sprawiać, że jeszcze głębiej będzie się integrowała z HA i wykorzystywała jego dostępne ficzery, aby użytkownikom jeszcze łatwiej było z niej korzystać i zarządzać encjami reprezentującymi urządzenia Exta Life.
Dlatego zdecydowałem, że może warto, aby wiadomo było w jakim kierunku będzie to podążało
Oto plany na kolejne wersje:
1.1:
- zmienić sposób działania dla rolet wg zasad HA (open = 100, closed = 0). Naprawi to sterowanie przyciskami w GUI Lovelace
- rozszerzyć listę ikon, które spowodują mapowanie urządzeń ROP/ROP jako świateł (encje light) w HA
- wprowadzić dodatkową konfigurację dla encji cover i możliwość modyfikacji listy ikon mapujących dla świateł - także poprzez wpis w configuration.yaml
1.2:
- dodać funkcjonalność Config Entry - czyli możliwości skonfigurowania integracji z poziomu GUI (ekran Integracje). Pierwsze PoC za mną i chyba uda się to zrobić. Dzięki temu możliwe będzie zaimplementowanie kolejnych ficzerów HA w kolejnych wersjach, bo jest to warunek,aby można było je zaimplementować
1.3:
- Dodać tzw. Device Triggers & Device Automations czyli maksymalne uproszczenie tworzenia automatyzacji dla urządzeń Exta Life w HA. Bardzo przydatna sprawa dla mniej technicznych osób