Zrób Dumb Device Smart z Pilight i HomeKit: 14 kroków

Zrób Dumb Device Smart z Pilight i HomeKit: 14 kroków

Spisu treści:

Anonim

Cześć! W tym Instruktażu nauczysz się, jak zamienić 5 niemych urządzeń w inteligentne, wszystko za cenę jednego inteligentnego przełącznika komercyjnego. Gotowy? Wkrótce zaczniemy, ale najpierw …

CO TO JEST?

Ten projekt ma na celu pomóc każdemu i każdemu z łatwością stworzyć inteligentny dom. Wykorzystuje Pilight i serwer HomeKit napisany w NodeJS.

DLACZEGO DIY?

DIY to fajne rozwiązanie do wszystkiego, a zabawa z samego robienia sprawia, że ​​warto, moim zdaniem.

Zaoszczędzisz także śmieszną sumę pieniędzy, więc to też plus.

Kieszonkowe dzieci:

Krok 1: Znajdź głupie urządzenie!

Może to brzmieć prosto, ale w rzeczywistości nie zawsze jest łatwe. Głupie urządzenie musi spełniać następujące kryteria:

1. Musi mieć pozycję włączoną i pozycję wyłączoną (więc komputer z przyciskiem „Włącz / Wyłącz” nie będzie działać, ponieważ jest to ten sam przełącznik, ale lampa z przełącznikiem „Włącz / Wyłącz” będzie!)

2. Musi być bardziej użyteczna dzięki możliwości sterowania za pomocą telefonu, a nie mniej!

3. NIE WOLNO denerwować sąsiadów, jeśli go włączysz:)

4. MUSISZ WYGLĄDAĆ NAPRAWDĘ NIESAMOWITE, KIEDY POKAZUJESZ LUDZI, KTÓRYCH MOŻESZ KONTROLOWAĆ SWOIM TELEFONEM. Poważnie. To musi.

Tak jak TL; DR: Wszystko z przełącznikiem lub tarczą, która może pozostać w pozycji włączonej, będzie działać.

Krok 2: Sprzęt / materiały

Oto twoje materiały …

Solderless Plug-in BreadBoard, 830 punktów tie-point, 2 pasy mocy, 200PTS, 16,5 x 5,4 x 0,85 cm (10 USD, ale w sprzedaży za 2,80 USD od dnia 25 maja 2016 r. Możesz to pominąć, jeśli masz już breadboard.)

50 PCS Jumper Wires 200mm M / F Male-to-Female (12 USD, ale w sprzedaży za 3,15 USD z wysyłką od 3/25/2016. Możesz to pominąć, jeśli masz już przewody połączeniowe.)

Elektryczny przełącznik zdalnego sterowania Etekcity do urządzeń domowych (5Rx-2Tx) (39,98 USD, w sprzedaży za 29,98 USD od dnia 25.05.2016 r. Jeśli masz już kilka przełączników, które mogą być sterowane pilotem RF, możesz to pominąć, ale nie ma gwarancji, że będzie kompatybilny, jeśli to zrobisz. Wątpię, że masz jakieś z nich leżące w pobliżu … jeśli to zrobisz, idź dalej i używaj go, ale upewnij się, że pasuje do częstotliwości nadajnika / odbiornika! ! BARDZO POLECAMY, ABY OTRZYMAŁEŚ JEŚLI NIE JESTEŚ PEWNY.)

Zestaw nadajnika i odbiornika Rf 433 mhz do Raspberry Pi (7,91 USD, nie można znaleźć lepszej oferty, nie krępuj się robić zakupy! Wątpię, żebyś miał jedną z tych rzeczy leżących w pobliżu … jeśli zrobisz to i używaj, ale upewnij się, pasuje do częstotliwości punktów sprzedaży, które kupujesz! To konieczność! GORĄCO POLECAMY, GDY JESTEŚ NA PEWNO.)

Trzon projektu: A Raspberry Pi B + (Powinien współpracować z każdym Raspberry Pi! Prawdopodobnie masz jeden z nich w użyciu lub leżący, użyjmy go!)

Potrzebny będzie również kabel micro usb, karta SD, typ w zależności od modelu Pi, którego używasz, oraz klucz WiFi USB, jeśli potrzebujesz połączenia bezprzewodowego.

Osobiście miałem już Raspberry Pi … Miałem kabel micro usb … Miałem kartę SD i miałem klucz WiFi.

Tak więc cena tego projektu była dla mnie $43.84, nie wliczając podatku. (ZA pojedynczy (1) Przełącznik Belkin Wemo wynosi 49,99 USD, o 6,15 USD więcej niż PIĘĆ przełączniki, które będziemy budować.) Więc płacimy $8.77na przełącznik, gdy budujemy, jeśli kupiliśmy Wemo, płacimy 49,99 USD za przełącznik.

