I tried the one way operation by removing the incoming data code. It didn't seem to fix the problem. I have noticed though that if I ask it to change channels twice then it will work. Also, looking at the logs, it appears that it is sending the commands, but the box seems to be ignoring them sometimes. One thing I did that seems to have helped out was in the code for the send commands on the number keys, I put a "sleep 0.5" command in front of each number.