xPL Monkey - Home Automation - Windows Media Center



NOTICE

My involvement with xPL has come to an end. Automation has moved on considerably over the past few years, and it is now possible to buy a stand-alone controller off the shelf for a reasonable price, without having to spend hours writing your own code.

This website is being maintained as a record of my xPL development work up until 2011.

I have released the full source code of all my xPL projects into the public domain. You can download the archive from here.

Mal



  Introduction

Almost every Home Theater PC will need to respond to commands from an infra-red remote control. There are many remotes available, but what about software? How do those commands get from our remote into our HTPC application?

Fortunately, help is at hand in the form of IR Server Suite. Originally written with MediaPortal in mind, IR Server Suite is actually a stand-alone program that can be used by other applications without any need for MediaPortal to have been installed.

IR Server Suite consists of a central Windows service, to which other applications can connect via TCP/IP and receive commands from infra-red remotes and other input devices. It also allows commands to be learned, and transmitted to control TVs, set-top boxes etc, either via IR "blasters" or a serial port if the device supports it.

One more useful feature of IR Server Suite for users of Microsoft Media Center remotes is that input is diverted away from Windows. This means that all buttons can be assigned to custom uses, and will no longer trigger additional Windows events. For example, the Start button on the MCE remote will no longer cause the Windows Media Center to launch automatically.

To apply all of this to the world of xPL, there is now an application available that connects to IR Server Suite and relays commands to and from the xPL network. First, though, you will need to downlaod and install IR Server Suite.

 


  Installing IR Server Suite

IR Server Suite appears not to have it's own website (although it surely deserves one), but instead can be found on its MediaPortal forum. The current version is labeled as a test build, but it is sufficiently stable to warrent a full release. The version of IR Server Suite that was used to test xPLIRSS is Version 1.4.2 Test Build 3086, but anything more recent than that should work too.

Documentation can be found here. Download one of the zips rather than use the wiki, which has not yet been completed. Follow the instructions to install and configure IR Server Suite for you particular hardware.

 


  xPLIRSS

xPLIRSS is the application that provides a bridge between IR Server Suite and the world of xPL. Once it has been downloaded and installed, run xPLHal Manager (or equivalent), and configure the server name and port used by IR Server Suite. The defaults are 'localhost' and '24000'. You will also need to perform the usual xPL configuration task of changing the instance name from 'default' to something of your choosing. Once configured, you should see some xPL log.basic messages containing details of supported devices and a list of available blasters. You should also start seeing xPL remote.basic trigger messages every time a button on the remote or other input device is pressed.

To learn a command, send an xPL remote.basic command message to xPLIRSS containing the name of the command as the keys value, and the line 'learn=true', as below. Note: 'learn=true' is a custom extension of the remote.basic schema (as is allowed by the protocol), so you will not find it mentioned in the schema documentation.


xpl-cmnd
remote.basic
{
keys=channel-up
learn=true
}

Once sent, hold your remote as close as possible to the PC IR receiver and press the button you wish to learn. If successful, the data for the command will be saved in a file named keyname.ir (replace keyname with the keys value you passed in the learn command), in your common documents folder, which on Vista for example is usually found at C:\Users\Public\Documents\xPL\irss.

To replay the command, send an xPL remote.basic command message with the same keys value, and with a device name matching one of the possible blaster outputs mentioned in the log.basic message generated when xPLIRSS is first started or reconfigured. For example:


xpl-cmnd
remote.basic
{
keys=channel-up
device=Port_1
}

Support is provided through the xPL Forums.





Platforms: Windows 2000 / XP / MCE / Vista / Win7
Version: 1.2.0
Filesize: 512kb
Updated: 27th September 2009

Download