Skip to content

app-blind-controller

Bloczek roletowy app-blind-controller jest programowym odpowiednikiem fizycznego sterownika rolet. Umożliwia on określenie procentowego położenia rolety i lameli. Po dodaniu bloczka roletowego do projektu aplikacja mobilna utworzy powiązane wirtualne urządzenie, pozwalające na sterowanie roletą, monitorowanie jej stanu i położenia, a także na sterowanie z poziomu scen i programatorów. Z poziomu scen i programatorów można zlecić pełny ruch rolety w górę lub w dół, zatrzymanie rolety, ustawienie docelowej pozycji rolety w procentach oraz ustawienie docelowej pozycji lameli w procentach.

Parametry konfiguracyjne

Nazwa parametru Wartość
Czas pełnego przejazdu w górę (full_travel_time_up) Pole numeryczne określające czas pełnego przejazdu rolety w górę w sekundach. Wartość minimalna to 1 sekunda, wartość maksymalna to 1800 sekund (czyli 30 minut). Krok 0.1 sekundy.
Czas pełnego przejazdu w dół (full_travel_time_down) Pole numeryczne określające czas pełnego przejazdu rolety w dół w sekundach. Wartość minimalna to 1 sekunda, wartość maksymalna to 1800 sekund (czyli 30 minut). Krok 0.1 sekundy.
Czas pełnego obrotu lameli w górę (full_louver_travel_time_up) Pole numeryczne określające czas pełnego obrotu lameli w górę w sekundach. Wartość minimalna to 0 sekund, wartość maksymalna to 30 sekund. Krok 0.1 sekundy.
Czas pełnego obrotu lameli w dół (full_louver_travel_time_down) Pole numeryczne określające czas pełnego obrotu lameli w dół w sekundach. Wartość minimalna to 0 sekund, wartość maksymalna to 30 sekund. Krok 0.1 sekundy.
Czas opóźnienia przed rozpoczęciem ruchu po otrzymaniu polecenia (blind_start_delay_time) Pole numeryczne określające faktyczny czas opóźnienia/bezwładności ruchu rolety w sekundach po załączeniu przekaźnika jazdy w górę lub w dół. Wartość minimalna to 0 sekund, wartość maksymalna to 10 sekund. Krok 0.1 sekundy.
Kalibracja rolety pełnym otwarciem (full_open_calibration) Jeśli położenie rolety jest nieznane to musi zostać przeprowadzona procedura kalibracji polegająca na pełnym otwarciu lub zamknięciu rolety. Zaznaczenie tego pola oznacza, że kalibracja wykona pełne otwarcie rolety. Odznaczenie tego pola oznacza, że kalibracja wykona pełne zamknięcie rolety. Kalibracja jest wykonywana automatycznie przy pierwszym zadaniu wartości procentowej pozycji rolety gdy aktualna pozycja rolety jest nieznana. Po pełnym otwarciu roleta ma pozycję 0%, a po pełnym zamknięciu pozycję 100%.
Priorytet pełnego zamknięcia (full_close_priority) Opcjonalna flaga określająca, która procedura ma pierwszeństwo, gdy jednocześnie aktywne są wejścia tag5 i tag6. Wartość true oznacza pierwszeństwo pełnego zamknięcia. Brak parametru, wartość false albo wartość innego typu oznacza domyślne pierwszeństwo pełnego otwarcia.
Korekcja lameli po domknięciu (allow_louver_correction_after_full_close) Opcjonalna flaga określająca, czy po ruchu procentowym rolety do pełnego zamknięcia bloczek może wykonać zapamiętaną korekcję lameli. Wartość true pozwala na wykonanie takiej korekcji, o ile stan rolety i lameli na to pozwala. Brak parametru, wartość false albo wartość innego typu zachowuje domyślne pominięcie korekcji lameli po domknięciu.

