iMagazine

Projekt Raspberry Pi – 7 – Naprawiamy sterowanie TV, Apple TV i amplitunerem przez Homebridge i Logitech Harmony w HomeKit

05/03/2019, 10:46 · · · 6

Jakiś czas temu Logitech wyłączył w Harmony funkcję umożliwiającą integrację tego urządzenia z HomeKitem poprzez Homebridge’a. Musieliśmy czekać do lutego 2019, ale w końcu częściowo przywrócili tę funkcjonalność. Częściowo, ponieważ konfiguruje się ją teraz inaczej niż poprzednio, ale całość działa jak należy.


Ten projekt jest możliwy dzięki uprzejmości Botland, który dostarczył następujące elementy umożliwiające jego wykonanie:


Spis treści

  1. Instalacja i konfiguracja Raspbian (Wi-Fi, SSH i VNC).
  2. Instalacja Homebridge i konfiguracja Xiaomi Air Purifier 2.
  3. Uruchomienie kamery Raspberry Pi NOIR pod HomeKitem.
  4. Dodajemy pozycję w HomeKit, wyświetlającą jakość powietrza na dworze.
  5. Dodajemy prognozę pogody do HomeKit dla naszej ulicy.
  6. Dodajemy sterowanie TV, Apple TV i amplitunerem do HomeKit przez Homebridge i Logitech Harmony.
  7. Naprawiamy sterowanie TV, Apple TV i amplitunerem przez Homebridge i Logitech Harmony w HomeKit.
  8. Wywalamy Airly, bo zabili swoje publiczne API.

Wymagania

  1. Po pierwsze, Wasz Logitech Harmony musi mieć odpowiednią wersję firmware’u, czyli najnowszą na stan obecny, tj. 4.15.250.
  2. Musicie też wejść w aplikację Harmony → Menu → Harmony Setup → Add/Edit Devices & Activities → Remote & Hub i na dole włączyć funkcję XMPP. Bez tego całość nie będzie działała,
  3. Ostatecznie, zakładam, że konfiguracja Waszego RPi i Homebridge’a jest taka jak w 6. części tego poradnika.

Przepis

Dawno nie uaktualnialiśmy naszego RPi, więc to dobry moment, aby to zrobić, za pomocą poniższych komend. Pamiętajcie, że po każdej musicie poczekać, aż się skończy wszystko aktualizować. Jeśli nie robiliście update’ów od paru miesięcy (jak ja), to uaktualnienie może zająć nawet godzinę.

  1. Logujemy się do Raspberry Pi z Terminala, czyli za pomocą ssh pi@192.168.x.x, pamiętając, że pi to nazwa użytkownika (jeśli macie inną, to podmieńcie ją w komendzie) i podając prawidłowy adres IP.
  2. Po zalogowaniu się, wpiszcie sudo apt-get update.
  3. Po zakończeniu powyższej operacji wpiszcie sudo apt-get upgrade.
  4. Jak powyższa komenda skończy się wykonywać, to wpisujecie sudo apt-get dist-upgrade.
  5. Teraz kolej na wywalenie śmieci za pomocą sudo apt-get clean.
  6. Następną komendą jest sudo raspi-config, która uruchomi pseudo-graficzne menu. Wybierzcie pozycję nr 8, czyli 8 Update.
  7. Na koniec restartujemy Malinkę za pomocą sudo reboot i 1-2 minutach znowu się na nią logujemy przez ssh, jak w 1. kroku.

Stary plugin homebridge-harmony niestety nie został uaktualniony od roku, więc nie działa z nowym firmwarem. Trzeba go będzie odinstalować i na jego miejsce wstawić inny.

  1. Przypominam, że po restarcie znowu powinniśmy się zalogować do Malinki, jak pisałem w punkcie 7. powyżej za pomocą ssh pi@192.168.x.x.
  2. Zanim zaczniemy grzebać w pluginach, warto jeszcze uaktualnić wszystkie paczki npm za pomocą npm outdated. Ta operacja może potrwać kilkanaście minut, więc uzbrojcie się w cierpliwość.
  3. Następnie, po zakończeniu powyższej, wpiszcie komendę npm list -g --depth 0, która po minucie wyświetli listę zainstalowanych pluginów do Homebridge’a. Na tej liście powinna znajdować się pozycja homebridge-harmonyhub, bo z tego pluginu korzystaliśmy wcześniej. Wynik będzie wyglądał podobnie do tego:
  4. Musimy odinstalować homebridge-harmonyhub za pomocą komendy npm -g uninstall homebridge-harmonyhub. W razie niepowodzenia możecie spróbować sudo npm -g uninstall homebridge-harmonyhub.
  5. Teraz musimy oczyścić cache, bo to on u mnie powodował sporo problemów, więc wpisujemy cd /var/homebridge/accessories/ i następnie komendę ls -la. Powinniście zobaczyć plik o nazwie cachedAccessories. Jeśli potwierdzacie jego istnienie, to wpiszcie sudo rm cachedAccessories.
  6. Następnie zatrzymujemy Homebridge’a za pomocą komendy sudo systemctl stop homebridge.
  7. Teraz czas na zainstalowanie nowego pluginu do Homebridge’a, który prawidłowo obsługuje Logitech Harmony. Są obecnie dwa warte zainteresowania i szczęścia próbowałem z homebridge-harmony, ale nie udało mi się go uruchomić. Dla odmiany, homebridge-harmonyhub-plugin działa wzorowo. Aby go zainstalować, należy wpisać npm -g install homebridge-harmonyhub-plugin.
  8. Teraz czas na edycję pliku konfiguracyjnego. Wasz plik z poprzedniego poradnika powinien wyglądać podobnie do poniższego:
  9. Interesuje nas pozycja ostatnia i edytujemy tylko ten fragment pliku. Aby edytować plik, skorzystamy z nano, za pomocą komendy sudo nano /var/homebridge/config.json.
  10. Strzałkami nawigujemy na koniec pliku i pozycję "name": "Harmony Hub" zastępujemy "name": "homebridge-harmonyhub-plugin", czyli ten fragment pliku powinien wyglądać następująco:
  11. Teraz wciskamy ^X (Ctrl + X), aby zamknąć plik i jak program się zapyta, czy chcemy zapisać zmiany, to wciskamy y i zatwierdzamy Enterem.

