czwartek, 26 kwietnia 2018

Broadlink i Domoticz - walki ciąg dalszy

Taki wniosek na szybko - czasem nie warto oszczędzać ;) W sumie nie żałuję zakupu pilota Broadlink RM Mini 3, ale sposób w jaki muszę podłączać go do Domoticz jest, delikatnie mówiąc, skomplikowany.

Zacznijmy od tego, że nauka kodów wszystkich pilotów nie jest tym, co tygrysy lubią najbardziej. Ja wiem, że można zamapować kilka głównych przycisków (chociaż i to działa spontanicznie), ale w sieci są kody do wielu różnych urządzeń, które można wykorzystać. Tak jest również w przypadku Broadlink, ale w aplikacji e-Control jest to zorganizowane bardzo nieporządnie. Jako że dodają je użytkownicy, to wielokrotnie mimo szczerych chęci opisy się powtarzają, nie ma żadnego standardu - trzeba celować na przykład w kilkanaście tych samych opisów w stylu 'Samsung TV'.


Powiedzmy jednak, że znaleźliśmy wzór pilota jaki chcieliśmy. W moim przypadku podstawowe funkcje działały na prawie każdym - włączenie/wyłączenie, głośniej/ciszej/wycisz.

Mamy w nich zamapowane kilkanaście przycisków. Szkoda robić to wszystko od nowa - tym bardziej, że z nieznanych mi powodów plugin Broadlink w Domoticz przestał mi odczytywać kody IR z pilotów - zawsze są tam zera. W aplikacji działa...

Jak w takim razie wyłuskać zapisane już dane? Jest możliwość. 

Po pierwsze - potrzebujemy telefonu z Androidem. iPhone sobie z plikami nie radzi, także na nim wiele w tym przypadku nie zdziałamy. Na nim instalujemy aplikację e-Control i łączymy się z naszym pilotem Broadlink. Konfigurujemy co chcemy, wyszukujemy albo robimy to sami klawisz po klawiszu.

Wchodzimy w Opcje (po lewej, na górze)


I Share


Następnie 'Share to other phones in WLAN'


I teraz zaczyna się ciekawe. Musimy znaleźć w strukturze plików (na szczęście Android przeglądarkę takowych udostępnia) folder

/broadlink/newremote/SharedData/

I stamtąd musimy pobrać trzy pliki:

jsonSubIr
jsonButton
jsonIrCode

Najważniejszy jest jsonIrCode, ale do zaimportowania w Domoticz potrzebujemy wszystkich trzech.



Poniżej opis funkcji, za pomocą których można zaimportować dane kodów IR do Domoticz.



