Sposób na… tani HomeKit

15/02/2017, 11:08 · · · 67

HomeKit został zapowiedziany przez Apple na WWDC w czerwcu 2014 roku. Zadaniem tej technologii jest wprowadzenie wspólnego języka do komunikacji między sprzętem Apple’a a akcesoriami z kategorii tak zwanego inteligentnego domu. Na prezentacji przedstawiono listę kilkunastu partnerów, których produkty wkrótce miały trafić na rynek.


Ten artykuł pochodzi z archiwalnego iMagazine 11/2016


Liczyłem wtedy, że szybko przyłączą się do tego inni producenci i w niedługim czasie zasypią  rynek akcesoriami zgodnymi z tym standardem. Niestety, premiera iOS 8 nie przyniosła praktycznie ani jednego kompatybilnego urządzenia. Trudno powiedzieć, czy wina leżała po stronie Apple’a, czy producentów akcesoriów.

Przez ostatnie lata na rynku pojawiło się jednak dużo świetnych produktów bez wsparcia dla tej technologii. Do ich obsługi konieczna jest instalacja specjalnych aplikacji. W przypadku, gdy korzystamy ze sprzętu wielu marek, to sterowanie nie jest ani szybkie, ani wygodne. HomeKit umożliwia kontrolę urządzeń natywnie z iOSa. Nie ma konieczności doinstalowywania żadnych wspomagających aplikacji. Ważną funkcją jest możliwość grupowania akcesoriów w tak zwane sceny. Pozwalają one na to, by pojedynczym kliknięciem lub komendą głosową Siri jednocześnie zmienić stany wielu przyłączonych urządzeń. W taki sposób jest możliwe szybkie przygotowanie pokoju do seansu filmowego. Aktywacja sceny ustawi właściwą temperaturę, zamknie rolety okienne, załączy odpowiednie oświetlenie i jednocześnie uruchomi w kuchni czajnik, w którym zostanie zagotowana woda na herbatę. Sceny mogą być uruchamiane ręcznie, ale także wyzwalane przez predefiniowane automatyzacje.

Niektóre firmy wprowadzają do sprzedaży proste urządzenia, tak zwane „mostki”, które po wpięciu do sieci LAN dodają obsługę HomeKita do wyprodukowanych przez nich akcesoriów. Dobry przykład daje Philips – wymieniając jeden element zestawu, komunikacja za pośrednictwem tej technologii zaczyna działać ze wszystkimi produkty z linii Hue, które mamy. Niestety, większość firm nie przewiduje takich rozwiązań ani aktualizacji do dotychczas sprzedawanych akcesoriów. W takim przypadku konieczna staje się ich wymiana na nowsze generacje. Kolejną kwestią jest cena akcesoriów wspierających HomeKita. Produkty z tą funkcją są obecnie traktowane jako premium, kosztują więc znacznie więcej od „zwykłych” dotychczasowych smart rozwiązań.

Tutaj jednak za sprawą społeczności OpenSource pojawia się ciekawa alternatywa – projekt Homebridge. Jest to implementacja serwera akcesoriów HomeKit. Realizuje podobną funkcję jak przystawka Philipsa – za sprawą pluginów staje się on pośrednikiem pomiędzy HomeKitem a przeróżnymi akcesoriami czy skryptami systemowymi.

Homebridge’a można zainstalować właściwie na każdym komputerze. Musi jednak być on cały czas włączony, dlatego uważam, że odpowiednim urządzeniem do tego celu jest Raspberry Pi. Ten prosty mikrokomputer charakteryzuje się bardzo niskim poborem energii wynoszącym około 2W, a przy tym można uruchomić na nim Linuksa. Jego trzecią generacje wyposażoną w Wi-Fi i Bluetooth LE można kupić za niecałe 200 złotych. Za cały zestaw składający się z karty pamięci, zasilacza microUSB oraz plastikowej obudowy powinniśmy zapłacić nie więcej niż 300 złotych. Koszt ten jest zbliżony do ceny pojedynczego akcesorium ze wsparciem dla HomeKita.

W ramach testów tego rozwiązania wykonałem już trzy instalacje. W moim domu udało się wprowadzić obsługę HomeKita dla kilku gniazdek TP-Linka HS100, HS110 oraz Orvibo S20, do którego samodzielnie przygotowałem plugin. W instalacji Norberta znalazła się obsługa sprzętu Belkin Wemo, termostatu Nest, stacji pogodowej Netatmo, a nawet odkurzacza Roomba. Natomiast u Jaśka Homebridge jak na razie zarządza gniazdkami i żarówkami Belkin Wemo, a także gniazdkiem marki Fritz.

Lista pluginów do Homebridge’a wspierających różne akcesoria, platformy i technologie liczy obecnie ponad 300 pozycji i stale się powiększa. Większość z nich została opublikowana w menadżerze pakietów NPM i można wyszukać je na stronie npmjs.com pod hasłem „homebridge”.