Teraz będziemy musieli zweryfikować, czy całość działa prawidłowo, więc…

  1. Wpisujemy komendę sudo systemctl daemon-reload i zatwierdziamy Enterem.
  2. Wpisujemy sudo systemctl start homebridge i zatwierdzamy jak zwykle.
  3. Teraz możemy sprawdzić logi ładowania się Homebridge’a, aby upewnić się, że wszystko idzie tak, jak powinno, za pomocą komendy journalctl -f -u homebridge. Z trybu obserwowania logów możecie wyjść za pomocą komendy ^C (Ctrl + C).
  4. Jeśli wszystko uruchomi się prawidłowo, to powinniście zobaczyć coś w stylu poniższym:

Jeśli pokaże się Wam jakiś błąd (exit code), to prawdopodobnie macie źle sformatowany plik config.json – zapewne problem jest z jakimś zabłąkanym nawiasem lub przecinkiem. Validator JSON pomoże Wam znaleźć gdzie dokładnie leży problem (wklejacie do niego zawartość config.json). Możecie skorzystać z tego, lub dowolnego innego, który Wam odpowiada (szukajcie validate json).

Natychmiast pojawiły mi się oba activities, które mam skonfigurowany w Logitech Harmony, czyli TV (Apple TV + TV + amplituner) oraz Music (Apple TV + amplituner). Nie przepadam za grzebaniem w działających konfiguracjach, bo potem kończę na wielogodzinnym szukaniu rozwiązania, ale jeśli się uda, to przynajmniej pozostaje smak zwycięstwa.

6

Wojtek Pietrusiewicz

Wydawca, fotograf, podróżnik, podcaster – niekoniecznie w tej kolejności. Lubię espresso, mechaniczne zegarki i zwinne samochody. Niedawno rozpocząłem prowadzenie kursów Lightrooma i fotografii na Pikselowe.pl – zapraszam.


6
Dodaj komentarz

avatar
3 Comment threads
3 Thread replies
4 Followers
 
Most reacted comment
Hottest comment thread
4 Comment authors
Wojtek PietrusiewiczJohnyWojtek PietrusiewiczMarcinBarti Recent comment authors
  Subscribe  
najnowszy najstarszy oceniany
Powiadom o
Barti
Gość
Barti

Przed Tobą trochę roboty, bo TV można sterować już znacznie lepiej – w iOS 12.2 bet już jest natywna obsługa pilotów TV oraz TV przez homekit. Są już na to zaktualizowane homebridge i pluginy do TV.

Wojtek Pietrusiewicz
Gość
Wojtek Pietrusiewicz

Tak widziałem. Ten drugi plugin, który nie chciał mi działać prawidłowo, obsługuje to.

Marcin
Gość
Marcin

Szkoda, że nie opisujecie podobnej możliwości sterowania TV, amplitunerem i innymi sprzętami za pomocą tańszego rozwiązania od BroadLink. Działa super z Homebridge. Swój zestaw kina domowego (TV LG, amplituner Onkyo) uruchamiam za pomocą Siri poprzez Apple Watch. Urządzenie kosztuje ok 50zł, zamiast 700zł…

Wojtek Pietrusiewicz
Gość
Wojtek Pietrusiewicz

Harmony kupiłem za bodajże 150-180 zł, więc daleko do 700… A nie opisujemy BroadLink, bo go nie mamy.

PS. Przecież wszystko co się integruje z HomeKit, niezależnie od modelu, uruchomisz z Apple Watch, włączając w to moje rozwiązanie.

Johny
Gość
Johny

Sexy Time – wygląda intrygująco ;)