[Сценарий] Android TV. Использование пульта телевизора для управления

Не требует установки программ или изменения файлов

Модераторы: immortal, newz20

Ответить
mexail
Сообщения: 7
Зарегистрирован: Пт мар 25, 2016 9:10 pm
Благодарил (а): 3 раза
Поблагодарили: 7 раз

[Сценарий] Android TV. Использование пульта телевизора для управления

Сообщение mexail » Пт окт 20, 2017 2:44 pm

Год назад научил телевизор LETV на Android отслеживать нажатие кнопок на пульте телевизора и запускать сценарии в Majordomo (включаю/выключаю светильники, радио и проч.).
Телевизор у меня постоянно включен 24ч, я только отключаю экран. Нужен ROOT, busybox и Tasker на телеке.
За основу брал тему с 4pda:
https://4pda.ru/forum/index.php?showtop ... ry23702923

Написал/спер скрипт и запускаю его единоразово при включении телевизора и дальше он постоянно работает с телевизором. Не смог добиться автозапуска.

Потратил много времени, так как в этом не очень разбираюсь и действовал методом тыка)
Поделюсь, может кому-нибудь будет полезен и кто-нибудь тоже сможет повторить...
Для меня это одна из самых полезных функций в Majordomo, пользуюсь ежедневно))
В принципе можно настроить и на управление с телефона на android - нажал кнопку камеры/громкости в домашней сети и также включил свет/увеличил громкость majordomo. Для телефона будет попроще скрипт.

Вот такой скрипт я запускаю(Run Shell) в Tasker:
СпойлерПоказать

Код: Выделить всё

export SHELL=/system/bin/sh

DEV_IR="/dev/input/event0"
DEV_NAME="IR Receiver" 
#тут меняем на имя своего пульта
LOG_NAME="/var/sipkey.log"
# далее указать коды своих кнопок. Узнать можно через getevent (см. 4pda)
KEY_0="0004 0004 00006545"
KEY_1="0004 0004 00006501"
KEY_2="0004 0004 00006502"
KEY_3="0004 0004 00006503"
KEY_4="0004 0004 00006504"
KEY_5="0004 0004 00006505"
KEY_6="0004 0004 00006506"
KEY_7="0004 0004 00006507"
KEY_8="0004 0004 00006508"
KEY_9="0004 0004 00006509"
KEY_UP="0004 0004 0000651f"
KEY_DOWN="0004 0004 0000651e"

echo "$(date) Starting sipkey..." >> "$LOG_NAME"
for i in /sys/class/input/event*
do
  # echo -n "$i"
  # cat "$i/device/name"
  # echo  "$(basename "$i")"
  # cat "$i/device/name" | grep -q 'Mic' && DEV_IR="$(basename "$i")"
  if  cat "$i/device/name" | grep  -q "$DEV_NAME"
   then DEV_IR="/dev/input/$(basename "$i")";
  fi
done
echo "$DEV_NAME on chanel: $DEV_IR" >> "$LOG_NAME"

(script -q -c "getevent $DEV_IR" /dev/null | 
 while read code
    do
      # echo "$code"
      if echo "$code" | grep -q  "$KEY_7"        # "^0001 0191 00000001.S"
         then
           # echo "blue - $code"
           curl "http://192.168.1.4/objects/?script=radio"                    
      fi

      if echo "$code" | grep -q "$KEY_8"
         then
           # echo "red - $code"
           curl "http://192.168.1.4/objects/?script=svet8"
           continue
      fi
      if echo "$code" | grep -q "$KEY_2"
         then
           # echo "red - $code"
           curl "http://192.168.1.4/objects/?script=pogoda"
           continue
      fi
      if echo "$code" | grep -q "$KEY_1"
         then
           # echo "red - $code"
           curl "http://192.168.1.4/objects/?script=timeNow"
           continue
 fi
      if echo "$code" | grep -q "$KEY_4"
         then
           # echo "red - $code"
           curl "http://192.168.1.4/objects/?script=svet4"
           continue
      fi
      if echo "$code" | grep -q "$KEY_6"
         then
           # echo "red - $code"
           curl "http://192.168.1.4/objects/?script=svet6"
           continue
      fi
      if echo "$code" | grep -q "$KEY_9"
         then
           # echo "red - $code"
           curl "http://192.168.1.4/objects/?script=svet9"
           continue
      fi
      if echo "$code" | grep -q "$KEY_DOWN"
         then
           # echo "red - $code"
           curl "http://192.168.1.4/objects/?script=volume_down"
           continue
      fi
      if echo "$code" | grep -q "$KEY_UP"
         then
           # echo "red - $code"
           curl "http://192.168.1.4/objects/?script=volume_up"
      fi
    done
) < /dev/null > /dev/null 2>/dev/null &
За это сообщение автора mexail поблагодарили (всего 2):
grifonsk (Сб ноя 24, 2018 8:35 pm) • S_Nick (Ср окт 14, 2020 11:32 pm)
Рейтинг: 2.33%
Ответить