Scott Crevier's X-10 Web Interface allows you to control your home appliances from a web site. You create a simple text file which defines the devices you want to control on the web. The interface then displays a table that allows the user to turn appliances on and off (or dim lights) with a single click.
I have tried to make this as configurable as possible. The image at right shows an example of what your control panel can look like. In this example, the X-10 Web Interface only created the part that is gray. The rest is defined by you in standard HTML files.
This program is a Perl script. Therefore, you must have Perl installed and your web server must be able to execute Perl scripts as CGI programs.
The program accepts commands from the web page and converts them to instructions that are then passed on to the X-10 Communications Bridge. The X-10 Communications Bridge is included with the ActiveHome software package and provides the link between your PC and the computer interface. The ActiveHome application does not need to be running for this to work. Only the Communications Bridge needs to be running.
During the installation of ActiveHome, you are prompted to see if you want the communications link to automatically startup each time you start your computer. I recommend doing this. If you need to do this manually, you may be interested to know that I have an icon in my startup folder with the following command line:
"C:\Program Files\Home Control\X10Comm.exe" HIDE
Also, if you want to run the communications monitor in your system tray, you can add an icon in your startup group with the following command line. Running the communications monitor allows you to start the Active Home application or shutdown the communications link by clicking on the small X-10 icon in the system tray:
"C:\Program Files\Home Control\monitor.exe"
Obviously, when allowing web surfers access to your home appliances, security is a concern. So use common sense when setting this up. If you are familiar with web site administration, you will know that you have many security options available to you that are beyond the scope of this program. However, the X-10 Web Interface does provide a few tools to assist in the effort.
This program allows you to define which of your appliances you want to be controlled on the web. Based on your definitions, this program validates every device and command that it receives before generating the communications link instruction. If something does not check out, no command is sent to your X-10 system.
Also, your X-10 unit codes are never displayed on the web page. Instead, to calculate the unit codes, the program uses a simple mapping that you setup in your configuration file. Now, since this program is freely available, it's not hard for someone to guess the name of your configuration file and then view it in their web browser. If you are concered about that, just change the name of your configuration file and then change the corresponding line in the index.cgi file.
If for any reason you need to shut off the controls temporarily, there is a variable in the configuration file called masterswitch. If this varialbe is NOT set to 'on', then NO commands will be sent to the communications link (though the web page will still function and the user will have no indication that it has been turned off). So use this option as you see fit.
The device definition file allows you to very quickly remove (or add) a device to the web page.
This program also writes every command to a log file. Each log file entry contains the current date and time, the status of the masterswitch, the user's host name (or IP address if the host name is not available), and the actual command sent to the communications link. So, again, use this log file as you see fit.
There is no charge to use this program. However, it would be cool if you send me an e-mail and let me know how this works for you. Providing a link on your web page back to mine would be cool too, but that's not required.
- Windows 95/98
- Web Server (see web server tips below)
- Perl v5.004_02
- ActiveHome X-10 Communication Bridge
I'm runing ActiveHome v1.41. There is probably a newer version available, but I have not upgraded. So, if you happen to have a newer version, it's possible that it comes with different components.
For example, you might have x10com32.exe instead of x10comm.exe.
The web server and the ActiveHome X-10 Communication Bridge and my web interface must all be running on the same machine. So if you have ActiveHome running on your home PC, then you also need to install a web server and Perl on your home PC. In other words, if you have ActiveHome at home, then it won't work to set this up on a web site hosted by your ISP (it must be installed at home).
Also, if you only have a dialup connection to the internet, and you don't have a static IP address, this stuff will still work; but it will only work while you're online, and the URL used to access it will change each time you connect up.
· Scott Crevier's X-10 Web Interface v1.1
· Thu, 02-Jul-1998
· Communications Bridge Help File (optional, see below)
Create a new directory on your web site called 'X10' (or something like that). This will determine what URL you will use. For example, if your directory is called 'x10', then the URL might be something like this:
Download the zip file and unzip it into that new directory. You will need a program like PKUNZIP or WinZip (support for long filenames is not necessary).
Setup the configuration files as explained below.
Fire up the web page and blow up your house!
The package consists of the following files: