Oto jest! Nowa, jeszcze bardziej funkcjonalna i prostsza w instalacji i konfiguracji wersja integracji z Home Assistant! 🔥🔥🔥
Do pobrania z:
https://github.com/dgtal1/extalife_custom_component/releases/tag/2.0Postanowiłem przeskoczyć od razu z wersji 1.1 na wersję 2.0, bo zmian w środku jest na prawdę dużo. Jest i dużo nowości. O tym poniżej.
Ogólny opis rozwiązania, lista obsługiwane moduły Exta Life jest taki sam jak dla starszej wersji 1.1 i jest dostępny pod
tym linkiem.
Nowa funkcjonalność w wersji 2.0:- integracja obsługuje teraz konfigurację z GUI! (ekran integracji HA). Należy wyszukać na liście integracji pozycję 'Exta Life' i postępować zgodnie z kreatorem krok po kroku.
Dodałem wsparcie dla logo Exta Life! teraz w jakimkolwiek miejscu w HA, gdzie występuje lista integracji - zobaczycie znajome logo Exta Life Tym samym zrobiłem pierwszy swój commit na GitHub'ie projektu HA Gdybyście tylko wiedzieli jak uzyskałem logo w wysokiej rozdzielczości dla HA, aby ładnie się skalowało…To był wyczyn
Jest możliwość dodania integracji wyłącznie z GUI (np "czysta" instalacja HA), ale nie zapomniałem także o tych, którzy woleliby niczego nie zmieniać w swoich instalacjach HA, więc przygotowałem kod migrujący konfiguracje integracji z pliku configuration.yaml do GUI. Migracja dokona się automatycznie podczas startu HA. Po uruchomieniu HA integracja będzie widoczna w ekranie ‘Integracje’.
Generalnie planuję porzucić konfigurację poprzez plik configuration.yaml w przyszłości zgodnie z wytycznymi architektów HA. Integracje mają być konfigurowane z GUI, gdyż to pozwala lepiej i łatwiej nimi zarządzać. Ale na razie będzie, aby dać czas na oswojenie się z konfiguracją GUI.
- Możliwe jest usunięcie integracji "w locie" w trakcie działania HA bez konieczności restartu! To funkcja, która jest możliwa dla integracji dodawanych z GUI lub ogólnie poprzez tzw. Config Entry, które tworzy się z GUI lub poprzez kod migrując konfigurację z pliku configuration.yaml. Należy jednak pamiętać, że jeśli nie usuniecie wpisu 'extalife' z pliku configuration.yaml, to integracja pojawi się ponownie po restarcie.
- Dzięki konfiguracji z GUI możliwe jest teraz dodanie integracji Exta Life wielokrotnie i dzięki temu połączyć HA z dowolną liczbą kontrolerów EFC-01 (warunek: różne adresy IP kontrolerów oraz różne adresy MAC widziane przez serwer HA - do zrealizowania przez VPN). Mający Exta Life w pracy i domu na pewno docenią tą możliwość
- dodałem obsługę konfiguracji integracji poprzez tak zwane Opcje (strona Integracje> Exta Life> Opcje, aby precyzyjnie dostosować zachowanie integracji do potrzeb użytkownika. Opcje zdefiniowane w pliku configuration.yaml automatycznie zmigrują się do GUI.
Zaimplementowane opcje są tymi samymi, co w wersji 1.1: mapowanie na światło na podstawie ikony (znaczenie numerów można sprawdzić tutaj), odwrócone sterowanie roletą - suwak w GUI HA nadal będzie działał tak jak w aplikacji Exta Life; niestety przyciski góra dół nadal będą działać nieprawidłowo w położeniach skrajnych.
Zmiany niektórych opcji (np mapowanie switch na light) wymagają restartu HA, aby przynieść oczekiwany efekt.
- Dodałem obsługę Rejestru urządzeń (Device Registry) - można teraz zobaczyć wszystkie urządzenia Exta Life (!) i powiazane z nimi encje na ekranie 'Urządzenia' w HA. Zobaczycie tam także kontroler EFC-01 oraz wszystkie nadajniki Exta Life!
- Dodałem obsługę Automatyzacji urządzeń (typ wyzwalacza/warunku/akcji ‘Urządzenie’)! Można teraz tworzyć nowe automatyzacje bardzo łatwo dzięki zdarzeniom i działaniom dla danego urządzenia! Nie potrzeba już znać technicznych nazw encji oraz wywoływać usług (services) dla danego urządzenia do stworzenia automatyzacji. Wszystko jest reprezentowane czytelnie i zrozumiale w HA. Nowi i niezaznajomieni użytkownicy HA na pewno docenią tą funkcjonalność. Bariera wejścia w HA znacznie się obniża dzięki temu.
Zachęcam Was do zdefiniowania sobie w ten sposób automatyzacji
- dodałem obsługę kontrolera EFC-01 w ekranie Urządzenia (Device Registry)! Kontroler posiada teraz swoją własną encję, dzięki której można monitorować jego dostępność (stany: ready oraz unavailable).
Poza stanem można monitorować wersję softu kontrolera, jego IP oraz MAC.
Nazwa encji kontrolera widoczna będzie w ekranie ‘Urządzenia’ (Device Registry) i zaczyna się od ‘extalife.’ a po kropce nazwa encji zależna jest od nazwy zdefiniowanej w samym kontrolerze. Domyślnie: extalife.efc_01
- Dodałem - wieloktrotnie już wspominaną - obsługę automatyzacji wywoływanych poprzez sygnały z nadajników Exta Life! Wyobraźcie sobie np uruchomienie odkurzacza w zadanej strefie poprzez przyciśnięcie przycisku na pilocie Exta Life, albo sterowanie różnymi rzeczami poprzez jeden łącznik RNP-21 uruchamiając różne rzeczy lub sceny w zależności od tego czy przyciśniemy raz, czy dwa czy przytrzymamy? Fantastyczna wizja, nieprawdaż?
Możliwe będzie w HA zareagowanie na następujące zdarzenia z nadajnika: wciśnięcie przycisku, puszczenie przycisku, dwuklik(!), trójklik(!), przytrzymanie klawisza na dłużej(!) (*)
Przykład dla RNP-21:
- EDIT 03.08.2020:
W wersji 2.0b2 dodałem dzięki koledze @rampler wsparcie dla klocków Exta Free obsługiwanych przez kontroler EFC-01. Są to: ROP-01, ROP-02, ROM-01, ROM-10, ROP-05, ROP-06, ROP-07, ROB-01, SRP-02, RDP-01, RDP-02, RDP-11, SRP-03.
Elementy te z racji jednokierunkowej transmisji reprezentowane są w GUI HA przez 2 przyciski do włączania i wyłączania osobno i działają w oparciu o stan tzw assumed state czyli założoną wartość stanu elementu. Po włączeniu w GUI stan zmienia się zawsze na włączony a po wyłączeniu na wyłączony. Kontroler nie jest w stanie sprawdzić prawdziwego stanu elementu.
UWAGA: Kontroler oferuje sterowanie jedynie na zasadzie włącz/wyłącz nawet dla ściemniacza RDP-11 mimo, że w aplikacji da się wybierać kolor, to aplikacja i tak wysyła jedynie komendy załączania i wyłączania. Tak samo robi integracja HA.
(*) - obsługa reakcji na sygnały z nadajników przekazywane przez kontroler została dodana testowo.
Funkcja ta została dodana z myślą o przyszłości, gdy Zamel (miejmy nadzieję) doda wsparcie dla sygnałów z nadajników w aplikacji Exta Life, i co za tym idzie - do integracji. Mam na prawdę nadzieję, że firma Zamel stanie na wysokości zadania i doda wsparcie, szczególnie gdy deklarowała, że integracje z innymi systemami traktuje poważnie.Obecnie możliwe jest zdefiniowanie automatyzacji typu ‘Urządzenie’, wybranie nadajnika, który ma być wyzwalaczem dla automatyzacji oraz wybranie zdarzenia: wciśnięcie przycisku, puszczenie przycisku, dwuklik, trójklik, przytrzymanie klawisza na dłużej. Przetestowanie tego jest możliwe poprzez wywołanie testowego serwisu w ekranie Narzędzi deweloperskich
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 GUI HA w ekranie Integracje odszukać pozycję 'Exta Life' ze znajomym logo i postępować zgodnie z instrukcjami na ekranie. Proste, prawda?
UWAGA: może się zdarzyć, że integracji nie będzie na liście mimo poprawnego wypakowania plików do folderu custom_components. To wina cache'owania w przeglądarce listy integracji. Trzeba wyczyścić cache przeglądarki i odświeżyć stronę HA i integracja powinna pojawić się na liście. Kto instalował u siebie HACS ten wie o co chodzi. A resztę odsyłam do
procedury opisanej na stronie HACS, bo jest ona taka sama dla naszej integracji.
3. Integracja została załadowana. W Narzędziach Deweloperkich powinny pojawić się wszystkie encje a w ekranie Urządzenia - wszystkie urządzenia Exta Life włącznie z nadajnikami i kontrolerem EFC-01.
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. Gotowi do testowania? START! 🟢🏁
Dla chętnych przyłączyć się do pracy nad tą integracją deweloperów - oto
link do repozytorium Github.
ROADMAP:Plany na kolejne wersje:
2.1:
- przebudować integrację tak, aby zużywała tylko jedno połączenie z kontrolerem tak jak aplikacja Exta Life.