Inteligentny-Dom

Monitorowanie wejść i wyjść centrali Satel Integra w Node.js

Pisałem ostatnio o połączeniu Raspberry Pi z Integrą produkcji Satela z użyciem interfejsu szeregowego. Przyszła pora, żeby napisać coś więcej o tym przedsięwzięciu od strony programowania - zarówno samej centrali alarmowej, jak i Raspberry Pi - w Node.js, bo jego używa obecnie główna część mojego “inteligentnego domu”. Node.js świetnie nadaje się do obsługi systemu opartego na zdarzeniach, ale oczywiście każdy może przełożyć zamieszczony tu kod na swój ulubiony język.

Ekspander wejść Satel CA64E

Tytuł wpisu wyraźnie wskazuje na to, że będziemy monitorować także wejścia, tymczasem opis protokołu opublikowany przez Satela wskazuje, że łatwo możemy dostać się wyłącznie do stanu wyjść (przez komendę 0x17). Oczywiście to żaden problem, ponieważ centrala pozwala definiować wirtualne wyjścia, których stan zależy od stanu wejść (czyli np. czujek ruchu). Możemy więc na bieżąco mieć podgląd wszystkich czujek (w końcu system automatyki domowej ma swoje “oczy”), ale też sprawdzać wiele więcej - stan zasilania, akumulatora, uzbrojenia i wywołania alarmu, sabotażu, przyciśnięci przycisków w pilotach ABAX, rozpoczęcie odliczania czasu na wyjście, alarmy wstępne, itp.

Połączenie Satel Integra z Raspberry Pi

Minęło trochę czasu od ostatniego wpisu, wiele też nowych urządzeń powstało w mojej (i nie tylko) instalacji inteligentnego domu - sterowanie roletami, światłami i bramami, nawadnianie z analizą prognozy pogody i kilka innych drobiazgów. To co najbardziej cieszy, to że wszystko działa w pełni stabilnie i bezawaryjnie - zarówno urządzenia oparte o Arduino, jak też o ESP8266. Także system nadrzędny na Raspberry Pi funkcjonuje nieprzerwanie. To wszystko jednak w jakimś stopniu było już opisywane na blogu (choć są oczywiście aspekty, które jeszcze opiszę). Dzisiaj natomiast chciałbym poruszyć temat zupełnie nowy - integrację z systemem alarmowym Satel Integra.

MAX232

Jaki jest cel integracji? System automatyki domowej potrzebuje zmysłów - czujników, a tymi dysponuje już system alarmowy. Do czego może się to przydać? Do zapalenia światła, gdy zostanie wykryty ruch, to zamknięcia rolet, gdy zostanie uzbrojony alarm, do przesłania mailem zdjęcia gdy ktoś pojawi się w ogrodzie przy uzbrojonym alarmie, do wysłania informacji o wyłączeniu zasilania. Zastosowania ogranicza wyłącznie wyobraźnia i umiejętności implementacji. Oczywiście wiele z tych funkcji mógłby realizować odpowiednio złożony system alarmowy, jednak skoro mamy już “inteligentny dom”, to on powinien sterować tymi zadaniami - szczególnie, że jest bardziej elastyczny i łatwiejszy w programowaniu.

ESP8266 - tanie i łatwe w użyciu WiFi do Arduino i bez Arduino

Hit! Czegoś takiego mi było trzeba. W bardzo umiarkowanej cenie można kupić niewielki układ, który nie tylko połączy Arduino z siecią bezprzewodową (także w standardzie “n”), ale także w wielu przypadkach będzie pracować bez Arduino. Poznajcie ESP8266, układ który wprowadzi sporo zamieszania w “Interncie rzeczy”.

ESP8266

 

Parametry układu imponują (jak za tę cenę i na tę wielkość). Co więc przydatnego dostajemy? Na początek - całkiem szybki procesor (RISC, 80MHz) i wcale niemało pamięci. Przede wszystkim jednak wsparcie dla WiFi, a konkretnie dla protokołów 802.11 b/g/n, w tym zarówno dla łączenia się do sieci, jak i tworzenia Access Pointa, przy czy obługiwany jest zarówno WEP, jak i WPA, WPA2 i WPS. Do tego mamy port szeregowy, przez który będziemy się komunikować z Arduino i zestaw prostych komend AT, które pozwolą nam zrobić co chcemy nie obciążając za bardzo układu nadrzędnego. I to wszystko co do szczęścia trzeba, żeby wykorzystać ESP8266 do komunikacji Arduino ze światem przez Wifi. Nie wszystko jednak, co dostajemy od tegoż układu.

Internetowy termometr

Jak już kiedyś pisałem , w domu mam kilkanaście termometrów, podłączonych do systemu autmatyki domowej. Połączone są one równolegle przez magistralę dwuprzewodową do konwertera 1-wire, który z kolei współpracuje z routerem. A raczej tak było. Ponieważ teraz zmieniam nieco architekturę systemu, a dane zbierać ma Raspberry Pi, znajdujący się w innym niż router miejscu, postanowiłem zmienić też sposób zbierania temperatur. W ten sposób powstało urządzenie, oparte o Arduino, które odczytuje dane z termometrów DS28B20 i regularnie raportuje odczyty przez ethernet do serwera www. Jest to przy okazji test długodystansowy urządzenia, które praktycznie można zastosować w wielu małych kotłowniach.

Urządzenie do pomiaru temperatur przez Internet

Raspberry Pi i nRF24L01+

Trochę się pozmieniało w moim systemie inteligentnego domu. Przede wszystkim rozpoczynam prace nad instalacją systemu alarmowego. Ponieważ alarm to wręcz wymarzony zestaw czujników dla automatyki domowej, postanowiłem zintegrować go z moim systemem. Będzie to pewnie tematem serii wpisów na blogu, jednak dla dzisiejszego tekstu istotne jest, że mam zamiar użyć do tego Raspberry Pi (o którym już pisałem przy okazji tekstu o monitoringu ).

