Dzisiejszy wpis będzie pierwszym poświęconym tzw. DIY. Zajmiemy się w nim, jak wynika z tytułu, problemem poprawnej instalacji pluginu pozwalającego na obsługę popularnych urządzeń Broadlink bezpośrednio z interfejsu systemu Domoticz. Motywacją dla tego wpisu jest fakt, że właściwie brakuje kompletnej i zrozumiałej instrukcji wykonania tego niezbyt prostego, jak się okazuje, zadania, a problemy, które mogą wyniknąć podczas prób instalacji na podstawie dostępnych materiałów są w stanie szybko zniechęcić początkujących majsterkowiczów. Informacje niezbędne do napisania tego wpisu czerpałem z wielu źródeł internetowych, polsko- i anglojęzycznych, a sam wpis dokumentuje rzeczywisty proces instalacji. Tyle tytułem wstępu, a teraz do dzieła!
Ustalmy warunki początkowe. Żeby kontynuować potrzebujesz:
- Raspberry Pi z systemem Raspbian Stretch i zainstalowanym kontrolerem automatyki Domoticz w wersji co najmniej 3.90xx,
- Zdalnego dostępu do Raspberry przez VNC lub SSH, przy wrzucaniu plików do katalogu Domoticza pomocny może okazać się program WinSCP,
- Właściwie dowolnego urządzenia Broadlink (my użyliśmy Broadlink RM pro+),
- Skonfigurowanej aplikacji mobilnej wedle własnego uznania (ihc lub e-control), chociaż można natrafić na opinie, że e-control jest lepsza,
- Podstawowego pojęcia na temat posługiwania się linuxowym terminalem,
- Sporo wolnego czasu i nieco więcej samozaparcia.
Zacznijmy od prostych rzeczy.
Umieść odpowiednie pliki w odpowiednim miejscu
Pobierz stąd następujące pliki:
plugin_send.py
plugin_http.py
plugin.py
plugin_http.sh
bug-fix in Timeout.txt
Umieść je w nowo utworzonym folderze plugins/BroadlinkRM2 w katalogu domoticz. Pełna ścieżka u mnie wygląda tak:
/home/pi/domoticz/plugins/BroadlinkRM2
W konsoli należy nadać folderowi uprawnienia:
~cd domoticz/plugins
~sudo chmod +x BroadlinkRM2
Zainstaluj wymagane komponenty
Na początek należy dodać do Raspbiana Stretch adres repozytorium starszego Raspbiana, Jessie. W konsoli otwieramy plik tekstowy:
~sudo nano /etc/apt/sources.list
I wklejamy do niego następujący tekst:
deb http://archive.raspbian.org/raspbian/ jessie main contrib non-free rpi
Zanim przejdziemy dalej, należy wykonać standardową procedurę w przypadku Raspbiana, czyli wywołać komendy:
~sudo apt update
~sudo apt upgrade
Teraz czas na instalację bibliotek ssl:
~ sudo apt install libssl1.0.0
~ sudo apt install libcurl4-gnutls-dev
Przechodzimy do instalacji narzędzia pip dla Python 3. Potrzebne to będzie do instalacji pakietów bezpośrednio z Python Package Index:
~ sudo apt install python3-pip
Teraz instalacja właściwa:
~ sudo pip3 install Crypto
~ sudo pip3 install broadlink
~ sudo pip3 install pyaes
~ sudo cp -r /usr/local/lib/python3.5/dist-packages/crypto/ /usr/lib/python3.5/
~ sudo cp -r /usr/local/lib/python3.5/dist-packages/broadlink /usr/lib/python3.5/
U mnie wystąpiły w tym miejscu problemy z instalacją Cryptografy i cffi (elementy pakietu broadlink). Można sobie z tym poradzić wpisując następującą komendę:
~sudo apt install build-essential libssl-dev libffi-dev python-dev
Dzięki temu w systemie powinny się pojawić wszystkie niezbędne biblioteki.
Na koniec pozostaje nam już tylko zrestartować Domoticza:
~ sudo service domoticz restart
Skonfiguruj Domoticza
W zakładce Konfiguracja→Sprzęt powinna się pojawić opcja dodania nowego urządzenia Broadlink RM2 with Kodi Remote. Poprawna konfiguracja jak na zdjęciu poniżej:
Adres IP i MAC ustalamy korzystając z dowolnego programu do skanowania sieci lokalnej, np. wnetwatcher. Wybieramy właściwy typ urządzenia, lub zostawiamy domyślne Discovery. Domyślny port: 9000. Debug, po gorącym okresie instalacji, zmieniamy na false.
Jeśli wszystkie poprzednie kroki przebiegły pomyślnie, w urządzeniach powinny pojawić się następujące instancje:
Oznacza to, że instalacja zakończyła się sukcesem. Gratuluję! 🙂 Teraz można zacząć korzystać z nowo zintegrowanego urządzenia, a na to instrukcji w sieci jest już sporo, więc w tym miejscu kończę. Powodzenia!
*Gdyby w Twojej instalacji pojawiły się nieopisane wyżej trudności, opisz je w komentarzu. Pomoże to innym znaleźć rozwiązanie.