Napisz do mnie

Wyślij prywatną wiadomość

DARIA - CZYM JEST?

opublikowano: 21 paź 2018 wyświetleń: 36 komentarzy: 0

#DARIA #dariahomesystem #HAPCAN #MQTT #schemat ideowy

Krótki wstęp do mojego projektu inteligentnego mieszkania.

Czym jest DARIA?

DARIA to robocza nazwa asystenta domowego, nad którym pracuję. Asystent ten w założeniu potrafi sterować niemal wszystkimi urządzeniami w mieszkaniu/domu i nie tylko. Pozyskuje wiedzę z różnych źródeł i potrafi ją wykorzystać do realizacji celów. Pomaga zautomatyzować powtarzalne domowe sytuacje. Zabezpiecza. Pomaga a nie przeszkadza domownikom! To system jest dla nas a nie odwrotnie.

Dlaczego DARIA?

Nie ukrywam, że wszelkie tego typu systemy, spotykane najczęściej w filmach SF, robią na mnie duże wrażenie. Może nawet nie tyle wrażenie, co dają inspirację i kopa do poszukiwań  ciekawych rozwiązań.

Dlaczego kobiece imię? Chyba największy wpływ miały na to takie postacie jak Red Queen (Resident Evil) czy Ava (Ex Machina), a samo imię powstało przez drobną modyfikację Inicjatywy DHARMA (serial LOST). Spodobał mi się klimat na tyle, że jego fragmenty postanowiłem wdrożyć w życie :].

D.A.R.I.A

Oczywiście czymże jest nazwa bez kryjącej się pod nią ukrytą treścią. 3 tęgie umysły myślały nad tym parę godzin i wymyśliły kilka przymiotników opisujących to, czym jest DARIA. Bardzo ważny punkt! Fun musi być ;].

Discreet Artificial Residential Intelligent Assistant — czyli po naszemu Dyskretny Sztuczny Domowy Inteligentny Asystent. No i gitara.

W zasadzie pozostaje wyjaśnić przymiotnik dyskretny. Jedno z założeń systemu jest takie, aby nie wymagał od domowników więcej zachodu do obsługi mieszkania niż gdyby go nie było. Stąd ma on działać transparentnie, być niemal niewidoczny.

Po co to komu?

Jeśli zadajesz sobie takie pytanie, to odpowiedź dotrze do Ciebie prawdopodobnie za kilkanaście lat ;]. Obecnie wiele systemów automatyki domowej i inteligentnych asystentów atakuje ludzi z każdej strony. Trudno się na cokolwiek zdecydować. Wiele osób mimo dużego wyboru nadal stawia jednak na tradycyjne rozwiązania.

Ja stawiam raczej na rozwiązania otwarte, dające dużo możliwości a przy okazji relatywnie proste. Wizja inteligentnego domu przyświeca mi od wielu lat. Wreszcie, mając nieco wiedzy z zakresu elektroniki, programowania, majsterkowania i duuużo czasu mogę spróbować stworzyć wielopłaszczyznowy projekt.

Architektura

Przemyśleń okropnie dużo. Systemów wiele przetestowanych. Sporo czasu upłynęło zanim zdecydowałem się na jakieś konkretne rozwiązania. Wszystkie z nich będę opisywał w kolejnych artykułach, do których linki można znaleźć we wpisie głównym (patrz powiązane na dole).

Sprzęt

Od strony sprzętowej architektura systemu przedstawia się następująco:

System składa się z dwóch magistral. Niebieskim kolorem oznaczyłem magistralę HAPCANa, czerwonym ETHERNET. Kolory te mają pokrycie w kolorach skrętek, tak aby jednoznacznie móc je szybko odróżnić.

Urządzenia pracujące w sieci HAPCAN są w zasadzie niezależne od reszty systemu. Mają zaprogramowane podstawowe funkcje. Z siecią ETHERNET połączone są poprzez moduł Ethernet systemu HAPCAN, który wpięty jest do switcha/routera.

