Witajcie zintegrowani z HA!
Tak jak wspominałem w ostatnim czasie na forum - wypuszczam kolejną wersję integracji zawierającą, to co już w pierwsze 2 dni wersji 1.0 pojawiło się w zapowiedziach - rozszerzone mapowanie urządzeń ROP/ROP na encje typu
light zamiast
switch oraz zmiana działania w sterowaniu roletami.
To także pierwsza wersja integracji, która zawiera tzw. breaking changes (na pewno znane wam jeśli czytacie Release Notes kolejnych wydań Home Assistant'a). Oznacza to, że w pewnych obszarach zmieni się zachowanie działania integracji wynikające z nowości. Na szczęście dla leniwych lub tych, którzy po prostu będą chcieli, aby wszystko działało po staremu można będzie dostosować te nowości pod siebie zachowując dotychczasową logikę sterowania i mapowania. Szczegóły poniżej
Nowe funkcje:Wprowadziłem obsługę opcji konfiguracyjnych (dodatkowe wpisy w pliku configuration.yaml) w celu zwiększenia elastyczności dla użytkowników końcowych i wpłynięcia na zachowanie integracji w HA. Opcje dotyczą poszczególnych platform (np. cover, light etc). Obsługiwane są następujące opcje:
* cover: sterowanie odwrócone (opcja: inverted_control; domyślnie: False) - powoduje, że suwak pozycji cover działa tak jak w aplikacji Exta Life. 0 = roleta schowana, 100 = roleta całkowicie opuszczona (okno całkowicie zakryte). Ustawienie to pozwala zachować dotychczasową logikę działania - jak w wersji 1.0. Efekty uboczne: przyciski GUI do otwierania / zamykania HA są niepoprawnie wyszarzone w GUI HA w skrajnych położeniach (0 i 100), ponieważ GUI HA oczekuje, że roleta w pełni schowana to pozycja = 100, a nie 0. Generalnie te efekty uboczne to nic nowego - na pewno je znacie, jeśli macie rolety Exta Life zintegrowane z HA. Suwak pozycji rolety działał do tej pory w HA tak samo jak w aplikacji Exta Life. Jest to wygodne, ale HA niepoprawnie wyszarza w GUI przyciski. Dlatego postanowiłem, że od tej wersji domyślnie pozycja = 100 to będzie roleta podniesiona, a zmienić to będzie można właśnie ustawieniem inverted_control
* light: rozszerzyłem listę ikon dla urządzeń ROP / ROM (opcja: icons_list; domyślnie: 8,9,13,14,15,16,17), które spowodują, że te urządzenia będą reprezentowane w HA jako światło (light) a nie przełącznik (switch). Nowe numery ikon to: 8,9,14,16,17. Znaczenie wszystkich numerków można sprawdzić na naszej wiki pod
tym linkiemJeśli komuś to nowe mapowanie nie odpowiada i chce zostawić swoje ROP/ROM jako switch w HA - musi dodać opcje konfiguracyjne i tam wylistować jakie ikony mają powodować mapowanie ROP/ROM na światło w HA. Możliwa jest także pusta lista: [], która spowoduje, że żaden ROP/ROP nie zmapuje się na light.
Przykładowa konfiguracja w pliku configuration.yaml z nowymi opcjami, która pozwoli zachować dotychczasową logikę dla rolet i mapowania świateł z wersji 1.0:
extalife:
user: root
password: mojemegahaslo
options:
cover:
inverted_control: True
light:
icons_list:
- 13
- 15
Cała sekcja 'options' jest opcjonalna i nie trzeba jej dopisywać w pliku configuration.yaml. Ci, którzy zdecydują się na nowe zasady nie muszą nic robić - opcje same ustawią się na domyślne wartości tak ja opisywałem.
Breaking changes:* Platforma `cover` działa teraz domyślnie zgodnie z modelem abstrakcji Home Assistant, gdzie pozycja 100 oznacza, że roleta jest całkowicie schowana (okno nie jest zakryte). Jest to breaking change, ponieważ wszystkie sceny, skrypty i automatyzacje, które używają suwaka położenia rolety, będą musiały zostać zmienione i wartości dla suwaka przeliczone na nowo. Nowa pozycja powinna być obliczona jako:
nowa_wartość = 100 - stara_wartość.
Znaczenie przycisków GUI góra / dół (otwieranie / zamykanie) pozostaje takie samo. To nowe zachowanie można zastąpić, ustawiając opcję „inverted_control: True” w opcjach integracji dla platformy „cover”
* Domyślnie więcej ikon urządzenia ROP / ROM (przełącznik) będzie miało wpływ na mapowanie tych urządzeń jako świateł w HA zamiast przełączników. ROP/ROM z ikonami 8,9,13,14,15,16,17 zostaną przy starcie HA z wersją integracji 1.1 zmapowane na light a nie switch. Wszystkie sceny, skrypty, automatyzacje i układ GUI będą wymagały zmian i dostosowania. To zachowanie może być również zastąpione przez opcje integracji, ustawiając `icons_list` jedynie na na 13 i 15 platformy `light`.
Poprawki:* Obsługa błędu podczas wykrywania adresu IP kontrolera, gdy nie jest podany w konfiguracji. W rzadkich przypadkach mogło się zdarzyć, że ten błąd się pojawiał (w zasadzie tylko gdy pracowałem nad integracją startując ją na nowo co chwila i testując ją) i powodował błąd ładowania całej integracji co skutkowały tym, że w HA nie pojawiały się żadne encje z Exta Life
* zwiększony domyślny limit czasu wykonywania komend z 5 do 15 sekund. Zapobiega błędom w inicjalizacji integracji podczas startu HA w dużych instalacjach, w których kontroler EFC-01 potrzebuje dużo więcej czasu na odczytanie stanu wszystkich odbiorników. Przy dużych instalacjach takich jak u kolegi
@wswsws domyślna wartość 5 sekund nie wystarczała i kontroler w tym czasie nie zdążył odpytać wszystkich urządzeń i skutek był taki, że encje odbiorników nie pokazywały się w HA. Potestowałem to i sądzę, że zwiększenie timeout'u nie będzie miało negatywnych skutków ani dla integracji ani dla HA
Do pobrania z:
https://github.com/dgtal1/extalife_custom_component/releases/tag/1.1Jak zawsze feedback mile widziany!