Figured out what the problem was, after observing the little IR transmitter.<br><br>When I was running the script from the command line, the IR transmitter was flashing 3 times; when from MythTV, only twice.<br><br>Changed the script to hit enter after changing channels (the $needs_enter line).<br>
<br><br><br>Thanks to everyone who replied...without this list, I would have probably given up a while ago!<br><br><br><br>____________________________________________________________________________________<br><br>My change channel script for a Hauppauge<b></b> PVR-150 and a Comcast-supplied Motorola DCT700 cable box:<br>
<br><br>#!/usr/bin/perl<br><br># Script obtained from<br># <a href="http://www.blushingpenguin.com/mark/lmilk/change_channel">http://www.blushingpenguin.com/mark/lmilk/change_channel</a><br>#<br>#<br># make sure to set this string to<br>
# the corresponding remote in /etc/lircd.conf<br>$remote_name = "blaster";<br><br># Let's assume you don't need to press enter after you punch in a<br># channel number. Change this to 1 if your cable box expects you press<br>
# enter after each command<br>$needs_enter = 1;<br><br># Change this to point to your rc executable<br>$rc_command = "/usr/bin/irsend";<br><br># This subroutine actually sends the signal to the cable box<br>sub change_SIGNAL {<br>
my($SIGNAL) = @_;<br> system ("$rc_command SEND_ONCE $remote_name $SIGNAL");<br>}<br><br>$SIGNAL=$ARGV[0];<br>open F, ">> /home/mythtv/channel.log";<br>#open F, ">> /var/log/channel.log";<br>
print F "channel changing $SIGNAL\n";<br>close F;<br>print "channel changing $SIGNAL\n";<br><br># Checks if $SIGNAL begins with a digit<br># If it detects that the string is made up of digits, then it puts<br>
# spaces between the digits. Ex. 1234 becomes 1 2 3 4<br>if ( $SIGNAL =~ /^\d+$/ )<br>{<br> my $length = length($SIGNAL);<br> my $counter = 0;<br> my $temp;<br><br> while( $counter < $length )<br> {<br>
$temp .= substr($SIGNAL,$counter,1) ." ";<br> $counter++;<br> }<br><br> change_SIGNAL($temp);<br>}<br>else<br>{<br> # argument we passed was not made up of digits, so it must be a<br> # command that does something other than channel changing on the<br>
# cable box<br> change_SIGNAL($SIGNAL);<br>}<br><br># Do we need to send enter<br>if ( $needs_enter )<br>{<br> system ("$rc_command SEND_ONCE $remote_name ENTER");<br>}<br>