W dzisiejszym poście będę chciał przedstawić jak za pomocą prostych skryptów można sterować telewizorami marki Philips oraz wyświetlać na ich ekranie dowolny tekst.
Telewizory marki Philips obsługują protokół JSON. (Prawdopodobnie telewizory po 2010 roku)
Daje to posiadaczom telewizorów tego producenta kilka możliwości.
Aby zacząć pracę należy zalogować się do Naszego raspberry przez SSH o czym pisałem w poprzednich wpisach.
Następnie za pomocą poniższej komendy ściągamy potrzebne pliki:
Za pomocą kolejnej komendy rozpakowujemy nasz plik:
sudo tar -xvf JSTx-0.24_rpi.tar.bz2
I na koniec przenosimy wszystko do odpowiedniego katalogu:
mv JSTx-0.24 /opt/JSTx
Kolejnym krokiem będzie przejście do katalogu:
cd /home/pi/domoticz/scripts
Utworzenie pliku (nazwa może być dowolna):
nano display.sh
W nowo utworzonym pliku wklejamy poniższą linijkę (wszystko ma być w jednej linii) gdzie na jej końcu wpisujecie adres IP Waszego Telewizora:
/opt/JSTx/JSTx -F /opt/JSTx/font/decker.ttf -s 40 -W 1280 -H 720 -w 1200 -h 60 -x 40 -y 40 -t "$*" t -T 5 -b "100,100,100,128" -f "255,255,255,255" --dfb:quiet --remote=adres IP Waszego Telewizora
Czyli np.:
/opt/JSTx/JSTx -F /opt/JSTx/font/decker.ttf -s 40 -W 1280 -H 720 -w 1200 -h 60 -x 40 -y 40 -t "$*" t -T 5 -b "100,100,100,128" -f "255,255,255,255" --dfb:quiet --remote=192.168.0.12
Zapisujemy Plik poprzez naciśnięcie CTRL+X i nadajemy mu odpowiednie uprawnienia przez komendę:
sudo chmod +x display.sh
Aby sprawdzić czy wszystko działa należy wpisać:
./display.sh Dowolny tekst jaki chcecie by się wyświetlił
Wszystko już powinno działać i będziemy mogli wykorzystać ten skrypt do wyświetlania np. statusu różnych Przełączników.
Aby to zrobić należy przejść zakładki „Przełączniki” w Domoticz i wejść w Edycję jednego z nich a tam w zakładce „Włącz akcję” lub „Wyłącz akcję” wpisujemy:
script:///home/pi/domoticz/scripts/display.sh Dowolny tekst, który chcemy by się nam wyświetlił na telewizorze
np.:script:///home/pi/domoticz/scripts/display.sh Włączono Światło w Salonie
script:///home/pi/domoticz/scripts/display.sh Wyłączono Światło w Salonie
Jeżeli robiliście wszystko zgodnie z tym poradnikiem to po włączeniu i wyłączaniu danego przełącznika dany tekst powinien wyświetlić się na Waszym telewizorze.
Położenie tekstu. Jego rozmiar i kolory można modyfikować poprzez zmianę parametrów (40 -W 1280 -H 720 -w 1200 -h 60 -x 40 -y 40 -t „$*” t -T 5 -b „100,100,100,128” -f „255,255,255,255”) znajdujących się w pliku display.sh.
Kolejnymi możliwościami jakie daje Jointspace jest możliwość sterowania telewizorem za pomocą prostych skryptów.
Cały protokół opisany jest na tej stronie.
Aby wejść do jointspace w Waszym telewizorze należy na komputerze zalogowanym do tej samej sieci Wifi co Wasz telewizor w dowolnej przeglądarce internetowej wpisać:
adres ip Waszego telewizora:1925
Czyli, np.:
192.168.0.12:1925
Powinno się Wam wyświetlić coś takiego:
Gdzie macie pełną dokumentację.
W przypadku telewizorów z lat 2014 i 2015 w adresie zamiast http://192.168.0.12:1925/1/doc/API.html będzie prawdopodobnie 5tka czyli http://192.168.0.12:1925/5/doc/API.html co będzie ważne w przypadku dalszego kodowania.
Telewizory z roku 2016 używają prawdopodobnie 6tki i innego portu o czym można przeczytać tutaj i pobrać odpowiedni plik.
Ja mam telewizor z roku 2013 i do niego będę się odnosił.
Po zalogowaniu możecie przeczytać co za pomocą jointspace będziecie mogli obsługiwać. Jak widać będą to:
- ambilight
- głośność
- lista kanałów
- lista źródeł
- lista komend
- informacje o tv
Skupię się głównie na kanałach i liście komend a także głośności
W każdej zakładce macie dokładnie opisane co musicie wpisać by wywołać odpowiednią akcję i tak dla przykładu aby zaczytać listę wszystkich kanałów i ich numerów należy wpisać w przeglądarce:
http://wasz adres ip:1925/1/channels
Powinno wyświetlić się mniej więcej coś takiego:
Interesować Nas będą czterocyfrowe numery, które zaznaczyłem w czerwonym prostokącie – odpowiadają one konkretnemu kanałowi, który będziemy mogli włączyć za pomocą prostego skryptu.
Aby go utworzyć tworzymy dowolny plik, np.:
sudo nano tv4.sh
W pliku tym wklejamy:
curl -X POST -H "Content-Type: application/json" -d '{ "id": "1890"}' http://192.168.0.12:1925/1/channels/current
Gdzie zamiast 1890 wpisujemy numery, które zaczytaliście z Waszego telewizora.
Nadajecie plikowi odpowiednie uprawnienia:
sudo chmod +x tv4.sh
Następnie po wywołaniu komendy:
./tv4.sh
Wasz telewizor powinien przełączyć się na odpowiedni kanał.
Dla osób z telewizorami z lat 2014 i 2015 wpisujemy zamiast http://192.168.0.12:1925/1/channels/current –> http://192.168.0.12:1925/5/channels/current
Kolejną fajną funkcją jest obsługa przycisków z pilota. I tak np. za pomocą skryptu utworzonego w ten sam sposób możecie wyłączyć Wasz telewizor poprzez wpisanie w utworzonym dowolnym pliku polecenia:
curl -X POST -H "Content-Type: application/json" -d '{ "key": "Standby"}' http://192.168.0.12:1925/1/input/key
Oczywiście wszędzie tam gdzie jest mój nr ip (192.168.0.12) wpisujecie swój.
Aby wyświetlić wszystkie możliwe klawisze jakie możecie symulować w pole przeglądarki internetowej należy wpisać:
http://ip-address TV:1925/1/input/key
Gdzie na dole ekranu wyświetlą się Wam wszystko możliwe komendy jakich możecie użyć zmieniając w skrycie „Standby” na np. „Mute”, „VolumeUP” itd. (w przypadku gdy macie podłączony TV do amplitunera komendy VolumeUP i VolumeDown nie działają).
Dla osób, które mają telewizory z lat 2014 i 2015 zamiast http://192.168.0.12:1925/1/input/key wpisujemy http://192.168.0.12:1925/5/input/key.
Ostatnią opcję jaką opisze jest sterowanie głośnością i ustawienie konkretnej jaka Nas interesuje. Aby to zrobić tak samo jak wcześniej tworzymy nowy plik o dowolnej nazwie, w którym wklejamy:
curl -X POST -H "Content-Type: application/json" -d '{ "current": "27"}' http://192.168.0.12:1925/1/audio/volume
Gdzie zamiast 27 wpisujemy interesującą Nas wartość. (w przypadku gdy macie podłączony TV do amplitunera ta funkcja nie działa)
Dla osób, które mają telewizory z lat 2014 i 2015 zamiast http://192.168.0.12:1925/1/audio/volume wpisujemy http://192.168.0.12:1925/5/audio/volume
Aby to wszystko wykorzystać w systemie Domoticz możemy np.:
Utworzyć wirtualny przełącznik wyboru. W zakładce „Sprzęt” w Domoticz tworzymy zwykły Dummy Switch i jako jego typ wybieramy znajdujący się na samym dole „Przełącznik wyboru”
Następnie przechodzimy do zakładki „Przełączniki” i wchodzimy w edycję nowo utworzonego Przełącznika.
Opiszę wszystko na przykładzie Radia jakie utworzyłem w systemie Domoticz (opiszę to w osobnym projekcie bo jest to dosyć skomplikowane).
Wszystko powinno wyglądać mniej więcej jak na zdjęciu poniżej:
W wierszu „Poziomy wyboru” wpisujecie nazwę poziomu i naciskacie OK.
Może to być np. nazwa konkretnego kanału:
TVP, Polsat, TVN, MTV itd. (dodajecie ich kilka)
Następnie dla każdego kanału w raspberry przez SSH tworzycie konkretny skrypt o czym pisałem powyżej.
Kolejnym krokiem jest w wierszu „Akcje wyborów” wpisanie przy każdym z poziomów ścieżki dostępu do Waszego skryptu w Raspberry.
Dzięki temu przy pomocy takiego przełącznika będziecie mogli przełączać wcześniej zdefiniowane kanały.
Poniżej wklejam przykład gdzie zdefiniowałem kilka stacji radiowych a także kilka poziomów do ustawiania głośności (opiszę ten projekt innym razem:)
Jak widzicie na powyższym zdjęciu jest tam też przycisk „Wyłącz TV” po kliknięciu którego mój telewizor się wyłącza o czym pisałem powyżej.
Powodzenia!
4 Odpowiedzi
Jakub
witam, czy wiesz może jak wykorzystać plik philips.py w telewizorach z 2016 roku?
Agnieszka Kostrzewa
Witam. Z tego co czytam jointspace w telewizorach z 2016 nie jest zaimplementowany i nie działa 🙁 Pozdrawiam
Maciej
Czy udało się komuś uruchomić wyświetlanie komunikatów na TV Philips z 2019r. z Android TV
Agnieszka Kostrzewa
Mi niestety nie 🙁