Aby obsługa lameli była wyłączona, oba parametry full_louver_travel_time_up i full_louver_travel_time_down muszą mieć wartość 0. Aby obsługa lameli była włączona, oba parametry muszą być dodatnie i mieścić się w dozwolonym zakresie. Ustawienie jednego z tych parametrów na 0, a drugiego na wartość dodatnią jest błędem konfiguracji bloczka.

Bloczek obsługuje również flagę persistent_state, która określa czy po ponownym uruchomieniu ma zostać przywrócona ostatnia utrwalona pozycja rolety oraz lameli. Zapis trwały nie następuje od razu, tylko około 10 minut po ostatniej zmianie położenia. Jeśli restart lub zanik zasilania nastąpi wcześniej, może zostać przywrócona wcześniejsza pozycja. Jeśli opcja jest wyłączona, pozycje po restarcie nie będą przywracane i bloczek rozpocznie pracę ze stanem domyślnym. Aktywność procedur pełnego otwarcia i pełnego zamknięcia z wejść tag5 i tag6 nie jest utrwalana po restarcie projektu.

Obsługa wejścia

Podanie na wejście główne wartości procentowej położenia rolety (od 0 do 100) spowoduje ruch rolety do zadanego poziomu. Wartość 0 oznacza pełne otwarcie rolety, a wartość 100 oznacza pełne zamknięcie rolety. Podanie wartości spoza zakresu 0-100 zostanie zignorowane. Ten sposób sterowania dotyczy wartości, które nie są przekazywane przez bloczek tag. Jeśli aktualna pozycja rolety jest nieznana, to przed wykonaniem ruchu zostanie przeprowadzona procedura kalibracji polegająca na pełnym otwarciu lub zamknięciu rolety w zależności od konfiguracji bloczka.

Wysłanie z bloczka command komendy up na wejście główne rozpoczyna pełny ruch rolety w górę na 104% czasu pełnej kalibracji. Po zakończeniu takiego ruchu bloczek uznaje roletę za w pełni otwartą. Wysłanie komendy down działa analogicznie, ale rozpoczyna pełny ruch rolety w dół i po jego zakończeniu bloczek uznaje roletę za w pełni zamkniętą. Jeśli roleta jest już w ruchu, komenda up albo down zatrzymuje bieżący ruch. Wysłanie komendy reset zatrzymuje ruch rolety. Jeśli po wcześniejszym zatrzymaniu trwa jeszcze wewnętrzna przerwa bezpieczeństwa przed kolejnym ruchem, komenda reset anuluje również oczekujące działanie.

Jeżeli ruch procentowy rolety zakończy się przy pełnym zamknięciu, to po zatrzymaniu bloczek domyślnie nie wykona odroczonej korekty lameli. Dotyczy to również przypadku, w którym roleta już wcześniej była zamknięta i kolejne polecenie procentowe nie wymaga faktycznego ruchu. Ewentualna wcześniej zapamiętana oczekiwana pozycja lameli pozostaje zachowana i może zostać wykonana dopiero przy późniejszym ruchu procentowym rolety do położenia częściowo otwartego. Ustawienie parametru allow_louver_correction_after_full_close na true pozwala bloczkowi wykonać zapamiętaną korekcję lameli również po takim domknięciu, o ile nie blokują tego inne warunki. Podczas aktywnej procedury z tag5 albo tag6 ruch lameli nadal jest odraczany do zakończenia procedury.

Bloczek może działać również bez żadnych połączeń wejściowych. W takiej konfiguracji nadal pozostaje dostępny jako wirtualne urządzenie w aplikacji mobilnej oraz interfejsie WWW, natomiast sterowanie z poziomu logiki przez wejście główne i linie tag1-tag6 oczywiście nie będzie wtedy używane.

Jeżeli po zatrzymaniu ruchu trwa jeszcze wewnętrzna przerwa bezpieczeństwa przed ewentualnym ponownym załączeniem silnika w przeciwnym kierunku, kolejne polecenie procentowej pozycji rolety nie restartuje tej przerwy. Po jej upływie bloczek wykona ostatnie oczekujące ustawienie procentowe rolety, a gdy położenie rolety jest nieznane uruchomi wymaganą kalibrację.