Całkowita cena projektu będzie się różnić w zależności od tego, co masz, ale przedmioty, które wymieniłem, są jedynymi, których prawdopodobnie nie masz.

W tym samouczku iPhone najlepiej nadaje się do sterowania urządzeniami.

Krok 3: Sprzęt / Konfiguracja

Zanim zaczniemy pobierać programy, musimy skonfigurować nasz sprzęt.

Musimy podłączyć:

ODBIORNIK -> RASPBERRY PI

PRZETWORNIK -> RASPBERRY PI

Krok 4: Zdalne przełączniki / ustawienia

Ten krok jest dość prosty - przełączniki były dostarczane z 2 pilotami, a 2 piloty były wyposażone w 2 baterie, po jednym dla każdego pilota.

Jedyne, co musimy zrobić, to umieścić baterię w jednym z pilotów. Wrócimy do tego później, więc nie trać go!

Krok 5: Oprogramowanie / Ustawienia - Węzeł

Zamierzamy zainstalować Node przez adafruit.

Ten samouczek zakłada, że ​​już zainstalowałeś Raspbian na swoim Raspberry Pi i wiesz, jak do niego włączyć SSH. Jeśli nie wiesz, jak to zrobić, odwiedź ten link.

SSH do twojego Pi i uruchom to polecenie, aby dodać repo adafruit, które zawiera Węzeł:

curl -sLS http://apt.adafruit.com/add | sudo bash

Następnie zainstaluj Node:

sudo apt-get install node

Na koniec sprawdź, czy jest poprawnie zainstalowany, uruchamiając:

węzeł -v

Jeśli wszystko wygląda dobrze, idźmy dalej!

Krok 6: Oprogramowanie / Ustawienia - Zależności

Bądź superużytkownikiem, uruchamiając:

sudo su

Zainstaluj niektóre zależności:

apt-get zainstaluj python-dev python-pip libavahi-compat-libdnssd-dev

Na koniec zainstaluj niektóre moduły, których potrzebuje węzeł:

npm install -g węzeł-gyp && npm zainstaluj python-shell && npm zainstaluj node-persist && npm zainstaluj srp && npm zainstaluj mdns && npm zainstaluj ed25519 && npm install curve25519 && npm zainstaluj debug

To wszystko dla konfiguracji węzła - chodźmy skonfigurować pilight!

Krok 7: Oprogramowanie / Ustawienia - Pilight

SSH do twojego Pi i zaloguj się. Biegać:

Jeśli zażąda hasła, wpisz je. Następnie uruchom:

Powinieneś zobaczyć co najmniej jedną linię w tym pliku, taką jak: "deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi"

Poniżej ostatniej linii tego pliku dodaj:

Zapisz, naciskając CTRL + X, śledzony przez Y dla „tak, zapisz”.

Zaktualizuj bazę danych pakietów:

apt-get update

I wreszcie zainstaluj Pilight:

apt-get install pilight

Pilight powinien być teraz zainstalowany i powinien rozpocząć się przy starcie. Niektórzy ludzie mieli problemy z automatycznym uruchomieniem, więc jeśli uważasz, że nie uruchamia się przy starcie, jako root, uruchom:

demon pilight

Krok 8: Wyczuj kody RF

Następnym krokiem jest wykrycie kodów RF.

Każdy przycisk na pilocie ma kod pasujący do odpowiedniego przełącznika. Na zdjęciu przełącznika powyżej przełącznik ma ogólny kod 1502. Jest to czwarty przełącznik w pakiecie 5, stąd 1502-4. Ale potrzebujemy kodu RF, a nie kodu ogólnego. Aby to uzyskać, wyśledzimy kod RF.

Aby włączyć ten przełącznik za pomocą pilota, wystarczy nacisnąć czwarty przycisk „Włącz”. Więc pobieramy kod RF wysłany po naciśnięciu 4. przycisku „On”.

SSH do twojego Pi ponownie (lub po prostu kontynuuj ostatnią sesję, jeśli jej nie zamknąłeś) i uruchom:

sudo pilight-receive

Jeśli nie ma błędu, pomiń podkreślony tekst. Jeśli wystąpi błąd „nie znaleziono sesji pilight-ssdp”, będziesz chciał przeczytać podkreślony tekst.

Błąd „nie znaleziono sesji pilight-ssdp” oznaczałby, że „demon pilight„nie działa. Prawdopodobnie nie uruchomił się podczas rozruchu i musisz go uruchomić ręcznie. Zrób to, uruchamiając polecenie”sudo demon-pilight'

