Instalacja Homebridge na Raspberry Pi 3 B+

Ostatnio w moje ręce wpadła najnowsza odsłona „Malinki”. Przyznam szczerze, że z punktu widzenia posiadacza o wiele starszej wersji B rev. 2, która ma już kilka ładnych lat, to szybkość działania nowego modelu jest wręcz porażająca. Uruchomienie systemu w kilka sekund, sprawne działanie przeglądarki internetowej, a nawet to, co dzieje się w terminalu sprawia, że instalacja Homebridge na Raspberry Pi wreszcie stała się (prawie) przyjemnością. Zatem… Do dzieła!

Co nam będzie potrzebne?

  • Raspberry PI (w wersji 2 lub 3);
  • Mysz i klawiatura na USB;
  • Monitor lub telewizor z HDMI;
  • Zasilacz z portem USB, minimum 2A;
  • Kabel micro USB;
  • Kabel HDMI;
  • Kabel ethernet;
  • Karta Micro SD, minimum 8GB.

Przygotowanie zestawu

Pierwszym krokiem, który trzeba postawić w kierunku działającego oprogramowania Homebridge, jest instalacja systemu operacyjnego na karcie pamięci. Można tego w łatwy sposób dokonać za pomocą dowolnego komputera z systemem Windows, Linux lub MacOS. Kartę wkładamy do czytnika, a w międzyczasie udajemy się na stronę:

https://unetbootin.github.io/

UNetbootin to lekkie, łatwe w obsłudze i multiplatformowe narzędzie, które pozwoli nam na instalację Raspbiana, czyli Linuksa specjalnie przeznaczonego dla Raspberry Pi. Po plik zip udajemy się na stronę:

Raspbian

Rozpakowujemy, a w UNetbootin wskazujemy właściwą ścieżkę pliku i całość wgrywamy na kartę. Oczywiście można skorzystać z opcji automatycznego pobierania obrazu bezpośrednio w naszym programie, ale ja wolę klasyczną metodę. Sprawdza się to również wtedy, gdy z pewnych powodów potrzebujemy wgrać starszą wersję oprogramowania. Po zakończonym procesie instalacji, przekładamy kartę do maliny i podłączamy źródło zasilania.

Jeśli z instalacją Raspbiana poszłoby coś nie tak, to można skorzystać z jeszcze łatwiejszego instalatora, jakim jest NOOBS. Pobieramy, a pliki po rozpakowaniu zipa umieszczamy na karcie pamięci. Resztę załatwi graficzny instalator już bezpośrednio na Raspberry Pi.

NOOBS

Instalacja Homebridge na Raspberry Pi

Gdy po kilku chwilach naszym oczom ukaże się pulpit, warto uruchomić przeglądarkę i przejść na stronę tego poradnika (celem szybszego wprowadzania komend, niż ich mozolne przepisywanie) i oczywiście odpalić Terminal. Pierwszą komendą, jaką należy wykonać jest:

sudo apt-get update

Dzięki niej system sprawdzi, czy są dostępne nowe repozytoria. W kolejnym kroku:

sudo apt-get upgrade

Komenda ta aktualizuje pakiety. Wszystko dzieje się automatycznie, a na świeżej wersji systemu całość powinna trwać bardzo krótko, bo zazwyczaj niewiele nowości jest do pobrania. Trzecią rzeczą jest dogranie pakietu Avahi, bez którego Homebridge nie ruszy:

sudo apt-get install -y git make build-essential libavahi-compat-libdnssd-dev

Najprostsza część zadania już za nami, dalej zaczynają się schody. Z tym, że oczywiście dzięki temu poradnikowi będzie inaczej, bo wszystkie rozwiązania są podane jak na tacy! Zaczynamy zatem od zaktualizowania pakietu Node.js – nie wiedzieć czemu, na wszystkie standardowe metody podniesienia wersji (które teoretycznie powinny działać bezproblemowo), nasz pakiet node nie reagował i nie chciał się zaktualizować. Wciąż wskazywał wersję 4.x.x. Rozwiązaniem jest odkopana w czeluściach sieci komenda:

sudo wget -O - https://raw.githubusercontent.com/sdesalas/node-pi-zero/master/install-node-v.last.sh | bash

Wszystkich chętnych, którzy chcieliby poeksperymentować z instalowaną wersją (powyższy kod gwarantuje nam ostatnią dostępną) zapraszam na Githuba twórcy skryptu:

https://github.com/sdesalas/node-pi-zero

Dlaczego w ogóle zamartwiamy się aktualizacją wersji Node? Odpowiedź jest banalna – bo późniejsza instalacja pluginów do Homebridge tego wymaga. Jeśli tego nie zrobimy, naszym oczom np. po instalacji pluginu dla Xiaomi Gateway może się ukazać błąd:

Error: The requested platform ‚MiAqaraPlatform’ was not registered by any plugin.

Dlatego istotnym jest, aby na pokładzie była także odpowiednio wysoka wersja NPM (składowa pakietu Node), czyli skryptu, który poniekąd odpowiada za doinstalowywanie kolejnych dodatków.

node -v

Ta komenda pozwoli nam sprawdzić wersję pakietu Node. Jeśli będzie to 9.x.x lub wyższa, to znaczy, że wszystko poszło zgodnie z planem. To samo robimy względem NPM:

npm -v

I tutaj możemy się spotkać z informacją, że dostępna jest aktualizacja. Wykonujemy ją komendą:

sudo npm i -g npm

I teraz, już bez większych problemów, możemy podejść do instalacji Homebridge:

sudo npm install -g --unsafe-perm homebridge

Po wszystkim, wpisujemy w terminalu homebridge i jeśli wszystko się udało, to naszym oczom powinien ukazać się po kilkunastu sekundach ekran z kodem QR. W moim przypadku, zamiast szczęśliwego zakończenia, otrzymałem zwrotkę w postaci błędu:

Error: The module ‚/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/node_modules/mdns/build/Release/dns_sd_bindings.node’

Oznacza to, że trzeba na nowo zainstalować i przebudować moduł MDNS, będący składową naszego ulubionego Node.

sudo npm install --unsafe-perm mdns

A po około minucie wybieramy katalog z modułami od Homebridge:

cd /usr/local/lib/node_modules/homebridge

I na tej ścieżce wykonujemy operację przebudowy (też chwilę trwa):

sudo npm rebuild --unsafe-perm

I skończone. Następny etap to stworzenie i uzupełnienie pliku konfiguracyjnego dla Homebridge, o którym opowiem w  następnej części cyklu.