Switch jest podłączony do Internetu. W sieci ETHERNET wpięty jest także mały komputer, na którym zainstalowany jest system zarządzający całością w sposób bardziej inteligentny. Można powiedzieć, że DARIA właściwa znajduje się właśnie tam.

Na schemacie umieściłem również znak zapytania, pod którym kryją się inne systemy automatyki domowej, które z biegiem czasu będą podłączone do systemu.

Szczegółowy opis znajdziesz w dedykowanych artykułach.

Oprogramowanie

Długo poszukiwałem dobrego systemu zarządzającego. Przewinął się tutaj OpenHab2, HomeGenie, Domoticz, Node-Red, Open Source Automation, nawet w pewnym momencie zacząłem sam implementować program, gdyż żaden z tych systemów nie spełniał moich oczekiwań do końca. Jeśli jedna rzecz była dobrze zrobiona, tak druga dyskredytowała system.

Głównym problemem były pluginy, łatwość ich tworzenia. Wiele z tych systemów narzuca sposób realizacji, język co prowadzi do sporych ograniczeń, bo nie można wykorzystać innych gotowych rozwiązań.

Wtedy wpadłem na pomysł, aby nie korzystać z jednego programu z systemem pluginowym — jego wysypka kończyła by się położeniem całego systemu. W zamian za to, stwierdziłem, że dobrym środowiskiem do budowy systemu, będzie sam system operacyjny. Ja postawiłem na system Windows z kilku powodów. Znam to środowisko, umiem korzystać z narzędzi programistycznych jak Visual Studio, posługuję się językami C++, C#, poza tym nie umiem za bardzo w Linuksy ;]. Oczywiście można się nauczyć, ale kluczowy jest tutaj również czas.

Poniżej schemat organizacji systemu od strony oprogramowania:

Nie ma tutaj jednego słusznego programu zarządzającego. Każda funkcja systemu (każdy plugin) jest osobnym procesem w systemie Windows. Procesy komunikują się ze sobą za pomocą brokera MQTT a ewentualny interfejs graficzny (panel sterowania) jest wyświetlony w przeglądarce na ekranie dotykowym, telefonie, czy w przeglądarce komputera.

Czym jest broker MQTT? Jest to serwer obsługujący architekturę publikacji i subskrypcji. Każdy klient (tutaj usługa SVC) podłączony do brokera może nadawać wiadomości publikując je w tematach, np. home/svc/hapcan/switch1/status — tutaj usługa komunikująca się z magistralą HAPCAN informuje, że zmienił się stan przycisku. Popularnym brokerem MQTT jest Mosquitto. Takiego również używam.

Z drugiej strony, klienci mogą subskrybować wybrane tematy, np. home/svc/hapcan/+/status, otrzymując od brokera informacje o zmianach statusu urządzeń na magistrali HAPCAN. Istnieje możliwość używania wildcardów zastępujących dowolny fragment tematu (znak +).

Najważniejszą zaletą takiego systemu jest brak przywiązania do jednej platformy. Platformą staje się sam system operacyjny. Usługi mogą być tworzone w dowolnym języku, więc znika problem konieczności używania tylko jedynego słusznego.

Startem oraz okresowym uruchamianiem usług może sterować harmonogram systemu Windows, do logowania działania usług można wykorzystać dzienniki systemowe. Dzięki wykorzystaniu tych rozwiązań mamy już gotowe okna systemowe umożliwiające podgląd, konfigurację, edycję. Nie ma również obaw, że po jakiejś aktualizacji przestanie to działać, bo któryś z deweloperów nie zaktualizował jeszcze swojego plugina.

Całą platformę przeniosłem zatem piętro wyżej, na poziom systemu operacyjnego.

 


ZOBACZ RÓWNIEŻ POLECANE WPISY


Comments (0)


Allowed tags: <b><i><br>


PODOBAŁO SIĘ?

PODOBAŁO SIĘ?


0 like voting
is closed
thanks
for your vote

PODZIEL SIĘ

PODZIEL SIĘ