Chwyć pilota baterią od kroku 4 i przynieś go blisko odbiornika.

Zaczniemy od Przełącznik 1. Z pilight-receive program nadal działa, naciśnij przycisk „Włącz” dla przełącznika # 1.

Spójrz na wyjście pilight-receive program. Czy coś pokazało?

Tak! To zrobił! To powinno wyglądać tak!

„wiadomość”: {

„id”: „A3”, „jednostka”: 34, „state”: „on”

}, „pochodzenie”: „odbiorca”, „protokół”: clarus_switch ”, „uuid”: „SOMENUMBER”, „powtórki”: 1

}

Teraz musimy zrozumieć, co to znaczy i pozwolić sobie na kontrolę.

Informacje, których potrzebujemy do następnego kroku, to ID, jednostka i protokół.

Krok 9: Napisz skrypt wysyłania RF

Używając informacji (id, unit) z ostatniego kroku, możemy teraz wysyłać sygnały RF.

Krok 6 powiedział mi, że protokół mojego przełącznika był clarus_switch, id był A3, a jednostka była 34.

Mając to na uwadze, możemy napisać skrypt, który wyśle ​​ten sam kod z Raspberry Pi, który będzie wysyłał pilot.

Przejdź do katalogu, w którym chcesz zapisać skrypty, a następnie uruchom:

nano Switch1_On.sh

… aby utworzyć i edytować plik skryptu On. Jeśli używasz przełącznika # 2, możesz go nazwać Switch2_On.sh czy jakoś tak.

Następnie umieść to w pliku:

sudo pilight-send -p protokół -i id -u jednostka -t

… gdzie protokół to twój protokół, id to twój identyfikator, a jednostka to twoja jednostka. „-t” oznacza „Wł.”

Więc jeśli twój identyfikator i jednostka byłyby takie same jak mój, twój skrypt wyglądałby tak:

sudo pilight-send -p clarus_switch -i A3 -u 34 -t

Zapisz plik za pomocą CTRL + X, śledzony przez Y dla „tak, zapisz ten plik”.

Ustaw plik jako wykonywalny, uruchamiając:

sudo chmod + x Switch_On.sh

Następnie utworzymy skrypt Off. W rzeczywistości możesz użyć dokładnie tego samego skryptu z jedną zmianą, więc po prostu skopiujemy skrypt i edytujemy go. Uprawnienia do wykonywania zostaną również skopiowane, więc nie musimy ponownie uruchamiać chmod.

cp Switch1_On.sh Switch1_Off.sh

nano Switch1_Off.sh

Plik należy zmienić z:

…do:

…gdzie -fa oznacza wyłączenie przełącznika.

Krok 10: Przetestuj skrypty

Gratulacje, dotarłeś do ostatniego kroku części 1 tego samouczka. Teraz możemy przetestować skrypty, aby upewnić się, że działają.

Ale najpierw będziemy potrzebować naszego głupiego urządzenia z kroku 1!

Moje głupie urządzenie było fanem. Ustawiłem go w pozycji „ON” na ustawieniu 1, aby wentylator zawsze działał, gdy ma zasilanie.

Następnie podłączyłem go do gniazda RF # 1 (tego, do którego napisaliśmy skrypt) i podłączyliśmy gniazdo do ściany. Możesz potwierdzić, że gniazdko działa normalnie, włączając je i wyłączając za pomocą pilota.

Zakładając, że pilot działał poprawnie, nadszedł czas, aby wypróbować skrypty. SSH ponownie w Pi lub kontynuuj sesję, jeśli jeszcze jej nie zamknąłeś, a następnie uruchom:

sudo./Switch1_On.sh

Czy to włączyło twoje głupie urządzenie? Tak? Twoje głupie urządzenie jest teraz trochę mądrzejsze.

Teraz wyłącz go, uruchamiając:

sudo./Switch1_Off.sh

Poza? Tak? Twoje urządzenie jest teraz jeszcze mądrzejsze.

Możesz teraz używać tych skryptów do włączania i wyłączania swoich gniazd, a każda usługa, która może uruchamiać pliki.sh, może być teraz używana do włączania / wyłączania twojego głupiego urządzenia.

Ale co z tym, żeby było jeszcze bardziej inteligentne?

Krok 11: Integracja HomeKit / Siri - Edycja

HomeKit zapewnia doskonałą platformę dla innowacji domowej i automatyzacji, mimo że nie jest jeszcze tak popularny.

Zaczniemy od klonowania repozytorium Git, które jest rozwidlone od KhaosT. Dokonałem kilku modyfikacji na potrzeby tego tutoriala, ale zawsze możesz znaleźć oryginał tutaj.