Przycisk Webstart uruchamia serwis za pomocą którego będziemy mogli przesłać pliki z telefonu do Raspberry Pi. Możemy wtedy wpisać adres naszego Raspberry Pi w przeglądarkę na telefonie z portem 9000 (np. http://192.168.1.200:9000/import). Co ważne - serwis zakończy pracę ze względów bezpieczeństwa po 10 minutach.

Jeżeli wiemy jak to zrobić sami (np. FTP czy też Samba share), to ładujemy je do folderu /import wewnątrz folderu Broadlink. WAŻNE! NIE plików folderu pluginu, ale folderu, który podaliśmy w konfiguracji!





Generate odczyta i zapisze te pliki. Odczyta wszystko w formacie json i stworzy z nich pliki *.ini z kodami IR do poszczególnych pilotów.



I teraz zaczyna się zabawa... Ja osobiście nie chciałem mieć stu nowych przycisków w Domoticz, dlatego przeniosłem je do folderu roboczego...


...i jeden po drugim (czasem domyślając się po opisie, czasem testując samemu) ładowałem je do folderu /import i przyciskałem...

Import - przeniesie pliki z folderu Import do Broadlink i założy odpowiednie 'przyciski' w Domoticz.


Tralalala, działa. Żeby sprawdzić jak to wszystko będzie pracowało na 'żywym organizmie'.

Stworzyłem Scenę


i dodałem:


Po kolei:
1. Zapal delikatne światła (po co ma mnie od razu oślepić...) w salonie - to akurat Xiaomi
2. Podnieś ekran - tutaj RFLink
3. Daj sygnał IR z Broadlink do projektora aby się wyłączył
4. Potwierdź - taki wymóg projektora
5. Wyłącz wzmacniacz

Scenę przez HABridge połączyłem z Alexą i można już po filmie powiedzieć 'Alexa, after movie' i sprawdzić jak nasze sprzęty reagują. Magia!


32 komentarze:

  1. Ten komentarz został usunięty przez autora.

    OdpowiedzUsuń
    Odpowiedzi
    1. W e-mailu pytanie pozostało, nie trzeba resetować. Może adres IP nieodpowiedni?

      Usuń
    2. miałem sieć 2,4 i 5 jak wyłączyłem tą 5Ghz to poszło bez problemu
      jednak mam problem z dodaniem do domoticza:
      (BroadlinkRM2) failed to load 'plugin.py', Python Path used was '/home/serfer/domoticz/plugins/Broadlink/:/usr/lib/python35.zip:/usr/lib/python3.5:/usr/lib/python3.5/plat-arm-linux-gnueabihf:/usr/lib/python3.5/lib-dynload'.
      2018-05-01 13:48:52.164 Error: (Broadlink RM2) Module Import failed, exception: 'ImportError'
      2018-05-01 13:48:52.164 Error: (Broadlink RM2) Module Import failed: ' Name: broadlink'
      2018-05-01 13:50:00.650 Error: Broadlink RM2 hardware (9) thread seems to have ended unexpectedly

      Usuń
    3. poradziłem sobie z tym błędem ale nadal nie widzę nic w domoticzu w urządzeniach chociaż już nie ma żadnych błędów. Natomiast po usunięciu ze sprzętu Broadlink i dodaniu na nowo jest takie coś w logach 2018-05-01 20:25:31.437 (Broadlink RM2) Exiting work loop...
      2018-05-01 20:25:31.439 (Broadlink RM2) Stopped.
      hmm dziwne że od razu stopuje :(

      ten katalog w BrodlinkRM2 to trzeba samemu stworzyć na serwerze czy on sam go powinien stworzyć ? bo go nie mam

      Usuń
    4. Z tego co pamiętam folder tworzyłem sam, później dodałem link do niego w konfiguracji.

      Usuń
    5. masakra tyle godzin nad tym już spędziłem i nadal du.. postawiłem czysty rpi na jessi i domoticz po wielu próbach pojawiły mi się 2 przyciski w domoticzu ale nie mam tego import tylko te 2 pierwsze i nie mogę zaimportować kodów pilotów :(

      Usuń
    6. Przepraszam, że tak późno odpisuję, majówka...Po pierwsze gratuluję wytrwałości, to ważne. Po drugie - postaram się wyczyścić dane pluginu i postawić go od nowa. Może mi się jakiś niuans przypomni. Naprawdę nie robiłem żadnych magicznych rzeczy...

      Usuń
    7. nie mogę zmusić domoticza żeby używał Pythona 3.5 to chyba jest problem

      Usuń
    8. Jacek Slawinski: napisałeś że miałeś problem z biblioteką pythona
      (BroadlinkRM2) failed to load 'plugin.py', Python Path used was '/home/serfer/domoticz/plugins/Broadlink/:/usr/lib/python35.zip:/usr/lib/python3.5:/usr/lib/python3.5/plat-arm-linux-gnueabihf:/usr/lib/python3.5/lib-dynload'.
      Czy mógłbyś opisac jak sobie z tym problemem poradziłeś u mnie jest chyba problem z dwoma wersjami pythona3 mam 3.4 i 3.6 poprostu wywalic jedna ? Czy można odgórnie ścieżke przypisać prawidłową ?

      Usuń
  2. Cezar jest szansa na udostępnienie przez Ciebie obrazu gołego rpi z domoticzem i broadlinkiem ? :) chyba już całe forum o brodlinku przeczytałem i zawsze mam problem

    OdpowiedzUsuń
    Odpowiedzi
    1. W sumie to chyba jakoś mógłbym to zrobić :) Mam taki przygotowany na wypadek awarii - czyli mniej więcej raz na dwa tygodnie ;)

      Usuń
    2. O! ja też jestem zainteresowany :)

      Usuń
  3. Witam
    Miałem te same problemy.Zbudowałem domoticza ze źródła i wgrałem broadlink 0.6 i odpowiednie pliki do tej wersji. Działa mi wszystko poza stroną WWW.

    OdpowiedzUsuń
  4. Instalacja Domoticza z tej strony
    http://flytomcio.pl/raspberry-pi/instalacja-domoticza/
    a potem
    Instalujemy Pip3
    sudo apt-get install python3-pip

    Instalujemy broadlink

    sudo pip3 install Crypto
    kopiujemy rozpakowany katalog python-broadlink-master-0.6 do katalogu który sobie zrobisz np. download
    z 0.8 jest problem u mnie
    sudo pip3 install Crypto
    Przechodzimy do katalogu z do katalogu gdzie skopiowaliśmy broadlink i instalujemy
    sudo pip3 install .

    sudo cp -r /usr/local/lib/python3.4/dist-packages/Crypto/ /usr/lib/python3.4/
    sudo cp -r /usr/local/lib/python3.4/dist-packages/ broadlink /usr/lib/python3.4/


    kopiujemy
    do katalogu /domoticz/plugins/BroadlinkRM2
    plugin.py
    plugin_http.py
    plugin_http.sh
    plugin_send.py
    i nadajemy prawa
    chmod +x plugin.py
    chmod +x plugin_http.py
    chmod +x plugin_http.sh

    Trochę mi zajęło zanim udało mi się wgrać dlatego polecam przed wgranie broadlinka zrobić sobie kopie bo kompilacja trochę trwa.

    Pliki konfiguracyjne pobrać do wersji 0.6.
    Pozdrawiam

    OdpowiedzUsuń
  5. dzięki to już jest jakiś postęp jednak domoticz nie widzi mojego broadlinka mam RM2 pro+ tak jakby błedne ip ale ip na 100% dobre

    2018-05-11 20:15:03.692 Error: (Broadlink) Error Connecting to Broadlink device....192.168.1.31
    2018-05-11 20:15:03.692 (Broadlink - Discovery) Updating device from 0:'' to have values 0:'Off'.
    2018-05-11 20:15:03.696 (Broadlink) Update 0:'Off' (Broadlink - Discovery)
    2018-05-11 20:15:03.701 (Broadlink) No ini file :BroadlinkRM2/remote/plugin_remote_2.ini
    2018-05-11 20:15:03.701 (Broadlink) Custom Commands for Remote not managed
    2018-05-11 20:15:03.701 (Broadlink) Device Number begin to : 2

    Jakieś sugestie ?

    OdpowiedzUsuń
  6. Hej
    Pewnie nie ta wersja pluginów, na któreś wersji też tak miałem.
    Mogę ci podesłać moje na maila.
    Jak masz ftpa to mogę ci wysłać moją kopie domoticza.

    OdpowiedzUsuń
  7. Janie - bardzo dziękuje za udział w temacie - w sumie nie wiem czemu udało mi się uniknąć tych wszystkich problemów

    OdpowiedzUsuń
  8. Chyba miałeś szczęście. A tak z ciekawości działa ci serwer www broadlinka ?

    OdpowiedzUsuń
  9. Cezar jak będzie możliwe to udostępnij swój backup domoticza.
    Pozdrawiam

    OdpowiedzUsuń
    Odpowiedzi
    1. Jasne, jasne. Staram się to zrobić, tylko czasu brak. Przepraszam...

      Usuń
    2. ja również poczekam bo nie mam pojęcia jak to zrobiłeś :) tyle razy już stawiałem to wszystko od zera na wszystkie sposoby i zawsze klops :)

      Usuń
  10. udało mi się zainstalować jakimś cudem tego brodlinka na domoticzu V3.9458

    jednak nadal jest pod górkę jak Tworzę scenę to nie mogę dodawać do niej tych kodów (przycisków z brodlinka) lipa
    no i w logach jakiś śmietnik cały czas :
    ) Pushing 'onHeartbeatCallback' on to queue
    2018-05-23 22:57:20.388 (Br) Processing 'onHeartbeatCallback' message
    2018-05-23 22:57:20.388 (Br) Calling message handler 'onHeartbeat'.
    2018-05-23 22:57:50.365 (Br) Pushing 'onHeartbeatCallback' on to queue
    2018-05-23 22:57:50.394 (Br) Processing 'onHeartbeatCallback' message
    2018-05-23 22:57:50.394 (Br) Calling message handler 'onHeartbeat'.
    2018-05-23 22:58:20.370 (Br) Pushing 'onHeartbeatCallback' on to queue
    2018-05-23 22:58:20.399 (Br) Processing 'onHeartbeatCallback' message
    2018-05-23 22:58:20.399 (Br) Calling message handler 'onHeartbeat'.

    OdpowiedzUsuń
    Odpowiedzi
    1. Panowie, przepraszam bardzo za zwłokę, ale chwilowo nie dam rady pomóc, bo się mój Broadlink Mini wziął i spalił :/ Znaczy nie tak dosłownie, ale moduł WiFi grzeje się niemiłosiernie i sprzęt się nie włącza w ogóle. Kupiłem nowy i czekam na przesyłkę.

      Usuń
  11. Te komunikaty też tak mam.
    http://www.domoticz.com/forum/viewtopic.php?f=65&t=21645&start=200
    tu masz opisane jak dodać kod.
    Pozdrawiam

    OdpowiedzUsuń
  12. Poniżej jak zainstalowałem dooticz + broadlink

    Dodajemy adres repozytorium JESSIE do raspbiena STRETCH
    ~ sudo nano /etc/apt/sources.list
    wklej
    deb http://archive.raspbian.org/raspbian/ jessie main contrib non-free rpi

    SSL1.0.0
    ~ sudo apt-get update
    ~ sudo apt-get install libssl1.0.0
    ~ sudo apt-get install libcurl4-gnutls-dev

    ~ curl -L install.domoticz.com | sudo bash
    ~ cd domoticz
    ~ ./updatebeta
    Restar (sudo shutdown -r now)

    ~ sudo apt-get install python3-pip
    ~ 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/

    kopiowanie plikow do katalogu /home/pi/domoticz/plugins/BroadlinkRM2:
    plugin_send.py
    plugin_http.py
    plugin.py
    plugin_http.sh

    ~ cd plugins
    ~ cd BroadlinkRM2
    ~ sudo chmod +x plugin.py
    ~ sudo chmod +x plugin_send.py
    ~ sudo chmod +x plugin_http.py
    ~ sudo chmod +x plugin_http.sh
    ~ sudo service domoticz restart

    OdpowiedzUsuń
    Odpowiedzi
    1. Bardzo dziękuję w imieniu użytkowników za dokładną instrukcję!

      Usuń
    2. i tak mam ;-) tylko jak wciskam Learn to w logach: Error: (tv) Error Connecting to Broadlink device.....192.168.x.xx
      nie wiem czy powodem nie jest ze zamiast RM4mini przysłali mi RM4mini a tego to z apek tylko BroadLink obsługuje nic więcej. Jakaś porada?

      Usuń
  13. AVE Cezar!
    Świetny blog! Twoje opisy są niesamowicie pomocne w nierównej walce z Domoticzem i moimi szalonymi pomysłami ;) .

    Wracając do tematu - zainstalowałem obsługę RM PRO+ wg instrukcji kol. @mee i bez problemu bramka dodała się do Domoticza. niestety nie mam albo nie potrafię dodać, znaleźć przycisku do uczenia bramki :( - podpowiecie coś?
    Czy da się też korzystać z tej bramki z urządzeń sterowanych RF 433MHz z poziomu Domoticza? Na razie nie mam jeszcze nadajnika i odbiornika RF do Raspberry ale ta bramka RM PRO+ obsługuje RF.

    Pozdrawiam!

    OdpowiedzUsuń
    Odpowiedzi
    1. Witam ponownie.
      Pogrzebałem trochę w sieci i udało mi się to skonfigurować tzn. pojawił się przycisk "Learn".
      Ta wtyczka ma też możliwość automatycznego wykrycia IP, MAC i typ naszej bramki.

      Opis dla potomnych.
      1. Usunąć z Domoticza z Broadlinka ( nie trzeba przywracać sytemu ani odinstalowywać wtyczki).
      2. Sparować bramkę z aplikacją e-Control na telefonie ( wcześniej miałem sparowana bramkę z ihc i w Domoticzu coś nie działało tak jak chciałem).
      3. Wracamy do Domoticza - wykrywamy bramkę:
      Konfiguracja-> Sprzęt
      Nazwa: Wykryj
      Typ: Broadlink RM2 with Kodi Remote
      Reszta ustawień bez zmian
      4. Zapisujemy.
      5. W zakładce przełączniki pojawi się przycisk Wykryj - klikamy na niego i czekamy około 1min. ( ja musiałem kliknąć 2 razy )
      6. Na przycisku pojawi się info, że znaleziono 1 Devices.
      7. W zakładce Użytkowe będzie kolejny przycisk ( widget?) na którym będą wyświetlone parametry bramki IP, Mac i typ.
      8. Wyłączamy tą bramkę w Konfiguracja-> Sprzęt i dodajemy nową z właściwym IP, Mac i Typ. (np. wg opisu Cezara).
      9. Autor tej wtyczki zaleca (o ile nie jest nam to potrzebne) wyłączyć opcje DEBUG.

      Pozdrawiam.

      Usuń
  14. Niezwykle cenne wskazówki.

    OdpowiedzUsuń