Jedną z najbardziej pożądanych cech inteligentnego domu/budynku jest możliwość zintegrowania wielu systemów i urządzeń w jedną współpracującą ze sobą całość. To zadanie jest znacznie ułatwione dzięki możliwościom integracyjnym modułu DOMIQ/Base.
System DOMIQ umożliwia integrację aktywną i pasywną. Integracja aktywna jest realizowana sprzętowo przez moduły rozszerzeń (Serial, Expander, Light) lub programowo przez moduł Base. Zasadniczą zasadą tego typu integracji jest fakt, że odpowiedzialnym za przebieg wymiany informacji jest system DOMIQ. To system DOMIQ, a ujmując precyzyjniej moduł Base, inicjuje początek wymiany danych i decyduje o jej przebiegu. Przykładem takiego typu integracji jest integracja z centralami alarmowymi Satel Integra, gdzie to moduł Base w połączeniu z modułem Serial-2SI cyklicznie odpytuje centralę alarmową o stany jej zmiennych. System DOMIQ pełni rolę nadrzędną w tego typu integracji.
Integracja pasywna polega na tym, że to zewnętrzne oprogramowanie jest inicjatorem komunikacji z modułem DOMIQ/Base, a moduł Base jedynie przetwarza odebrane informacje wg zaprogramowanych reguł, sam nie inicjując komunikacji. Moduł Base pełni tutaj funkcję urządzenia podrzędnego. Ten rodzaj integracji daje wręcz nieograniczone możliwości podłączania wszelkiego rodzaju urządzeń działających w tej samej sieci lokalnej, do której podłączony jest moduł Base.
1. Protokół możliwości #
1.1. Nawiązywanie połączeń #
Integracja pasywna odbywa się wykorzystaniem protokołu TCP/IP. Moduł Base nasłuchuje na porcie 4224. Komunikacja nie jest szyfrowana dlatego nie należy przekierowywać tego portu, aby był widoczny w Internecie. Urządzenie nadrzędne musi nawiązać połączenie z adresem IP modułu Base na wymienionym porcie. Do celów testowych z poziomu PC można wykorzystać programy netcat (nc <IP> 4224
) lub telnet (telnet <IP> 4224
).
1.2. Możliwości #
Nawiązanie połączenia z modułem Base daje szereg możliwości oprogramowaniu nadrzędnemu:
- Agregacja danych z modułu Base.
- Sterowanie stanem urządzeń i zmiennych w obrębie modułu Base.
- Przekazywanie danych do modułu Base.
W dalszej części tego podrozdziału omówimy każdą z wymienionych możliwości.
1.2.1. Agregacja danych z modułu Base #
Po nawiązaniu połączenia z modułem Base, oprogramowanie nadrzędne będzie odbierać notyfikacje o zmianach stanu identyfikatorów dostępnych w module Base. Notyfikacje są wysyłane automatycznie przez moduł Base w momencie zmiany stanu dowolnego identyfikatora. Dzięki temu oprogramowanie nadrzędne może na żywo wizualizować stan wszystkich identyfikatorów (np. stanu systemu LCN, rejestrów Modbus, centrali alarmowej itd). Przykładem zastosowania może być aplikacja zbierająca dane o temperaturach w budynku lub o zużyciu mediów w celu ich późniejszej analizy.
Moduł Base umożliwia także odpytywanie o stan wszystkich identyfikatorów jednocześnie. W tym celu oprogramowanie nadrzędne musi wysłać symbol znaku zapytania, a po nim znaku powrotu karetki i nowej linii, czyli ?\r\n
. W przypadku testowania polecenia przy użyciu wiersza poleceń z poziomu PC, należy wpisać ?
i potwierdzić komendę klawiszem Enter.
Po odebraniu takiego zapytania, moduł Base zwróci stan wszystkich dostępnych identyfikatorów w formacie nazwa=wartość
(każdy wpis w osobnej linii).
Ponadto istnieje możliwość odpytania o stan wybranego identyfikatora. W tym celu oprogramowanie zewnętrzne musi wysłać zapytanie w następującym formacie: identyfikator=?\r\n
W przypadku testowania przy użyciu wiersza poleceń \r\n
należy pominąć i użyć klawisza Enter w celu potwierdzenia komendy.
1.2.2. Sterowanie #
Wykorzystując połączenie z modułem Base, oprogramowanie nadrzędne może sterować stanem wszystkich identyfikatorów, a zatem pośrednio urządzeń i zmiennych, którymi sterować może moduł Base. W tym celu moduł Base musi odebrać komendę w formacie identyfikator=wartość\r\n
, np. LCN.output.0.10.1=100
, co wysteruje wyjście ściemniane nr 1 w module LCN o adresie 10 na 100%. Wykaz dostępnych identyfikatorów dostępny jest w instrukcji konfiguracji DOMIQ/Base.
Dzięki temu moduł Base może działać jako bramka sprzęgająca dowolny nadrzędny system sterowania z systemami podrzędnymi do modułu Base.
1.23. Przekazywanie danych do modułu Base #
Połączenie z modułem Base umożliwia przekazywanie dowolnych danych z oprogramowania nadrzędnego. Dzięki temu możliwe staje się zintegrowanie w zasadzie każdego urządzenia, które jest zdolne nawiązać połączenie z modułem Base, w sposób opisany na początku rozdziału. Przykład tego typu integracji został zaprezentowany w samouczkach dotyczących wideodomofonu Mobotix. Tam zaprezentowaliśmy sposób, w jaki wideodomofon może przekazywać informacje o dowolnych zdarzeniach w nim zachodzących np. o wciśnięciu przycisku dzwonka, o wykryciu ruchu itd.
Przekazywanie danych do modułu Base pozwala zintegrować m.in:
- Mikrokomputery np. Arduino, Raspberry PI, BeagleBone itd. Ich możliwości są naprawdę ogromne. Z tych bliżej związanych z tematyką inteligentnych domów należy wymienić np. możliwość użycia tanich i łatwo dostępnych czujników analogowych i cyfrowych, w tym czujników temperatury, wilgotności, dwutlenku węgla, jakości powietrza itd.
- Wideodomofony – tutaj przykładem może być wymieniony wyżej system Mobotix.
- Sterowniki PLC
- Inne oprogramowanie do sterowania budynkiem np. OpenHAB.
Dane odbierane w ten sposób są traktowane przez moduł Base jako komendy, czyli wszystkie otrzymują przedrostek C
. Jeżeli zatem oprogramowanie zewnętrzne wyśle do modułu Base dane w formacie identyfkator=wartość\r\n
, wówczas w module Base pojawi się to jako C.identyfikator=wartość
. Tak odebrane dane mogą być wykorzystane do wyzwolenia zdarzenia, które wykona dowolną sekwencję zaprogramowanych akcji.
Przykład
Jako przykład przedstawimy wysyłanie przez wideodomofon Mobotix informacji o naciśnięciu przycisku dzwonka, co ma skutkować wysłaniem notyfikacji na urządzenia mobilne. Przyjmijmy, że wideodomofon w efekcie naciśnięcia przycisku wysyła następujący ciąg znaków do modułu Base: MOBOTIX.event.t24=CameraBellButton
.
Aby obsłużyć odebrane dane, w module Base należy zdefiniować zdarzenie wg poniższego schematu:
- Kanał: C.MOBOTIX.event.t24
- Dane: CameraBellButton
- W sekcji Akcje należy kliknąć na przycisk Dodaj komendę… i w nowym oknie w polu Nazwa wpisz: C.REMOTE.notify, a w polu Wartość np. Dzwonek furtka.
Analogicznie można tworzyć podobne zdarzenia i przetwarzać w ten sposób wszelkie dane, które moduł Base może odbierać.