Aby sklonować widelec i wprowadzić do niego katalog akcesoriów, uruchom:

git clone http://github.com/MiniguyBrendan/HAP-NodeJS.git

cd HAP-NodeJS / akcesoria /

Musimy wprowadzić kilka zmian.

Będziemy musieli wygenerować losową nazwę użytkownika (w postaci adresu MAC) dla każdego urządzenia. Możemy to zrobić tutaj.

Upewnij się, że wykonujesz następujące czynności w tej witrynie:

Ustaw format adresu MAC na format z dwukropkami (00: 10: FA: 6E: 38: 4A)

Ustaw obudowę na wielkie litery

Wyedytujmy domyślny Outlet_accessory.js dla Outlet # 1, abyśmy mogli dodać naszą nazwę użytkownika:

sudo nano Outlet_accessory.js

Znajdź linię, która mówi outlet.username = "1A: 2B: 3C: 4D: 5E: FF";

Zmień wartość nazwy użytkownika na wygenerowaną przez witrynę. Na przykład mogę go zmienić na przeczytany:

… jeśli to dał mi generator.

Również na linii z PythonShell.run ('light1.py', function (err) { i PythonShell.run ('light0.py', function (err) {

… zwróć szczególną uwagę na nazwy plików „light1.py” i „light0.py”. Możesz zamienić „light1” lub „light0” na „fan1” lub „fan0”, jeśli na przykład twoje głupie urządzenie jest wentylatorem. Jeśli zdecydujesz się zastąpić wartość domyślną, nie zapomnij, na co go zmieniasz!

Krok 12: Integracja HomeKit / Siri - Python

Teraz potrzebujemy skryptu Pythona, który uruchamia nasz skrypt.sh. „Eww, to nieefektywne”, prawdopodobnie myślisz. Tak, masz rację. Uruchamianie plików.sh z Node było nierówne na moim Raspberry Pi, więc YMMV. Z tego powodu zamiast tego uruchomimy plik.sh za pomocą skryptu Pythona.

Jeśli nadal jesteś w folderze „akcesoria”, wróć do katalogu głównego folderu HAP-NodeJS:

Płyta CD..

Następnie utwórz plik Pythona, aby wywołać nasz skrypt „Switch1_On.sh”.

sudo nano light1.py

I napisz co następuje:

podproces importu

subprocess.Popen ('sh', 'twój katalog /Switch1_On.sh ')

… gdzie twój katalog jest katalogiem, w którym zapisałeś swój plik.sh.

Zapisz plik, wpisując CTRL + X i Y za „tak, zapisz to proszę!”

Ponownie możemy powielić ten plik dla skryptu Off:

sudo cp light1.py light0.py

Następnie edytuj …

sudo nano light0.py

… i zmień Switch1_On.sh "do " Switch1_Off.sh '

Zapisz to za pomocą CTRL + X, następnie Y za „tak, naprawdę chcę zapisać. dzięki”

Krok 13: Integracja HomeKit / Siri - Npm

Aby uruchomić serwer HomeKit, musimy odbudować projekt Node. Ukończenie zajmie trochę czasu, spróbuj być cierpliwy! Biegać:

odbudowa npm

A teraz wreszcie możemy spróbować uruchomić sam serwer!

sudo węzeł BridgedCore.js

Jeśli wszystko zostało poprawnie ustawione, powinien uruchomić serwer HomeKit. Jesteśmy gotowi podłączyć nasz iPhone!

Krok 14: Integracja HomeKit / Siri - Wykończenie

Jesteśmy w domu! Ostatnim krokiem jest podłączenie iPhone'a do serwera HomeKit, co pozwoli na sterowanie urządzeniami za pomocą Siri.

Mój osobisty ulubiony z aplikacji HomeKit, które można wykorzystać do skonfigurowania nowego urządzenia: Eve elgato. Możesz go pobrać na iPhone'a lub iPada tutaj.

Upewnij się, że dostęp do danych domowych jest możliwy, a następnie pozwól mu wyszukać urządzenia. Powinien wykryć wcześniej skonfigurowane urządzenia. Dodaj swoje urządzenie. Postępuj zgodnie z instrukcjami wyświetlanymi na ekranie. Jeśli chcesz zmienić nazwę urządzenia, zrób to teraz.

Kiedy skończysz, powinieneś być w stanie kontrolować swoje urządzenie za pomocą ustawionej nazwy.

Spróbuj! Aktywuj Siri i powiedz „Włącz nazwa urządzenia”

… gdzie nazwa urządzenia to nazwa, którą podałeś.

Czy to się włącza? Tak? Gratulacje, właśnie stworzyłeś inteligentny dom!