Integracja z Android TV

Awatar użytkownika
klew
Posty: 8184
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

EDIT: pierwsza pełna wersja tutoriala jest tutaj: viewtopic.php?p=145596#p145596

---

Zainspirowany tym postem: viewtopic.php?t=12462 ; zapowiedziałem, że poszukam czy da się taką integrację zrobić ogólnie na "android tv" niezależnie od używanej apki, czyli aby to działało z Netflixem, Youtube, Disney+, HBO, wp pilot, itd :)

Temat jeszcze nie jest gotowy, ale da się to zrobić. Są dwie możliwości:
1. Zrobienie apki na android tv, która będzie urządzeniem w Supli, będzie działać w tle na tv i nasłuchiwać tego co się dzieje, a o zdarzeniach informować przez Wyzwalacze Akcji w Supli. Niestety Android to nie moja bajka i na chwilę obecną nie mam czasu na zagłębienie się w ten temat - ale jeśli ktoś chciałby takie coś zrobić, to byłby ciekawy projekt :)
2. Używanie narzędzie deweloperskich "adb" pozwala na odczyt takiej infrmacji. Na tym się skupię w dalszej częsci tego opisu.

Do obsługi będzie potrzebny nam komputer z Linuxem. Z tego co widzę "adb" jest też dostępny na malinki, ale nie sprawdzałem.

Po krótkim researchu, znalazłem, że aktualny stan odtwarzania można odczytać używając polecenia:

Kod: Zaznacz cały

adb shell dumpsys media_session
Aby to działało, to trzeba włączyć narzędzia deweloperskie na android tv (u mnie trzeba było kilkać z 10x w ustawieniach->infomracje->wersja builda, aby to odblokować), a następnie włączyć opcję "debugowanie usb", która pozwala na dostęp przez sieć wifi czy po kablu.

Następnie na komputerze (ja używam Linuxów na bazie Debiana/Ubuntu, więc taki przykład daję) instalujemy adb:

Kod: Zaznacz cały

sudo apt install adb
i próbujemy się połączyć z tv. Potrzebny jest nam adres IP telewizora (można w ustawieniach tv to znaleźć, albo na routerze), np. 192.168.1.10

Kod: Zaznacz cały

adb connect 192.168.1.10
Połączenie powinno zostać odrzucone, ale na TV wyskoczy komunikat o tej próbie i trzeba wybrać opcję "zawsze zezwalaj na połączenie".
Następnie łączymy się jeszcze raz i już powinno się połączyć.

Do wydodbycia stanu używamy polecenia:

Kod: Zaznacz cały

adb shell dumpsys media_session
Tych "media session" może być kilka, ale ta aktywna jest zawsze wyświetlana jako pierwsza. W polu "state=PlaybackState" możemy odczytać stan:
1 - stop
2 - pauza
3 - odtwarzanie

Jeszcze są inne kody, ale numerów teraz nie pamiętam, odpowiadające za: brak, błąd, przewijanie do przodu, do tyłu itp.

Pojedynczą cyferekę stanu aktywnej media session możemy wyłuskać takim poleceniem:

Kod: Zaznacz cały

adb shell dumpsys media_session | grep -E "Media button session is.*userId=0" -A11 | grep -oE "state=[0-9]+" | grep -o "[0-9]*"
U mnie TV się kompletnie wyłącza z WiFi, gdy go wyłączymy, więc "adb shell" wtedy wisi. Po dłuższym czasie adb rozłącza urządzenie, więc trzeba to będzie jeszcze jakoś na poziomie skryptów obsłużyć.

Dodatkowo można sterować telewizorem poprzez udawanie wciśnięcia przycisków. Dla chętnych są tam nawet infomracje o tym co aktualnie jest odtwarzane i wiele innych.

Także pozostaje dorobić obsługę tego w naszym sofcie. Planuję dodać możliwość podglądu stanu i sterowania (włącz = play, wyłącz = pauza) przy pomocy kanału przekaźnika. Stan też będzie "dwustanowy", bo na tyle pozwala przekaźnik, ale będzie info o odtwarzaniu i pauzie/stop.
Dodatkowo soft będzie wysyłał Wyzwalacze Akcji na różne stany: STOP, PAUZA, PLAY, itd. oraz na przejścia między stanami.

Jest to rozwiązanie oparte o aktywne odpytywanie stanu urządzenia, więc ta komenda adb shell będzie odpalana pewnie co 1 s i taki będzie czas reakcji wyzwalaczy.

Stay tuned :P

PS: jeśli ktoś umie androida, to taka apka odczytująca stan i pozwalająca na sterowanie telewizorem nie powinna być zbyt trudna do zrobienia. Gdyby tam dodać normlane logowanie do Supli (podaj mail, adres serwera, oraz włącz rejestrację urządzeń), to taka apka integrująca z TV byłaby dużo prostsza dla przeciętnego zielonego użytkownika trzech kółeczek i patyczków ;)
Widzimy się na Supla Offline Party vol. 2 :!:
matrix0606
Posty: 333
Rejestracja: wt lis 08, 2022 9:05 pm

Sporo lektury, ale będę zagłębiał.
Vivo V21 5G 8G RAM + 4G SWAP
Funtouch OS 12 Global
MOBO - MSI B350 Tomahawk
GPU - GTX1060 6G
CPU - Ryzen5 1400 3,2G
PSU - SPC Vero L2 500W 80 Plus Bronze
RAM - HyperX 2x8GB 3200MHz CL16 Predator RGB
Awatar użytkownika
wojtas567
Posty: 2209
Rejestracja: ndz kwie 03, 2016 7:16 pm
Lokalizacja: Olsztyn

