Я также написал пару сценариев, чтобы помочь с этим. Я пошел немного дальше, чем CaptainRewind, хотя он хорошо поработал. Это всего лишь сценарий оболочки, написанный для управления моим телевизором, поэтому я не включил ничего, что он не поддерживает (например, регуляторы громкости и каналов; я все еще ищу способ сделать любой из этих вариантов, не покупая много дополнительного аппаратного обеспечения) и включает специфические для установки детали, такие как «tv input raspi», являющийся синонимом «tv input 3», но я оставил их так, чтобы вы могли видеть, как сделать такие настройки для себя.
Вы можете легко использовать его, если вы поместите его в / usr / local / bin / tv, введя такие команды, как "tv on", "tv off" или "tv input 1", или вы можете просто поместить его в свой домашний каталог как tv. Sh и использовать его прямо оттуда.
Я надеюсь, что это помогает некоторым людям.
#!/bin/bash
# must be called with a parameter
# tv.sh [command]
# will send the associated command to the TV over CEC.
if [ $# -lt 1 ] #Check to see if at least one parameter was supplied
then
echo "Must be called with the command to send to the television"
echo "Examples include on, off, and input."
echo "example: " $0 "input PC" # $0 is the name of the program
echo "For help, use: " $0 " -? "
exit 1
fi
case $1 in
"-?") echo "Supported commands include: on, off, status, as,"
echo "input [source]" ;;
## begin list of commands.
## most of these came from http://www.cec-o-matic.com/
## more can be added, including proprietary commands.
"on") echo "on 0" | cec-client -s ;;
"off") echo "standby 0" | cec-client -s ;;
"status") echo "pow 0" | cec-client -s |grep "power status:" ;;
"as") echo "as" | cec-client -s ;;
"input")
if [ $# -ge 2 ] # if there were 2 or more parameters
then
case $2 in # check the second one
# NOTE: These must all be broadcast to work. (2nd nibble must be F)
"1") echo "tx 1F 82 10 00" | cec-client -s ;;
"bluray") echo "tx 1F 82 10 00" | cec-client -s ;; # same as 1
"2") echo "tx 1F 82 20 00" | cec-client -s ;;
"3") echo "tx 1F 82 30 00" | cec-client -s ;;
"pc") echo "tx 1F 82 30 00" | cec-client -s ;; # same as 3
"raspi") echo "tx 1F 82 30 00" | cec-client -s ;; # same as 3
"4") echo "tx 1F 82 40 00" | cec-client -s ;;
esac
else
echo "input needs a second parameter"
echo "usage: " $0 " input [input name]"
echo "input name is 1-4, bluray, pc, or raspi"
fi
;; # end of the input case
*) echo $1 "is not a recognized parameter. " $0 " -? for a list." ;;
esac
exit 0
echo "standby 0" | cec-client -s
отлично работает для моего телевизора Panasonic, хотя процесс останавливается после, и мне пришлосьkill -9
это сделать.