Я також написав пару сценаріїв, щоб допомогти у цьому. Я пішов трохи далі, ніж CaptainRewind, хоча він зробив гарну роботу. Це просто сценарій оболонки, написаний для керування моїм телевізором, тому я не включав нічого, що не підтримує (наприклад, керування гучністю та каналами; я все ще шукаю спосіб зробити будь-яке з них, не купуючи багато зайвих апаратне забезпечення), і воно включає в себе деталі, що стосуються налаштування, такі як "tv input raspi", які є синонімом "tv input 3", але я залишив їх, щоб побачити, як зробити такі налаштування для себе.
Ви можете ним легко користуватися. Якщо розмістити його в / usr / local / bin / tv, видавши такі команди, як "tv on", tv off "або" tv input 1 ", або ви можете просто помістити його у свій домашній каталог як tv. ш і використовуйте його прямо звідти.
Я сподіваюся, що це допомагає деяким людям.
#!/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
це робити .