Gdy aktywna jest procedura pełnego otwarcia albo pełnego zamknięcia z wejść tag5 lub tag6, bloczek blokuje wykonywanie ruchu z innych źródeł: wejścia głównego, przycisków tag1 i tag2, aplikacji mobilnej, interfejsu WWW, scen oraz programatorów. Polecenia procentowej pozycji rolety i lameli nadal są zapamiętywane jako cele zadane, ale ich wykonanie jest odraczane do zakończenia procedury. Aktywna albo oczekująca z powodu blokady procedura jest sygnalizowana w opisie bloczka.

Dodatkowo bloczek obsługuje następujące wartości z linii wejściowych oznaczonych za pomocą bloczka tag. Do jednej linii tag1-tag6 można podłączyć wiele bloczków tag o tym samym numerze. Każde zdarzenie z takiego bloczka będzie traktowane jak zdarzenie z tej samej linii wejściowej. Wartości przekazane przez bloczki tag o numerach innych niż tag1-tag6 są ignorowane.

Numer i nazwa wejścia Opis działania
tag1: Przycisk przejazdu rolety w górę. Wysłanie wartości true na wejście na linii tag1 spowoduje ruch rolety do góry. Puszczenie przycisku (wysłanie wartości false) zatrzyma ruch rolety tylko wtedy gdy przycisk został puszczony przed upływem 2 sekund od jego naciśnięcia.
tag2: Przycisk przejazdu rolety w dół. Wysłanie wartości true na wejście na linii tag2 spowoduje ruch rolety w dół. Puszczenie przycisku (wysłanie wartości false) zatrzyma ruch rolety tylko wtedy gdy przycisk został puszczony przed upływem 2 sekund od jego naciśnięcia.
tag3: Procentowy poziom położenia lameli. Podanie wartości procentowej (od 0 do 100) na wejście na linii tag3 zapisuje oczekiwany poziom położenia lameli i jeśli jest to możliwe od razu rozpoczyna ruch lameli do zadanego poziomu. Wartość 0 oznacza skierowanie lameli do góry, wartość 50 oznacza położenie prostopadłe do szyby, a wartość 100 oznacza skierowanie lameli w dół. Podanie wartości spoza zakresu 0-100 zostanie zignorowane. Jeśli obsługa lameli jest wyłączona, to podanie tej wartości zostanie zignorowane. Jeśli aktualna pozycja rolety lub lameli jest nieznana, jeśli roleta jest całkowicie lub prawie całkowicie otwarta albo jeśli roleta jest aktualnie w ruchu, to wartość z tag3 nie zostanie utracona, tylko pozostanie zapamiętana jako oczekiwane położenie lameli i zostanie wykonana później, gdy stan rolety pozwoli na sterowanie lamelami. Jeśli bieżący ruch rolety wynika z ustawiania procentowej pozycji rolety, to bloczek spróbuje wykonać zapamiętane położenie lameli po zakończeniu tego ruchu. Wyjątkiem jest domyślnie pełne zamknięcie rolety, gdy pozycja lameli pozostaje tylko zapamiętana; parametr allow_louver_correction_after_full_close ustawiony na true pozwala na próbę wykonania tej korekcji również po domknięciu. Jeśli natomiast trwa pełny ruch rolety wywołany przyciskiem przejazdu albo rozkazem up/down, to oczekiwana pozycja lameli pozostanie tylko zapamiętana i zostanie wykorzystana dopiero przy późniejszym sterowaniu procentową pozycją rolety. Podczas aktywnej procedury z tag5 albo tag6 wartość z tag3 jest zapamiętywana, ale ruch lameli jest odroczony do zakończenia procedury. Podanie wartości null na wejście tag3 czyści zapamiętane oczekiwane położenie lameli, dzięki czemu kolejne ruchy rolety nie będą próbowały przywracać wcześniej zapamiętanej pozycji lameli. Wartość null nie zmienia aktualnej pozycji lameli i nie zatrzymuje ruchu, który już trwa. Gdy roleta jest całkowicie lub prawie całkowicie otwarta i lamele są stłoczone obok siebie, bloczek raportuje dla nich wartość 100%.
tag4: Blokada ruchu rolety. Wysłanie wartości true na wejście na linii tag4 spowoduje zablokowanie ruchu rolety. Jeśli roleta aktualnie się porusza, to aktywacja blokady zatrzyma ją natychmiast. Wartość false odblokuje ruch rolety. Wartości te mogą pochodzić z zewnętrznych źródeł, takich jak czujnik otwarcia okna lub system alarmowy. Blokada ruchu ma wyższy priorytet niż procedury z tag5 i tag6: procedura może pozostać aktywna logicznie, ale nie uruchomi silnika do czasu zdjęcia blokady. Zdjęcie blokady wznawia procedurę tylko wtedy, gdy odpowiadające jej wejście nadal jest aktywne.
tag5: Procedura pełnego otwarcia rolety. Wartość true aktywuje procedurę pełnego otwarcia rolety do pozycji 0%. Wartość false dezaktywuje tę procedurę. Wejście działa poziomowo: procedura pozostaje aktywna tak długo, jak długo aktywne jest żądanie z tag5. Podczas aktywnej procedury bloczek blokuje ruch z innych źródeł, ale zapamiętuje nowe zadane pozycje rolety i lameli. Po dezaktywacji procedury roleta wraca do ostatniego znanego celu, jeśli taki cel jest znany.
tag6: Procedura pełnego zamknięcia rolety. Wartość true aktywuje procedurę pełnego zamknięcia rolety do pozycji 100%. Wartość false dezaktywuje tę procedurę. Wejście działa poziomowo: procedura pozostaje aktywna tak długo, jak długo aktywne jest żądanie z tag6. Podczas aktywnej procedury bloczek blokuje ruch z innych źródeł, ale zapamiętuje nowe zadane pozycje rolety i lameli. Po dezaktywacji procedury roleta wraca do ostatniego znanego celu, jeśli taki cel jest znany. Gdy tag5 i tag6 są aktywne jednocześnie, domyślnie pierwszeństwo ma pełne otwarcie z tag5; parametr full_close_priority ustawiony na true przełącza pierwszeństwo na pełne zamknięcie z tag6.