Z suplą TV nie mam zintegrowanego i nie mam androida TV ale OS w LG pięknie steruje się z HA zaczynając od zmiany kanału przez wszystkie wejścia programy itp i oczywiście do wyłączenia TV i tu faktycznie też jest koniec. TV mam podłączone po kablu. Mam nawet info o tym jaki kanał jest wyświetlany w danej chwili.
Zerknij może tam uda Ci się wyciągnąć więcej informacji jak to jest zrobione. A co do sterowania z supli to może wykorzystać rolety masz 4 przyciski na jednym oknie.
Pozdrawiam
Wojtek
Awatar użytkownika
klew
Posty: 8184
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

wojtas567 pisze: śr lut 08, 2023 4:28 pm Z suplą TV nie mam zintegrowanego i nie mam androida TV ale OS w LG pięknie steruje się z HA zaczynając od zmiany kanału przez wszystkie wejścia programy itp i oczywiście do wyłączenia TV i tu faktycznie też jest koniec. TV mam podłączone po kablu. Mam nawet info o tym jaki kanał jest wyświetlany w danej chwili.
Zerknij może tam uda Ci się wyciągnąć więcej informacji jak to jest zrobione. A co do sterowania z supli to może wykorzystać rolety masz 4 przyciski na jednym oknie.
WebOS wydaje się być przygotowany do tego typu integracji. Tam działa nawet autodetekcja z poziomu HA.
Niestety dla Android TV nie widać podobnego rozwiązania. Z opisu pluginu do HA, który integruje Android TV wynika, że używają dokładnie tego interfejsu, który udało mi się namierzyć - czyli odpalanie komend po "adb shell". Odczyt stanu też jest realizowany przez cykliczne odpytywanie.

Ja jestem użytkownikiem Androdi TV, więc taką też integrację dla własnych potrzeb zrobię. WebOS zdaje się mieć wystawiony jakiś interfejs do sterowania, więc tam może to być nawet prostsze, jeśli ktoś by chciał to zgłębić.
Widzimy się na Supla Offline Party vol. 2 :!:
Awatar użytkownika
YoMan
Posty: 2250
Rejestracja: czw kwie 30, 2020 5:18 pm
Lokalizacja: Częstochowa

skoro już tak grzebiecie to natknął się ktoś na opcję Tizen ?? ;)
YoMan
________________________________________
Wziąłem udział w Supla Offline Party 2023 ;)
Awatar użytkownika
klew
Posty: 8184
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

YoMan pisze: śr lut 08, 2023 5:14 pm skoro już tak grzebiecie to natknął się ktoś na opcję Tizen ?? ;)
Jest jakaś integracja do Home Assistant (https://github.com/jaruba/ha-samsungtv-tizen)
Więc: da się.
Widzimy się na Supla Offline Party vol. 2 :!:
Awatar użytkownika
uchnast.michal
Posty: 1074
Rejestracja: wt cze 04, 2019 11:37 am

klew pisze: śr lut 08, 2023 5:24 pm
YoMan pisze: śr lut 08, 2023 5:14 pm skoro już tak grzebiecie to natknął się ktoś na opcję Tizen ?? ;)
Jest jakaś integracja do Home Assistant (https://github.com/jaruba/ha-samsungtv-tizen)
Więc: da się.
Potwierdzam, integracje Samsunga i Sony w HA super działają.
Ostatnio zmieniony śr lut 08, 2023 8:48 pm przez uchnast.michal, łącznie zmieniany 1 raz.
e-talking............
Byłem tam - Supla Offline Party 2023
edm
Posty: 439
Rejestracja: pn sty 15, 2018 6:18 pm

Dla telewizorów Sony i Philips Android używałem "tej metody" do usunięcia niepotrzebnych programów, którymi producenci nas obdarowują.
Programy te często wyświetlane są na tzw. ekranie Home i bywa że zamulają telewizor. Za pomocą pilota w tradycyjny sposób nie da się ich usunąć. Tutaj tylko wzmianka https://community.sony.co.uk/t5/android ... -p/2403349
Mam pełny opis jak to robiłem jakby ktoś był zainteresowany, prv.
Wziąłem udział w Supla Offline Party 2023 :D
Awatar użytkownika
klimasstudio
Posty: 1114
Rejestracja: śr sie 28, 2019 9:35 pm
Lokalizacja: localhost
Kontakt:

klew pisze: śr lut 08, 2023 8:52 am Zainspirowany tym postem: viewtopic.php?t=12462
Jestem w szoku że aż tak wsadziłem kij w fajne mrowisko. Twój post chyba z 3 razy przeczytałem o.O jestem teraz w szoku. Teraz nie będę mógł spać bo będę rozkminial jak się zabrać do tego..

Ja używam Canal+ BOX więc tam poszukac muszę opcji debugowania itp. Lub faktycznie jakaś apke wcisnąć co by w tle działała.

No nie zasnę chyba dziś albo coś czuje ze weekend zniknę... :mrgreen: :mrgreen:

P.S - Już widzę że powinienem mieć takie opcje :D

Link: https://forum.android.com.pl/topic/3735 ... tv-boxie/5

Lets get party started :D
Więc chodź OSUPLUJE Ci dom :mrgreen:

Druk 3D - > https://klimastech.eu.org/druk-3d
Awatar użytkownika
shimano73
Posty: 1968
Rejestracja: ndz lut 28, 2016 12:27 pm
Lokalizacja: Orzesze
Kontakt:

Spróbowałem na moim TLC i działa :D , czekam na więcej :D
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie

Wezmę udział w Supla Offline Party 2024 :)
ODPOWIEDZ

Wróć do „Projekty użytkowników”