Network Controlled Air Conditioner


This project was started with the intention that I would be able to control my air conditioner from work... in the end, thats not exactly how its worked out...

Here I started with my 8000 BTU Climette window unit. These pictures were taken once the project was at a working stage, please ignore the blue cable for now.

The front is removed by removing the filter and taking out the single screw behind it. The sides and top unclip fairly easily.

Here is the control panel in detail. I'll be soldering wires to the switches that control the temperature setting.

Just 3 wires are needed, note cat5 cable clamped in with the power cable to prevent damage.

I acquired this SNMP controlled relay board on ebay a couple years ago for another project. Configuration is fairly straight forward, just assign its network settings with the Windows program it comes with. (It appears they are still available on ebay) You may notice the wire colours changed from the air conditioner to the relay board... turned out my cat5 had a shorted pair causing weird behaviour. Under the duct tape is the ribbon cable that joins the Pico-IP to the relay board.


The software is fairly simple PHP relying only on php-snmp support.

Basic functions such as setting and getting the status of an individual relay, along with the more involved temperature specific operations are stored within functions.php. Not all of these functions have been used in my current project. Also note that the configuration for the relays is stored here as well.

Within control.php is a script meant to be run from the command line taking one parameter: the new temperature desired. This air conditioner allows for the temperature to be set from 66F to 88F, so the input temperature is checked for validity. As the temperature range is fairly limited, and to simplify this project massively, I decided to not attempt to determine the current temperature setting on the air conditioner unit. Instead I tell it to drop to its lowest setting and then step up from there. The control board in the air conditioner reads its inputs fairly slowly requiring a delay between every relay throw.

From here, I was able to configure two cronjobs to turn the temperature up to 80F during the day while I am at work, and drop it back to 66F an hour before I return.

The two cronjobs I use are:

30 8 * * 1-5 /usr/bin/php /root/aircon/control.php 80
0 16 * * 1-5 /usr/bin/php /root/aircon/control.php 66

Because the video below is of such poor quality, here is the console output:

Theres been some discussion related to why I bothered to do this. I already have a couple servers that live in my basement and run 24/7 anyway. This air conditioner is only for my bedroom and my every wall of my house (even interior walls) are fully insulated. Others have suggested other interfaces that would work better... they probably would. But I just used what I already had.

Erik Sommerdyk - -