Wyjścia bloczka

Numer i nazwa wyjścia Opis wyjścia
1. Wyjście sterowania roletą. To wyjście jest przeznaczone do bezpośredniego podłączenia do urządzenia roletowego (np. bloczek output sterujący roletą E16). Zwraca wartość up podczas ruchu rolety do góry, wartość down podczas ruchu rolety w dół, a wartość reset gdy roleta jest zatrzymana.
2. Procentowy poziom położenia rolety. Zwraca aktualny procentowy poziom położenia rolety. Wartość 0 oznacza całkowite otwarcie rolety, a wartość 100 oznacza całkowite zamknięcie rolety. Jeśli aktualna pozycja rolety jest nieznana, to zwracana jest wartość null.
3. Procentowy poziom położenia lameli. Zwraca aktualny procentowy poziom położenia lameli. Wartość 0 oznacza skierowanie lameli do góry, wartość 50 oznacza położenie prostopadłe do szyby, a wartość 100 oznacza skierowanie lameli w dół. Jeśli aktualna pozycja lameli jest nieznana, to zwracana jest wartość null. Gdy roleta jest całkowicie lub prawie całkowicie otwarta i lamele są stłoczone obok siebie, zwracana jest wartość 100.
4. Stan blokady ruchu rolety. Zwraca wartość true jeśli ruch rolety jest zablokowany, w przeciwnym przypadku zwraca wartość false.
5. Stan ruchu rolety w górę. Zwraca wartość true jeśli roleta aktualnie się porusza do góry, w przeciwnym przypadku zwraca wartość false.
6. Stan ruchu rolety w dół. Zwraca wartość true jeśli roleta aktualnie się porusza w dół, w przeciwnym przypadku zwraca wartość false.