1. Wprowadzenie #
Jednym z podstawowych celów działania inteligentnego domu jest oszczędność czasu. Czy zdarza Ci się wychodzić w domu spiesząc się, bo np. już jesteś spóźniony do pracy lub na spotkanie? I wtedy dodatkowo przypominasz sobie o wszystkch rzeczach, które pozostały włączone w domu i wymagają Twojej uwagi, np. światła, ogrzewanie, zawory bezpieczeństwa. Albo gdy wracasz do domu, czy nie byłoby miło, gdyby jedną czynno- ścią dało się włączyć kluczowe urządzenia?
W DOMIQ wierzymy w to, że wszelkie działania upraszczające codzienność są bardzo ważne. W tym samouczku zaprezentujemy, jak zrealizować scenariusz na wejście i wyj- ście z domu, aby Twój dom stał się bardziej komfortowy.
Po przeczytaniu tego samouczka powinineś wiedzieć:
- czym jest makrodefinicja zdarzenia;
- jak budować gotowe bloki funkcjonalności w systemie DOMIQ;
- jak budować złożone scenariusze z uwględnieniem makrodefinicji;
- jak wywoływać makrodefinicje na kilka sposobów;
2. Struktura #
Ten samoczek to coś więcej, niż tylko przedstawienie realizacji wspomnianego scenariusza na wejście/wyjście z domu. Chcemy Cię w nim nauczyć, jak konfigurować moduł DO- MIQ/Base, aby raz utworzona konfiguracja mogła być użyta wielokrotnie bez żadnych dodatkowych czynności w innych kontekstach działania systemu. Dlatego zanim przystą- pimy do opisu konkretnego scenariusza, wyjaśnimy w pierwszej kolejności, jak budować makrodefinicje zdarzeń, które są bardzo potężnym narzędziem i dlatego zachęcamy Cię do poświęcenia czasu, aby się ich nauczyć. To będzie naprawdę dobrze zainwesto- wany czas. Zrobimy małe przypomnienie z samouczka „Automatyczny alarm”, gdzie opisaliśmy czym są makrodefinicje:
Czym są makrodefinicje? #
- Makrodefinicja lub w skórcie makro, to technicznie zwykła definicja zdarzenia, ale utwo- rzona w odpowiedni sposób, który przewiduje zastosowanie tzw. własnego identyfikatora. Makra dają dwie fundamentalne korzyści:
- Dzięki opakowaniu wielu komend w jedną, z łatwością można użyć tego makra w innym miejscu, dzięki czemu unikasz redefinicji tych samych komend w innych zdarze- niach, zatem oszczędzasz czas i zasoby modułu Base.
Odnosząc to do scenariusza na wyjście z domu. Załóżmy, że będzie on obejmował nastę- pujące czynności:
- Wyłączenie wszystkich świateł.
- Ustawienie trybu ogrzewania na ekonomiczny
- Zamknięcie zaworów bezpieczeństwa: wody i/lub gazu.
- Wyłączenie określonych gniazdek.
- Wyłącznie muzyki.
- Otwarcie bramy wjazdowej.
- Uzbrojenie alarmu.
Lista oczywiście nie jest wyczerpana, Twoja sekwencja może być dowolna.
Najprostszym podejściem na wykonanie takiej funkcjonalności byłoby zdefiniowanie zda- rzenia i dołączenie do niego poszczególnych komend wykonujących poszczególne czyn- ności w budynku.
Wyobraź sobie teraz, że chciałbyś mieć możliwość zgaszenia wszystkich świateł i wyłą- czenie muzyki oddzielnie, jako realizacja scenariusza „idziemy spać”. Korzystając z takie- go podjeścia musiałbyś powtórzyć część swojej pracy, którą już wykonałeś dla scenariusza na wyjście z domu. Brzmi jak strata czasu, prawda?
Tu właśnie z pomocą przychodzą makrodefinicje. Pomyśl o nich, jak o bloczkach goto- wych funkcjonolności, z których możesz budować jak z klocków. I tak masz klocek „wy- łącz światła”, klocek „przełącz ogrzewanie w tryb ekonomiczny”, klocek „wyłącz gniazdka” itd. Każda z tych makrodefinicji zawiera w sobie konkretne komendy, które realizują określoną funkcjonalność, jednak wykonujesz to raz i z łatwością możesz wywo- łać tą funkcjonalność z dowolnego miejsca w systemie.
Jak się możesz domyślać, do zrealizowania scenariusza na wyjście z domu potrzeba bę- dzie kilka makrodefinicji, które potem opakujemy w jedną zbiorczą makrodefinicję.
3. Scenariusz na wyjście #
Pojedyncze makro
Realizację rozpoczniemy od zaprezentowania, jak utworzyć makrodefinicję. Technicznie nie różnią się one niczym w swojej definicji od zwykłego zdarzenia poza zawartością pola Kanał, które w tym przypadku nie zawiera predefiniowanego identyfikatora, a komendę, która stanowi unikalny identyfikator Twojego makra. Całość dopełnia zawartość pola Dane, która też może być dowolna.
Przyjmijmy, że naszym celem jest utworzenie makrodefinicji dla wyłączania świateł. W pierwszej kolejności musisz zdecydować, jakim identyfikatorem będziesz wywoływać tą czynność. Masz tu pełną swobodę, ale zachęcamy Cię do używania opisowych nazw, które jednoznacznie identyfikują, dane makro. Wszystkie nazwy muszą być tutaj poprze- dzone prefiksem C. W nazwach nie używaj polskich znaków i spacji.
Dla świateł proponujemy identyfikator ligths. Wówczas definicja makra wyglądałaby następująco:
Kanał: C.ligths
Dane: off
Tutaj odrobina wyjaśnienia. Wartość w polu Dane też jest dowolna. Dla potrzeb przykładu wybraliśmy off. Analogicznie dla makra na włączenie świateł mógłbyś zrobić zdarzenie, gdzie pole Kanał miałoby taką samą wartość, a w polu Dane wpisałbyś on.
Ważne: Zdarzenia w module Base są przetwarzane przez porównywanie ciągów znaków (stringów), gdzie unikalny unikalny identyfikator stanowi połączenie zawartości pól: Kanał i Dane, dlatego zdarzenia C.lights=on i C.lights=off to dwa zupełnie różne zdarzenia, do których mogą być przypisane zupełnie różne listy akcji.
W sekcji Akcje następnie należy zdefiniować komendy, które mają zostać przypisane do danego makra. My ten krok pomijamy, ponieważ będzie on różnił się dla każdej instalacji.
Analogicznie należy powtórzyć definicję dla poszczególnych makr, z których ma skła- dać się nasze główne makro dotyczące wyjścia z domu. Załóżmy, że mamy zestaw nastę- pujących makr (podajemy przykładową zawartość pól Kanał i Dane).
Kanał: C. alarmon, Dane: 1
Kanał: C.lights, Dane: off
Kanał: C. heating, Dane: eco
Kanał: C. valves, Dane: off
Kanał: C. sockets, Dane: off
Kanał: C. music, Dane: off
Kanał: C. gate, Dane: open
Makro zbiorcze #
Teraz pozostaje prosty krok połączenia naszych makr w jedno wspólne makro. W naszym przykładzie przyjmujemy, że będzie miało ono identyfikator exit. Wówczas jego definicja jest następująca:Kanał: C.exit
Dane: 1
Następnie tworzymy wywołania submakr w sekcji Akcje:
- +Komenda->Nazwa:C.ligths,Wartość:off
- +Komenda -> Nazwa: C. heating, Wartość: eco
- +Komenda -> Nazwa: C. valves, Wartość: off
- itd.
4. Uruchomienie #
Ostatnim krokiem, który zostaje to wykonania jest zdecydowanie o tym, w jaki sposób scenariusz na wyjście będzie uruchamiany. Dzięki temu, że cała funkcjonalność jest opakowana w formę makrodefinicji masz ogromną elastyczność w zakresie jego wywołania, ponieważ wszystko redukuje się do wykonania pojedynczej komendy! Poniżej przedstawiamy kilka naszych pomysłów na wywołanie makra na wyjście z domu.
Przycisk przy drzwiach
Makro może być uruchomione przez naciśnięcie fizycznego przycisku, który znajduje się w pobliżu drzwi wyjściowych. Załóżmy, że będzie to przycisk podłączony do modułu Shelly o nazwie korytarz. Wystarczy wówczas zdefiniować pojedyncze zdarzenie na wy- krycie naciśnięcia przycisku:
Kanał: E.SHELLY.korytarz.input_event.0
Dane: 1
Akcje -> +Komenda -> Nazwa: C.exit, Wartość: 1.
Twój fizyczny przycisk może być oczywiście podłączony do innych urządzeń np. do bloku INT-IORS sprzęgniętego z modułem DOMIQ/Expander, jako przycisk podłączony do wej- ścia centrali alarmowej Satel Integra lub jako przycisk w systemie LCN, itd.
Uzbrojenia alarmu #
Uruchomienie scenariusza na wyjście może być połączone ze zdarzeniem uzbrojenia sys- temu alarmowego. W tym przypadku pomin etap tworzenia makra dla uzbrojenia alarmu opisany w poprzednim rozdziale. Nasze zdarzenie miałoby następującą postać:
Kanał: E.IDS.armed.xx, gdzie xx to numer strefy alarmowej.
Dane: 1 Akcje -> +Komenda -> Nazwa: C.exit, Wartość: 1.
To zdarzenie zakłada ręczne uzbrojenie alarmu. Jeżeli zależy Ci na tym, aby alarm uzbra- jany był automatycznie, a wraz nim sekwencja na wyjście z domu, zajrzyj do samouczka „Automatyczny alarm” dostępnego tutaj: https://www.domiq.pl/wiki/automatyczny-alarm/
Przycisk w aplikacji Remote #
Możliwe jest również ręczne uruchomienie całej sekwencji z poziomu aplikacji Remote. Procedura jest następująca (całość w zakładce Remote):
- Dodaj element Przycisk i kliknij na nim 2x, aby rozpocząć edycję kontrolki.
- W polu Etykieta wpisz opis np. Wyjście z domu i opcjonalnie wybierz ikonę.
- W zakładce Krótko -> +Komenda -> Nazwa: C.exit, Wartość: 1.
- Gotowe!
5. Scenariusz na wejście #
Dla scenariusza na wejście do domu działania należy wykonać podobnie. Kluczowe jedy- nie pozostaje określenie, kiedy ten scenariusz ma być uruchamiany. Kilka naszych podpo- wiedzi w tym zakresie:
- Rozbrojenie alarmu
- Reguły czasowe np. o określonej porze dnia przed Twoim planowanym powrotem.
- Przycisk przy drzwiach wejściowych.
- Ręcznie z aplikacji Remote.
Dla chętnych #
W przypadku scenariusza na wejście, możesz pokusić się o pewną jego modyfikację. Mianowicie część działań może być wykonanych w oparciu o reguły czasowe np. wyste- rowanie ogrzewania i wykonana z wyprzedzeniem. Natomiast inna część działań może być powiązana bezpośrednio z wejście do budynku np. włączenie świateł, muzyki, otwar- cie zaworów itd. Dzięki temu zyskasz lepsze dostosowanie całości do potrzeb.
6. Podsumowanie #
Jak widzisz wywołanie rozległego scenariusza na wejście lub wyjście z domu zredukowało się faktycznie do wykonania pojedynczej komendy w systemie. Wymagało to na początku nieco więcej pracy, ale w rezulatacie otrzymaliśmy elegancko opakowane funkcjonalności, które możesz teraz użyć w wielu miejscach bez jakichkolwiek powtórzeń. Zyskujesz rów- nież dzięki temu łatwość modyfikacji scenariusza, ponieważ zmiany wprowadzasz tylko w jednym miejscu. Oczywiście utworzone przez Ciebie scenariusze na wejście i wyjście z budynku mogą stanowić składową innego makra, w tym zakresie masz pełną dowolność.