nRF24l0+ i Raspberry Pi

Dodatkowo należy Wam się informacja, że w ostatnim czasie zacząłem używać modułów do komunikacji bezprzewodowej - nRF24L01+ w połączeniu z Arduino Pro Mini. O tym też mam zamiar napisać (tak wiem, dawno nie pisałem, przez brak czasu), jednak zacznę od Raspberry Pi. Dlaczego? Bo przy okazji integracji z centralą alarmową stanie się ono główną jednostką systemu automatyki domowej. A skoro już tak będzie, to dobrze by było, żeby było też centralnym punktem komunikacji bezprzewodowej (używanej np. do zdalnego załącznia światła, ale też odczytów różnych czujników).

Raspberry Pi a monitoring

Jakiś czas temu zostałem zainspirowany, przez jednego z czytelników bloga, do przyjrzenia się nowości w świecie Raspberry Pi - dedykowanej kamerze . Jako, że od dłuższego czasu działa u mnie monitoring oparty o Edimaksa IC-3030 oraz  IC-3115W, mam ją z czym porównywać.

Czy faktycznie jest co porównywać? Nie ma co ukrywać, że są to dwie zupełnie różne klasy rozwiązań. Kamery Edimaksa to produkty przeznaczone na rynek masowy, gotowe urządzenia, specjalizowane w jednym celu - po prostu klasyczne wewnętrzne kamery IP. Przy nich Raspberry Pi to prawie jak półprodukt - kamera to mała płytka z obiektywem, połączona dość delikatną taśmą z głównym modułem, także w postaci typowej płytki elektronicznej. Malina ma jednak cechę, która czyni ją nieporównywalnie bardziej uniwersalną niż gotowe rozwiązania do minitoringu - niebywałą elastyczność. Za cenę porównywalną z kamerą IP dostajemy pełnoprawny komputer gotowy do uruchamiania programów i dobrej jakości kamerkę potrafiącą rejestrować filmy Full HD przy 30 klatkach na sekundę (a w przyszłości może nawet w większej rozdzielczości kosztem płynności) i robiącą zdjęcia z rozdzielczością 5 megapikseli.

Sterowanie bramą Life przez telefon i Internet dzięki Arduino

Pisałem niedawno o pracach, które prowadziłem w garażu . Przypomnę, że zmiany miały związek z instalacją napędów firmy Life do bramy wjazdowej i bramy garażowej. Wypadałoby trochę ulepszyć to co wyprodukowała fabryka i podłączyć siłowniki do systemu automatyki domowej. Nie będzie to trudne.

Najstarsi czytelnicy bloga być może pamiętają, że dawno, dawno temu przygotowałem sterowanie bramą z napędem Somfy przez telefon. Opierało się ono na oprogramowaniu z projektu Domotic Home i wydawaniu komend przez pilota podłączonego do karty przekaźnikowej routera . Teraz będzie prościej i tak jak chciałem od początku. Przy starym napędzie zasilanie z garażu było poprowadzone do centralki przy bramie wjazdowej, natomiast ona sterowała oświetleniem przed garażem - były więc poprowadzone przewody spowrotem do garażu. Teraz oświetleniem będzie sterować bezpośrednio Arduino, więc pozostąły 3 wolne przewody idące do bramy - w sam raz do sterowania ruchem skrzydeł.

Life RG UNI 24 DL

Oświetlenie w garażu sterowane przez Arduino

Zainstalowałem nowe oświetlenie w garażu. Długo zastanawiałem się jaki rodzaj światła wybrać - żarówki czy może LEDy. Ostatecznie wybór padł dość tradycyjny - świetlówki. Kupiłem dwie hermetyczne oprawy świetlówkowe. Główna jest na dwa źródła światła po 18W, a dodatkowa - na jedno. Oświetlenie będzie sterowane przez Arduino z modułem przekaźnikowym . Można się zastanawiać czy świetlówka i przekaźnik to dobre zestawienie i wiele osób dojdzie do wniosku, że zdecydowanie nie. Jak najbardziej musiałbym przyznać rację, gdyby zastosowany został tradycyjny starter. Ja jednak kupiłem oprawy ze starterami elektronicznymi. Czym się charakteryzują? Po włączeniu zasilania świetlówka zapala się praktycznie natychmiast. Szansa, że przekaźnik zostanie “zaspawany” znacząco więc spada.

Włącznik “dzwonkowy” podwójny - prawie

Domofon z powiadomieniem e-mailowym

Uruchomiłem już “internetowy domofon”. Za każdym razem gdy ktoś przy furtce wciśnie przycisk domofonu, dostaję powiadomienie e-mailowe z linkiem do zdjęcia drogiego gościa. Ponieważ w telefonie używam K-9 mail z obsługą IMAP IDLE, jako programu pocztowego, więc mail dociera do mnie w ciągu kilku sekund. Dzięki temu wiem, kiedy ktoś mnie odwiedza a nie ma mnie w domu. Gdy przyjdzie ktoś znajomy, mogę zadzwonić i powiedzieć, żeby poczekał, bo właśnie wracam do domu. Wkrótce będę mógł też otworzyć z telefonu furtkę i wpuścić gościa na posesję. Podobnie w przypadku śmieciarzy, gdy przyjadą odebrać śmieci, a furtka będzie zamknięta. Gdyby natmiast ktoś chciał się włamać, to istnieje pewne prawdopodobieństwo, że zadzwoni wpierw domofonem, żeby upewnić się, że nikogo nie ma w domu - wtedy jego zdjęcia trafią bezpiecznie na serwer internetowy poza domem.