Home Automation Software

The Home Automation Software is run on 2 PCs; one running Red Hat Linux 7.1, and one which previously ran Windows 98, but which has been upgraded to run Windows XP (albeit slowly). The PCs are able to control X-10 equipment via CM12U modules - X-10 modules with an RS-232 interface which converts PC input signals to the X-10 protocol, and transmits the X-10 signals along the mains electrical supply.

The Linux based software is Misterhouse, an application written in Perl, which also can be run on Windows if you have Perl installed for Windows. It is incredibly powerful, and offers just about every option you can think of for home automation, and then adds a whole pile more options on top (including support for Dallas Semiconductor iButtons, retrieving online weather reports and stock quotes). My only gripe would be that the user interface could be nicer, but then again, I am sure that will come in time.

For those who use Linux, Misterhouse is available as an rpm, which simplifies installation for anyone who wishes to avoid getting too intimate with the Linux command line. If you don't need the fine level of control over your installation (and to be honest, most people don't), then installing the Misterhouse software via the rpm is the logical way.

The Windows based software I predominantly use is called ACE, although I also have ActiveHome installed aswell. Again, ACE is a very powerful and versatile home automation software application, and provides very versatile interfacing to various home automation and home security hardware systems. Additionally, I have made use of CS-Xpress and Comfigurator windows based software when I had my Comfort security system.

Perl Development

Most of my Home Automation software development is carried out in Perl 5.6 under Linux 2.2 (Red Hat Linux 7.1). For testing in conjunction with the Apache Web Server using cgi, I have the CGI.pm Perl module installed too. The CGI.pm module is easily downloaded from http://www.cpan.org.

For Home Automation purposes, the Device::SerialPort module should be installed, and additionally, the ControlX10::CM11 module which provides direct control of X-10 devices via the CM11 and CM12 X-10 units can be installed. Again, these Perl modules can be downloaded from http://www.cpan.org. With the Device::SerialPort module installed, a PC can talk to just about any device connected to a serial port. Working out the various protocols that external devices use can be a painstaking process at times, but that is part of the challenge.

To install the Perl modules on a Linux PC, the following steps provide an outline of what process needs to be followed:

%perl -MCPAN -e shell;

cpan> install Device::SerialPort


>perl Makefile.PL
>make test
>make install

Where the bold text represents the text that needs to be input.

ASP Development

Some of the development neccessitates the use of Active Server Pages (ASP), which I write in VBScript, and run on Windows XP, but, most of my development with Home Automation uses Perl.