Dish-change-channel-lirc.sh
From MythTV Official Wiki
Note: The correct title of this article is dish-change-channel-lirc.sh. It appears incorrectly here due to technical restrictions.
| Author | Daniel Kristjansson |
| Description | A simple script for changing the channel on a DISH network receiver using a LIRC transmitter. |
| Supports |
dish-change-channel-lirc.sh is a simple script for changing the channel with a LIRC transmitter.
#!/bin/sh
# This script is provided without any warranty of fitness to whoever
# wishes to use it. It has been used by me for many months with the
# VIP211 receivers. -- Daniel Kristjansson (March 20th, 2008)
# If you have a separate IR reciever you will want to give it "/dev/lircd"
# and use something like "/dev/lircd1" for the transmitter.
# If the tranmitter is on a remote LIRC server, use the ip/hostname:port
# with -a to address it.
DEVICE="-d /dev/lircd"
#DEVICE="-d /dev/lircd1"
#DEVICE="-a hostname:port"
# Use dish1, dish2 .. dish16 depending on which id you are using
# Every dish receiver can be assigned a different remote code, so
# that you can have multiple receivers in one room, and controlled
# by the same LIRC transmitter.
REMOTE_NAME=dish1
# This is the command passed in from MythTV.
cmd="$1"
# First, leave sleep mode..
irsend $DEVICE SEND_ONCE $REMOTE_NAME select
sleep 0.3
case $cmd in
[0-9]*)
# make sure we leave any encrypted channel..
# Note: this IR send slows down MythTV LiveTV, if you want faster
# channel changing in LiveTV remove it. However if someone ever
# changes to a channel you don't get, either with this script or
# manually, you need this "up" to leave that channel.
irsend $DEVICE SEND_ONCE $REMOTE_NAME up
sleep 0.3
for digit in $(echo $1 | sed -e 's/./& /g'); do
irsend $DEVICE SEND_ONCE $REMOTE_NAME $digit
# If things work OK with sleep 1, try this for faster channel changes:
sleep 0.15
done
# Send a select so that this channel change takes immediately.
irsend $DEVICE SEND_ONCE $REMOTE_NAME SELECT
;;
*)
irsend $DEVICE SEND_ONCE $REMOTE_NAME $cmd
;;
esac