I wanted to report where I ended up with this. I used an Arduino Pro Mini, 3.3V, 8MHz, with the regulator and power LED removed. It's powered directly by an 18650 Li-Ion battery. Pictures attached.
The remote sleeps in Power_Down mode, with any keypress waking it up via a pin change interrupt. Apparently it awakens pretty quickly because I have yet to experience an instance when it wakes up but the keyboard.h library fails to detect the first keypress. And I'm doing a bunch of pin resetting stuff before I actually read the keypress.
As best I can tell, when sleeping, the current draw is a bit below 0.5µA. So there's no ON/OFF switch.
I have the following functions enabled:
1. If I am already watching a Sling channel, entering a new channel causes the Arduino to issue two Back commands to get back to the My Channels line, then Left or Right commands to get to the new channel, and finally an OK command to start the channel playing.
2. If the Arduino loses its place for some reason, entering the actual current playing channel number followed by the "#" key causes the Arduino to reset its currentChannel variable to that channel.
3. If I enter the "*" key without a channel number, the Arduino will send the power toggle command to the TV, and issue a Home command to the Roku, which also terminates all streaming. So that's effectively a single-key shut-down of the TV and the Roku.
4. If I enter the "#" key without a channel number, the Arduino issues commands to toggle the TV's input between antenna and HDMI.
5. If I enter the desired channel number followed by the "*" key, from any state, the Arduino will issue the needed commands to:
a. Home the Roku
b. Go Right to the Sling icon
c. OK on the Sling icon to select it
d. Wait for Sling to begin
e. Move Down to the My Channels line
f. Move Left or Right as needed to get to the desired channel
g. OK on that channel to begin watching it
So far it seems to be working quite well.
Thanks for everyone's help on this. I may put the Arduino sketch on Github at some point, although I "presented" this to my local OSH group meeting last evening, and got the same comments I got here - basically why didn't you do it through the network. So it appears unlikley anyone else would be interested in this IR version for this use, but someone may have a use for the keypad and sleeping stuff.