poniedziałek, 7 kwietnia 2014

Inteligentny dom oparty na OpenHab - wstęp

OpenHab to oprogramowanie dzięki któremu możemy połączyć urządzenia domowe oparte na różnych technologiach i protokołach w jeden sprawnie działający system inteligentnego budynku.
Główną częścią OpenHab jest tzw. OpenHab Runtime. Jest to aplikacja webowa napisana w całości w Javie, działająca pod kontrolą serwera Jetty.

OpenHab Runtime działa w oparciu o zestaw plików konfiguracyjnych. Są to niestety pliki tekstowe, brak jest jakichkolwiek narzędzi do graficznej konfiguracji. Autorzy zapewnili jednak narzędzie o nazwie OpenHabDesigner bazujące na Eclipse IDE, które zapewni nam podświetlanie błędów, oraz kolorowanie i uzupełnianie składni plików konfiguracyjnych co jest dość dużą pomocą. Dodatkowo dość czytelne przykłady i nie najgorsza dokumentacja sprawiają że konfigurowanie nie jest takie straszne.

Dostępne są również aplikacje na iOS oraz na Androida pozwalające na sterowanie automatyką z poziomu telefonu lub tabletu.

Całość wydana jest na licencji Eclipse Public Licence, co oznacza że mamy pełny dostęp do kodu źródłowego.

Generalnie w instalacjach inteligentnych budynków dużym problemem jest niezgodność protokołów transmisji pomiędzy dostawcami poszczególnych rozwiązań. Mamy chociażby standardy KNX, z-Wave, Fritz i wiele innych.
Gdy zdecydujemy się na jedno z rozwiązań stajemy się na stałe przywiązani do jednej firmy, która zwykle każe sobie słono płacić za każde dodatkowe elementy.

OpenHab jest próbą rozwiązania tego problemu.
Spójrzmy najpierw na architekturę (schemat pobrany ze strony http://www.openhab.org/)

Jak widać na schemacie, podstawowym elementem systemu jest szyna zdarzeń (Event Bus). która jak sama nazwa wskazuje zarządza zdarzeniami zachodzącymi w systemie.
Generalnie wyróżnić należy dwa typy zdarzeń: commands - czyli komendy wydawane przez użytkownika (lub inne źródła), oraz state change czyli zdarzenie zmiany statusu danego elementu systemu.

Tworząc własną konfigurację przygotowujemy tzw. Sitemap'ę czyli plik w którym opisujemy interfejs użytkownika. Co ciekawe interfejs ten wygląda później identycznie na wszystkich urządzeniach - w przeglądarce, na telefonie lub tablecie.
Dodatkowo definiujemy listę elementów (items) kontrolujących nasz system. Mogą to być przełączniki, suwaki, pola tekstowe wyświetlające stan elementów systemu - na przykład temperaturę w pomieszczeniu i kilka innych. Dla każdego z tych elementów w konfiguracji określamy sposób komunikacji z odpowiednim urządzeniem (binding) - czy to będzie KNX, połączenie szeregowe, bluetooth, czy też połączenie TCP. Obecnie dostępnych jest kilkadziesiąt różnych protokołów. Istnieje również możliwość dopisywania nowych, dostosowanych do własnych potrzeb. Każdy z elementów ma zdefiniowane komendy sterujące (np dla elementu typu Switch komendy to ON oraz OFF). W konfiguracji umieścić należy dodatkowo mapowanie poleceń wysyłanych lub odbieranych z urządzenia zewnętrznego na odpowiednie komendy elementu OpenHab.

System daje nam  dużą dowolność jeśli chodzi o sposób zapisu zdarzeń  w systemie. Może być to proste logowanie w pliku tekstowym, ale też zapisywanie stanu czujników w bazie danych, oraz generowanie wykresów na podstawie wyników.

Możliwości konfiguracji OpenHab'a są na prawdę olbrzymie. Myślę że warto zapoznać się z konfiguracją demo którą można uruchomić bez instalowania aplikacji u siebie.

Ja dopiero zaczynam poznawać jego możliwości i w miarę postępów postaram się opisać tutaj moje doświadczenia. W pierwszej części pojawi się komunikacja z Arduino za pomocą TCP, która niestety nie okazała się bezproblemowa.

Brak komentarzy:

Prześlij komentarz