Jeśli macie lub nabyliście Raspberry Pi, to poniżej przygotowałem instrukcję instalacji. Aby zaoszczędzić Wam wklepywania kilkudziesięciu komend, instalacja Homebridge’a odbędzie się dzięki prostemu skryptowi instalacyjnemu. Napisałem także konfigurator, za pomocą którego będziecie w stanie zainstalować i uruchomić podstawowe przykładowe pluginy, obecnie do Belkin Wemo, TP-Link i Orvibo.

UWAGA! Do instalacji i konfiguracji niezbędna jest podstawa znajomość pracy z systemami Linux, a przede wszystkim umiejętność korzystania z Terminala. Jeśli zatem nie jesteś zaawansowanym użytkownikiem, to poszukaj osoby, która będzie Cię w stanie wesprzeć w razie problemów.

Instalacja Homebridge’a na Raspberry Pi

Najpierw należy sformatować kartę pamięci jako „FAT32”. Jeśli użyta karta pamięci jest nowa, to powinna być właściwie sformatowana; wówczas ten krok można pominąć.

Następnie z oficjalnej strony Raspberry Pi należy pobrać paczkę ZIP z instalatorem „NOOBS”, dla zaoszczędzenia czasu może być to wersja „Lite” – w której przypadku system Raspbian jest pobierany w trakcie instalacji. Wszystkie wypakowane pliki z paczki instalatora należy skopiować na kartę pamięci, a następnie umieścić ją w Raspberry Pi.

Zanim podłączy się zasilanie, należy podłączyć przewód sieciowy. Dodatkowo na czas instalacji będzie potrzebny podgląd na ekranie podłączonym przez HDMI oraz mysz lub klawiatura USB. Niedługo po podłączeniu zasilania na ekranie zostanie wyświetlone okno instalatora.

Na tym etapie jest możliwość wybrania dystrybucji do zainstalowania. Jeśli nie zamierza się wykorzystywać Raspberry Pi do innych zadań niż Homebridge, to polecam wybranie dystrybucji „Raspbian Lite”. Od zalecanej przez autorów pierwszej pozycji na liście różni się ona tym, że w tym przypadku nie będzie instalowane środowisko graficzne. Zaoszczędzi to zbędnego obciążenia procesora, co ma szczególne znaczenie, jeśli korzystamy z wcześniejszych generacji Raspberry Pi. Pobieranie i jednoczesna instalacja samego systemu powinny zająć około kilkunastu minut.

Po ponownym uruchomieniu należy połączyć się do Raspberry Pi z komputera przy użyciu klienta SSH. Na Windowsie możesz skorzystać z programu PuTTY, na macOS wystarczy uruchomić Terminal i wydać polecenie:

W razie problemów z połączeniem zamiast nazwy domenowej raspberrypi.local można skorzystać z adresu IP. Zostanie on wyświetlony na ekranie przyłączonym do Raspberry Pi po uruchomieniu. Warto jest ustatecznić ten adres w DHCP na routerze, aby urządzenie zawsze otrzymywało ten sam adres.

Domyślnym użytkownikiem po instalacji jest pi, a hasłem raspberry. Hasło to warto zmienić natychmiast po pierwszym zalogowaniu, korzystając z komendy passwd.

Do instalacji i wstępnej konfiguracji przygotowałem prosty skrypt instalacyjny, który można pobrać z mojego repozytorium na GitHubie. Najpierw należy w tym celu zainstalować do tego klienta Git, wykonując komendę:

Następnie, aby pobrać i uruchomić skrypt instalacyjny z mojego repozytorium, należy wykonać:

Moje skrypty instalacyjne zostaną pobrane do katalogu homebridge-raspbian-installer.

Należy do niego przejść i uruchomić skrypt instalacyjny, wykonując poniższe polecenia:

Po zakończonej instalacji zostanie uruchomiony konfigurator, w którym można przejść do instalacji przykładowych pluginów, edycji głównego pliku konfiguracyjnego, a także wykonać restart Homebridge’a po wprowadzeniu zmian konfiguracyjnych.

Aby uruchomić konfigurator po ponownym zalogowaniu wystarczyć przejść do katalogu i uruchomić go skrypt configure.sh:

Instalacja predefiniowanych pluginów z konfiguratora powoduje dodanie właściwych sekcji do pliku konfiguracyjnego /var/homebridge/config.json. Jednak wiele z dodatkowych pluginów wymaga dodatkowej ręcznej konfiguracji, jak chociażby dane do logowania do API w przypadku pluginów Nesta czy NetAtmo.

Doinstalowanie jakiegokolwiek dodatkowego pluginu wykonuje się poza utworzonym przeze mnie konfiguratorem komendą:

gdzie w miejscu homebridge-plugin, należy podać nazwę pakietu z pluginem.

Postaram się stopniowo rozbudowywać ten konfigurator, aby obsługiwał jak najwięcej popularnych pluginów. Informacje odnośnie do jego aktualizacji będzie można znaleźć w moim repozytorium na GitHubie.

67