Intellitune - a helper utility to change channels in SageTV using the Intelliremote service.

Usage:  Intellitune Profile [Channel]
  Profile = Intelliremote Profile associated to the IR commands to drive a STB.
  Channel = Optional.  If not presented, will send the "OK Select" button, otherwise will send each character followed by "OK Select".

Background
SageTV has builtin support for the USB-UIRT IR blaster/receiver.  Unfortunately the native support for UIRT monopolizes the USB driver and prevents any other application usage.  This helper utility relies on the Intelliremote server to send channel change information on behalf of SageTV and allow other application access to the UIRT IR blaster as well.  It relies on the EXEMultiTunerPlugin setup for Sage to work correctly.  See http://forums.sagetv.com/forums/showthread.php?p=293895&postcount=2 for a rough idea on how to set up.  

This is a quick and dirty utility for my own needs.  Feel free to use it at your own risk.

Setup (with shout to MeInMaui for breaking the ice)

EXEMultiTuner stage -
1) Copy exemultituner into ...\Program Files\SageTV\Common\
2) Add the registry value:

[HKEY_LOCAL_MACHINE\SOFTWARE\Frey Technologies\Common\EXEMultiTunerPlugin]
"command"="c:\Program Files\SageTV\Intellitune.exe %DEVICE% %CHANNEL%"

(Note: Replace "c:\Program Files\SageTV\" with your path to the Intellitune.exe file you extracted from the ZIP)

3) Reboot for the new registry value to be recognized.

4) Set up the encoders in sage and tell them to use exemultituner for channel tuning. (if you have your encoders currently set up with another tuning approach - 1) write down your current channel lineup, 2) remove each device, 3) restart SageTV, 4) add new sources and select ExeMultiTuner as tuning approach, 5) restore your channel lineup).

5) Shut down sage completely and open sage.properties. Change the encoder 'device_name' (if this is your first EXEMultiTuner set up, then you can search for "StubDevice") values for the newly set up encoders to correspond to the profile in Intelliremote containing the IR codes that will drive the STB attached to the encoder. (i.e. - mmc/encoders/-1674637831/90/0/device_name=Uverse1)

Intelliremote stage -
1) Extract profiles from ZIP file for profiles into ...\AppData\Roaming\Intelliremote
(Note: Uverse.xml=all zone IR, Uverse1.xml=zone 1 IR, Uverse2.xml=zone 2 IR)
2) Add the profiles in to Intelliremote

I made this to help me control 2 Uverse VIP1200 STBs via zoned USB-UIRT blasters and SageTV.  You can make it work with other STBs by modifying the appropriate profile in Intelliremote to send the correct IR commands and having the right profile name in the 'device_name' field of the sage properties file.

Good luck!

PS - Keepalive function.
Once Intelliremote has control of the USB-UIRT, the popular STBKeepAlive routine from ShadeBlue will no longer function.  You can set up a task in Task Scheduler to fire Intellitune with just the profile (no channel) and it will send the "OK Select" button.  Schedule it at 3 hour intervals across the day and you should be fine.

