Home Assistant LAB · Dom w praktyce · Rolety zewnętrzne · Lekcja 16
boneIO IN17-IN19: lokalny MASTER GÓRA/DÓŁ i blokada rolety tarasowej R01
MASTER jest wygodny, ale porusza wiele ciężkich elementów naraz. Buduję go lokalnie i jawnie wykluczam roletę tarasową, gdy kontaktron wskazuje otwarte drzwi. Przycisk STOP oraz sterowanie pojedynczą roletą muszą pozostać dostępne, a pierwszą próbę wykonuję z obserwatorami w każdym zagrożonym miejscu.
Dlaczego ten etap jest ważny
MASTER i drzwi tarasowe są funkcjami, które warto utrzymać lokalnie. W tej lekcji IN17-IN19 dostają finalne role, a R01 nie zamyka się, jeśli drzwi są otwarte. Podstawowa blokada nie czeka na serwer ani chmurę.
W pełnej lekcji zrobisz to krok po kroku
Zanim cokolwiek podłączymy, sprawdzamy fabryczne IN17-IN19
To krytyczny krok. W oficjalnym pliku boneIO ESP Cover v0.7 wejścia IN17, IN18 i IN19 nie są puste. Producent ma już na nich domyślne akcje dla kolejnych coverów. IN17 otwiera Cover 09, IN18 zamyka Cover 09, a IN19 otwiera Cover 10. Dlatego nie wolno najpierw podłączyć MASTER, a dopiero później edytować YAML. W rewizji v0.7 producent przypisuje IN17 do ekspandera pcf_inputs_15to28 numer 4, IN18 numer 3, a IN19 numer 2. Te numery zostawiamy bez zmian. Jeśli masz inną rewizję, zachowujesz jej własną sekcję pin:.
Najpierw neutralizujemy IN17-IN19 w YAML
Otwieramy ESPHome Device Builder i znajdujemy trzy istniejące definicje. Usuwamy z nich stare on_press i on_release związane z Cover 09 i Cover 10. Nie zmieniamy sekcji pin:. Wartość inverted: true w powyższym przykładzie pochodzi z fabrycznej konfiguracji wejścia v0.7. Po podłączeniu konkretnego kontaktronu sprawdzamy, czy daje oczekiwaną semantykę drzwi. Jeśli nie, zmieniamy odwrócenie świadomie. Nie kopiujemy ustawienia kontaktu tylko dlatego, że działało dla przycisku.
Blokada R01 nie może istnieć tylko w przycisku MASTER
Gdybyśmy dodali warunek drzwi tylko do IN18, zabezpieczylibyśmy MASTER DÓŁ, ale Home Assistant nadal mógłby wysłać bezpośrednie CLOSE do R01. Lokalny przycisk IN02 też wymagałby osobnego warunku. Dlatego najważniejszą kontrolę dokładamy do close_action Cover 01. Wtedy każda ścieżka, która prosi R01 o zamknięcie, przechodzi przez tę samą kontrolę styku.
Local IN02 R01 może zostać proste
Ponieważ warunek jest teraz na poziomie close_action, lokalny przycisk DÓŁ nie musi dublować całej kontroli kontaktronu. Gdy IN02 poprosi Cover 01 o CLOSE, sam Cover 01 sprawdzi stan drzwi przed załączeniem wyjścia DOWN. To ważna zasada projektowa: jeśli różne źródła mogą wykonać tę samą niebezpieczną lub niepożądaną akcję, warunek najlepiej umieszczać możliwie blisko warstwy wykonawczej, a nie kopiować go do każdej automatyzacji osobno.
Test 2: MASTER DÓŁ przy zamkniętych drzwiach R01
Zamknij drzwi tarasowe i potwierdź w logach, że r01_door_open jest OFF. Naciśnij MASTER DÓŁ. R01-R08 mają rozpocząć zamykanie sekwencyjnie.
Co dzieje się po ponownym zamknięciu drzwi
Samo zamknięcie drzwi nie powinno automatycznie uruchamiać rolety. Kontaktron jedynie zdejmuje blokadę. Następna komenda DÓŁ, MASTER DÓŁ albo CLOSE z HA może wtedy rozpocząć zamykanie. To celowe, ponieważ człowiek po zamknięciu drzwi może nadal chcieć zostawić roletę otwartą.
Home Assistant może widzieć MASTER i drzwi, ale nie jest wykonawcą
Po wgraniu YAML Home Assistant zobaczy IN17, IN18 i R01 Drzwi Tarasowe jako encje binary_sensor, jeśli nie oznaczymy ich jako internal. To jest przydatne diagnostycznie. Stan drzwi wykorzystamy później również w dashboardzie i automatyzacjach. Nie tworzymy jednak w HA automatyzacji „gdy IN17 ON, otwórz rolety”, bo ta funkcja już działa lokalnie na boneIO.
Pełna wersja zawiera
- MASTER GÓRA na IN17 i MASTER DÓŁ na IN18
- Kontaktron drzwi R01 na IN19
- Lokalny STOP R01 przy otwarciu drzwi
- Zanim cokolwiek podłączymy, sprawdzamy fabryczne IN17-IN19
- Robimy kopię konfiguracji po L15
- Fizyczne podłączenie MASTER nadal jest niskonapięciowe
- Kontaktron R01 podłączamy jako suchy styk do GND i IN19
- Najpierw neutralizujemy IN17-IN19 w YAML
- Walidujemy wersję bez żadnych akcji MASTER
- Ustalamy semantykę kontaktronu: ON ma oznaczać OTWARTE
- Dodajemy krótkie filtrowanie styku IN19
- Blokada R01 nie może istnieć tylko w przycisku MASTER
- Modyfikujemy wyłącznie close_action R01
- Drzwi otwarte podczas zamykania mają natychmiast zatrzymać R01
- Local IN02 R01 może zostać proste
- MASTER GÓRA: najpierw STOP, potem sekwencyjne OPEN
Jak pracujemy w pełnej wersji
Nie przeskakujemy od teorii prosto do gotowego efektu. Zaczynamy od MASTER GÓRA na IN17 i MASTER DÓŁ na IN18, następnie porządkujemy Kontaktron drzwi R01 na IN19 i dopiero później przechodzimy do Lokalny STOP R01 przy otwarciu drzwi. W praktycznym systemie rolet kolejność ma znaczenie: błąd z początku konfiguracji może wyglądać jak problem Home Assistant dopiero kilka etapów później. Dlatego materiał pokazuje nie tylko co ustawić, ale również po czym rozpoznać poprawny rezultat i kiedy zatrzymać się przed następnym krokiem.
Pełna lekcja łączy wykonanie z diagnostyką. Po drodze wracamy do takich punktów jak Zanim cokolwiek podłączymy, sprawdzamy fabryczne IN17-IN19 oraz Robimy kopię konfiguracji po L15. Nie zakładamy, że identyczne ustawienie będzie poprawne w każdym domu. Tam, gdzie wynik zależy od napędu, instalacji, kierunku elewacji, czasu ruchu lub zachowania domowników, dostajesz procedurę pomiaru i strojenia zamiast jednej „magicznej” liczby do skopiowania.
Na końcu etap musi dać się zweryfikować. Jeśli wynik jest inny niż opisany, pełna wersja prowadzi przez sprawdzenie przyczyny przed dołożeniem kolejnej warstwy. Dzięki temu następne lekcje opierają się na sprawdzonym fundamencie, a nie na przypadkowo działającej konfiguracji, która psuje się przy pierwszym restarcie, zmianie pogody albo użyciu fizycznego przycisku.
Efekt po zakończeniu lekcji
IN17 otwiera R01-R08, IN18 zamyka R01-R08, ale R01 nie otrzyma komendy zamknięcia, gdy drzwi tarasowe są otwarte. Jeśli drzwi zostaną otwarte podczas zamykania R01, lokalna logika wyda STOP. Blokada obejmuje także bezpośrednią komendę CLOSE dla Cover 01, ponieważ kontrola kontaktronu znajduje się w close_action R01, a nie wyłącznie w przycisku MASTER.
Chcesz zbudować ten etap razem z kursem?
Ta lekcja jest częścią kursu Smart Home od Zera na platformie MarkLabs E-Learning. Pełna wersja prowadzi przez konfigurację, testy, diagnostykę i przypadki awaryjne bez zostawiania Cię z poleceniem „skonfiguruj to sam”.
Kup dostęp do kursu: 29 zł
Dożywotni dostęp | Wszystkie lekcje | Bez subskrypcji
Zobacz pełny kurs na marklabs.pl/e-learning/