Jakiś czas temu postanowiłem dodać do mojego systemu telewizor Sony Bravia. Po wielu próbach podałem się. Mój model ma już swoje lata i niestety nie ogarnia „złożoności protokółów komunikacji” z Domoticzem. Wpadłem jednak na plan aby spróbować zmusić do współpracy dekoder nc+. I tu już poszło lepiej. Może nie idealnie, ponieważ mam świadomość, że jest to trochę prowizorka, ale moje umiejętności na razie nie pozwalają na nic więcej. Idea jest taka, aby zmapować przyciski pilota i poprzez skrypty w pythonie wysłać je z Domoticza do dekodera. Aby nawiązać komunikację pomiędzy urządzeniami potrzebujemy skryptu w pythonie, który znalazłem na GitHub. Skrypt nie jest oczywiście mojego autorstwa. Znalazłem go tu. Autorem jest HubertReX, dla którego dziękuję. W pliku mamy zmapowane przyciski pilota nc+. Uzupełniamy dane:
HOST = „ip dekodera nc+”
PORT = 8080
UUID = „12341234-1234-1234-1234-abcabcabc”
Zagadkowe wydawać się może UUID. Aby je znaleźć należy, po podłączeniu dekodera do sieci, w przeglądarce internetowej wpisać komendę:
http://<ip dekodera nc+>:8080/upnpdev
Otrzymamy taki mniej więcej log:
Mając już wszystkie niezbędne dane możemy przejść do najważniejszego, czyli konfiguracji Domoticza. Ja dodałem sobie 2 kafelki. W pierwszym ustawiłem typ przełącznika na selektor i wybrałem opcje wyłączenia dekodera, wyciszania i zmiany głośności.
Miałem duże problemy aby wpisać jako akcje wyborów polecenia pythona. Obszedłem to w taki sposób, że napisałem oddzielne skrypty w bashu dla każdej akcji i ich lokalizacje podałem w Domoticzu. Poniżej skrypt o nazwie mute.sh wyciszający dźwięk.
#! /bin/sh /usr/bin/python /home/domoticz/domoticz/scripts/send_key2ncplus.py MUTE
Dobrze byłoby jeszcze dodać sterowanie programami. Robimy to analogicznie. Jako, że skrypt emuluje naciśnięcie przycisków pojawia się mały problem przy programach o wielocyfrowych numerach. Z tym poradziłem sobie modyfikując skrypt w bashu. Poniżej skrypt uruchamiający program DOMO+.
#! /bin/sh /usr/bin/python /home/domoticz/domoticz/scripts/send_key2ncplus.py 2 /usr/bin/python /home/domoticz/domoticz/scripts/send_key2ncplus.py 3
Powyżej obraz selektora z dodanymi programami tvn24, HGTV i DOMO+.
Sterowanie działa bardzo fajnie. Cała jego siła tkwi w zbudowanych scenach i zdarzeniach. Pomimo delikatnej prowizorki tego rozwiązania na razie ze mną zostaje. Jeżeli, ktoś ma pomysł jak wyeliminować skrypty w bash i dodać bezpośrednio polecenia pythona w selektorze proszę o radę w komentarzach.
Ha! Dziękuję bardzo! Widziałem ten plugin, nawet starałem się do tego podejść, ale poległem na uzyskaniu UUID. Jak widać – warto doprowadzać tematy do końca. Gratulacje 🙂
PolubieniePolubienie
U mnie działa bezpośrednio w domoticzu taka akcja:
„script:///usr/bin/python /home/orangepi/domoticz/scripts/send_key2ncplus.py POWER”
Oczywiście, ścieżka dostępu do pliku u każdego może być inna.
PolubieniePolubienie
Hej,
dzięki za artykuł! Skrypt działa bez zarzutu. Czy udało Ci się raportować do Domoticz informacje zwrotne z dekodera, tzn. aby faktycznie wiedzieć, że w danej chwili jest włączony jeśli naciśniesz przycisk na pilocie.
Do włączenia i wyłączenia mamy tą samą komendę „POWER” i tutaj właśnie mam problem czy dekoder jest faktycznie włączony czy też nie.
Dzięki.
PolubieniePolubienie