X10 Window Air Conditioner Thermostat

In my previous article, TEMPer USB Thermometer Scheduled Task/Service, I discussed a Windows utility that I made that could periodically check the room temperature using a USB thermometer.  I thought that a cool extension of this would be to use it to decide when to turn my window air conditioner on and off.  In order to control the air conditioner, I’ll be using the VexedLogic.X10 library to communicate with an X10 FireCracker to send the on and off commands.

The plugin itself it quite simple to set up and configure…


In order to set up the plugin, there are six configuration values that need to be set:

  • FirecrackerCOMPort – The serial COM port number that the FireCracker is connected to
  • HouseCode – The X10 house code that the air conditioner is set to
  • DeviceCode – The X10 device code that the air conditioner is set to
  • ShortCycleThreshold – The minimum number of minutes between an on and off cycle of the air conditioner
    • This was mainly added to prevent oversized air conditioners from turning on and off too quickly
    • If the value was set to 10, the shortest period of time between turning the air conditioner on and turning it off again would be 10 minutes
  • IdealCelsiusTemperature – The target temperature (in Celsius) that should be reached
    • If the temperature falls below, the air conditioner will be turned off
  • MaxCelsiusTemperatureDrift – The acceptable number of degrees (in Celsius) that the temperature can rise above the IdealCelsiusTemperature before turning on the air conditioner
    • This will only be effective if the ShortCycleThreshold has already elapsed

These settings are present in the VexedLogic.TemperatureMonitor.exe.config file in the appSettings node.  This is what my settings look like…

        <add key="Plugins.X10AC.FirecrackerCOMPort" value="1"/>
        <add key="Plugins.X10AC.HouseCode" value="C"/>
        <add key="Plugins.X10AC.DeviceCode" value="7"/>
        <add key="Plugins.X10AC.ShortCycleThreshold" value="10"/>
        <!-- Divde Fahrenheit temperature drift by 1.8 to get Celsius -->
        <add key="Plugins.X10AC.MaxCelsiusTemperatureDrift" value="1.67"/>
        <!-- Subtract 32 from Fahrenheit temperature and multiply by 5/9 to get Celsius -->
        <add key="Plugins.X10AC.IdealCelsiusTemperature" value="24.44"/>


If you happened to set up VexedLogic.TemperatureMonitor.exe from TEMPer USB Thermometer Scheduled Task/Service, you need to add the plugin DLL to the Plugins directory, copy the empty .db file and create the settings in the VexedLogic.TemperatureMonitor.exe.config file.

Otherwise, you can extract the entire ZIP to a directory and be ready to go after configuring the settings in VexedLogic.TemperatureMonitor.exe.config.

Download: VexedLogic Temperature Monitor with X10 AC Plugin

Tags: , , , ,

This entry was posted on Saturday, June 25th, 2011 at 11:07 am and is filed under Life. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Leave a Reply

You must be logged in to post a comment.