Sceny świetlne LCN

Sterowanie oświetleniem, zwłaszcza w dużych obiektach może być bardzo problematyczne. Jest to szczególnie odczuwalne, gdy zależy nam na jednoczesnym sterowaniu wieloma oprawami. Tutaj z pomocą przychodzą sceny świetlne zaimplementowane w modułach LCN, które umożliwiają zapamiętanie pożądanych nastaw i późniejsze ich wywołanie. Sceny świetlne w modułach LCN mają jednak pewną istotną wadę – ich rekonfiguracja wymaga dostępu do oprogramowania LCN–Pro oraz pewnej dozy fachowej wiedzy, co praktycznie uniemożliwia wprowadzanie zmian przez użytkowników systemu.

Dlatego postanowiliśmy nieco to uprościć i stworzyliśmy skrypt, który po uruchomieniu w instalacji umożliwia użytkownikowi rekonfigurację scen przy użyciu interfejsów użytkownika DOMIQ: DOMIQ/Remote, AirDisplay, wizualizacja z poziomu przeglądarki internetowej itd. oraz klawiszy ściennych LCN.

1. Konfiguracja skryptu #

1.1. Informacje ogólne i tworzenie grup scen świetlnych #

Wspomniany skrypt umożliwia tworzenie nieograniczonej liczby scen świetlnych, a także wybór tego, które światła mają być sterowane za pomocą wybranej sceny świetlnej. Każda scena ma dwie akcje: zapisz i wywołaj. Skrypt jest załączany do oprogramowania modułu DOMIQ/Base (Zasoby > Skrypty). Jest również dostępny na stronie internetowej samouczka, jako załącznik. Jeżeli w Twoim module nie ma skryptu, możesz go wówczas ręcznie dodać w zakładce Zasoby > Skrypty.

Konfigurację skryptu rozpoczynamy od jego zaimportowania do zakładki Logika. W tym celu w zakładce Logika wpisujemy następującą linię kodu: import ’lcnscenes’. Kolejnym krokiem jest zdefiniowanie zmiennej, przez którą będziemy odwoływać się do głównej funkcji naszego skryptu (a pośrednio do grupy scen świetlnych). W tym celu umieszczamy w zakładce Logika następującą linię kodu:
<nazwa_zmiennej>=scenes(), gdzie wyrażenie <nazwa_zmiennej>, należy zastąpić dowolną nazwą (bez polskich znaków i spacji). W naszym przypadku użyjemy nazwy test i będziemy jej używać do końca samouczka. Zatem nasza deklaracja zmiennej ma teraz postać:
test = scenes()

Nazewnictwo zmiennych jest dowolne, jednakże o deklaracji powyższej zmiennej należy myśleć w kategorii zgrupowania scen świetlnych. Np. nazywając zmienną parter powinniśmy mieć w intencji utworzenie grupy scen, które będą sterowały światłami na parterze i w deklaracji scen świetlnych (opisane w następnym podrozdziale) uwzględnić tylko te moduły i obwody, które sterują światłami na parterze. Nazywając zmienną sypialnia powinniśmy utworzyć grupę scen świetlnych, która zasięgiem działania będzie ograniczała się jedynie do pomieszczenia sypialni – sceny będą skupiały moduły i obwody, które sterują światłami w sypialni, itd.

Powyższe czynności powinniśmy powtórzyć dla wszystkich grup scen, które planujemy użyć w instalacji. W naszym przypadku ograniczymy się do jednej zmiennej.

1.2. Definiowanie scen świetlnych #

Kolejnym etapem jest definiowanie scen świetlnych w obrębie danej grupy. Do tego celu należy użyć funkcji create zaimplementowanej wewnątrz skryptu. Ogólna składnia funkcji create jest następująca:

create(numer,rejestr,{tabela_urządzeń}), gdzie:

  • numer to numer sceny świetlnej w module LCN. Dopuszczalne wartości od 1 do 10.
  • rejestr – numer rejestru w module LCN, do którego ma być zapisana wybrana scena. Dopuszczalne wartości od 0 do 9.
  • tabela_urządzeń – tutaj należy podać identyfikatory modułów LCN wraz ze wskazaniem, które wyjścia mają brać udział w scenie świetlnej. Wskazanie wyjść ściemnianych lub przekaźników odbywa się zgodnie ze składnią identyfikatora LCN.scenes opisanego w dokumentacji modułu Base. Przykład tabeli znajdziesz poniżej.

    WAŻNE: należy przestrzegać przekazywania wartości parami – identyfikator urządzenia/grupy, a następnie wyjścia. Tabela urządzeń może zawierać dowolną liczbę urządzeń przypisanych do danej sceny świetlnej.

Przykładowa definicja sceny ma następującą postać:

test:create(1,1,{'0.11','outputs:1100','0.12','relays:––––11––
',’0g10’,’outputs:0100’})

Powyższa definicja tworzy scenę nr 1, w rejestrze nr 1. Do sceny zostaną przypisane wyjścia ściemniane nr 1 i 2 w module 11, przekaźniki nr 5 i 6 w module 12 oraz wyjście ściemniane nr 2 w modułach należących do grupy 10.

Powyższą definicję należy powtórzyć dla wszystkich scen świetlnych w obrębie danej grupy scen.
Poniżej przedstawiliśmy blok definicji scen pochodzący z istniejącej instalacji:

test:create(1,1,{'0.121','outputs:1100','0.111','outputs:1100','0.113','out-puts:1000','0.121','relays:––––11––'})

test:create(2,1,{'0.121','outputs:1100','0.111','outputs:1100','0.113','out-puts:1000','0.121','relays:––––11––'})

test:create(3,1,{'0.112','outputs:1100','0.113','outputs:0100','0.121','re-lays:––1–––––'})

test:create(4,1,{'0.112','outputs:1100','0.113','outputs:0100','0.121','re-lays:––1–––––'})

2. Interfejs użytkownika #

Mając zdefiniowane sceny świetlne możemy przejść do konfiguracji interfejsu użytkownika. Zaprezentujemy jak wykonać elementy sterujące skryptem z poziomu menu aplikacji DOMIQ/Remote, wizualizacji oraz przycisków ściennych systemu LCN.

2.1. DOMIQ/Remote #

Przed przystąpieniem do właściwej procedury konfiguracji interfejsu sterującego scenami, należy zadbać o stworzenie odpowiedniej struktury aplikacji (co najmniej jedna strona i sekcja).

Do sterowania użyjemy elementów typu Przycisk, ponieważ elementy tego typu rozróżniają krótkie i długie przyciśnięcia. Akcją na krótkie przyciśnięcie będzie załadowanie sceny, natomiast długie przyciśnięcie klawisza spowoduje jej zapisanie.

W opisywanym przypadku zaprezentujemy edycję kontrolki, która będzie wczytywać i zapisywać scenę nr 1. Procedura edycji przebiega następująco:

  1. Po dodaniu elementu do struktury interfejsu należy dwukrotnie na nim kliknąć, aby otworzyć okno edycji.
  2. W polu Etykieta wpisz nazwę sceny świetlnej.
  3. W pierwszej kolejności zdefiniujemy akcję ładującą wybraną scenę. W zakładce Przyciśnięcie kliknij Dodaj komendę, a następnie w nowym oknie, w polu Nazwa wpisz C.LOGIC. W polu Wartość należy wpisać wywołanie funkcji ładującej scenę, które ma następującą składnię: <nazwa_zmiennej>:load(<numer_sceny>), w naszym przypadku: test:load(1).
  4. Pozostając w trybie edycji elementu Przycisk, przejdź do zakładki Przytrzymanie, aby zdefiniować komendę, która zapamięta naszą scenę świetlną. Analogicznie do poprzedniego punktu, kliknij Dodaj komendę. W nowym oknie, w polu Nazwa wpisz: C.LOGIC, natomiast w polu Wartość umieść wywołanie funkcji zapisującej scenę wg tej składni: <nazwa_zmiennej>:save(<numer_sceny>), w naszym przypadku: test:save(1).

Powyższe czynności należy powtórzyć dla pozostałych scen (oraz grup scen), które zostały utworzone w skrypcie.

2.2. Wizualizacja #

W przypadku wizualizacji konfiguracja jest zbliżona, jednak przyciski nie rozróżniają długiego i krótkiego naciśnięcia, dlatego dla każdej sceny należy dodać dwa elementy typu Przycisk – jeden do zapisywania i drugi do wczytywania sceny. Konfiguracja przycisku ogranicza się do dwóch czynności:

  1. W polu Etykieta należy wpisać opis przycisku.
  2. W komórce Polecenie należy wpisać komendę wywołującą daną funkcję w skrypcie. Zatem dla akcji ładowania sceny wpisz: LOGIC=<nazwa_zmiennej>:load(<numer_sceny>), w naszym przypadku: LOGIC=test:load(1). Akcja dla zapisywania jest analogiczna: LOGIC=<nazwa_zmiennej>:save(<numer_sceny>), w opisywanym przypadku: LOGIC=test:save(1)

2.3. LCN #

W tym podrozdziale przedstawimy, jak powiązać przyciski ścienne LCN z naszym skryptem obsługującym sceny świetlne. Proponowany sposób obsługi jest identyczny, jak w przypadku interfejsu w aplikacji Remote – krótkie naciśnięcie wywołuje scenę, natomiast długie ją zapisuje. Aby powiązać nasz skrypt z przyciskami ściennymi musimy zadbać o to, aby moduł Base „wiedział” o naciśnięciu danego przycisku. W tym celu w modułach LCN należy do wybranych klawiszy przypisać komendy „Wyślij klawisze” na adres modułu Base. Natomiast w module Base trzeba zdefiniować zdarzenia, które zareagują na te komendy. Dla każdej sceny świetlnej należy zdefiniować osobne zdarzenie, natomiast
skrypt automatycznie rozróżni, czy było to krótkie, czy też długie naciśnięcie.

Definicja zdarzenia jest następująca:

  1. W zakładce Zdarzenia dodaj nowe zdarzenie
  2. W polu Kanał wpisz: E.LCN.key.S.M.TP=akcja, gdzie:
    S – numer segmentu,
    M – numer modułu,
    T – tablica klawiszy w module LCN,
    P – numer klawisza,
    akcja – nazwa akcji.

    Jeżeli scena jest przypisana np. do modułu 10 i do klawisza A1, wówczas w polu Kanał należy wpisać: E.LCN.key.0.10.A1, natomiast pole Dane pozostaw puste – skrypt automatycznie wykryje rodzaj przyciśnięcia.
  3. W sekcji Akcje kliknij na Dodaj komendę. W polu Nazwa wpisz: C.LOGIC, natomiast w komórce Wartość: actionRemap("$D0","nazwa_zmiennej",numer_sceny), wyrażenie nazwa_zmiennej trzeba zastąpić nazwą zmiennej, do której przypisana jest dana scena, natomiast w miejsce numer_sceny należy wpisać nr sceny, którą chcemy wczytać/zapisać. Argument "$D0" gwarantuje, że do funkcji zostanie przekazany typ naciśnięcia klawisza (krótko lub długo). W naszym przypadku wyrażenie będzie miało następującą postać: actionRemap("$D0","test",1).

Załączone pliki #

Powered by BetterDocs