Home Automation Controller

Home automation technologies are used for a variety of reasons and to solve a wide range of problems. For example, what if you wanted a way to turn your outside lights on and off from your bedroom upstairs, how could you do this? Traditionally you’d need to install a multi-way circuit adding another electrical switch in a new location and then running electrical wire to the new switch. The logic used to wire 3 (or more) way switches is pretty simple. Getting the electrical cable through the walls to the new location can be far less so. Using home automation technologies the task becomes a whole lot simpler. You can replace the existing light switch with one that can be controlled remotely, and then install a new light switch anywhere else in the house. The new light switch would not actually switch anything directly, it would be connected to the live electrical feed and likely have no load. Then you’d program the new light switch to remotely control the old one. Turn the new one on and a signal gets sent over the wire and triggers the actual light switch. Clean, simple, no messy wiring, and you’d be done for under $100. Remote control is actually a common use for home automation technologies. So much so that the vendors in this space all sell multiple switches in a single switch size and format, as many as 8 push buttons in the form factor of a regular light switch, and each can be programmed to do a different task.

But what if you want to do more? What if you want timers and scheduled events – things like turning on and off lights at sunrise and sunset, or turning on appliances at 8:00am, or faking random home activity when you are away? What if you want to automatically respond to events – things like turning on lights when a motion detector is activated, or turning off valves if water is detected in the basement, or shutting garage doors 15 minutes after they were opened if they were in fact left open? All of these, and more, require that a home automation controller be introduced into the mix.

Home automation controllers come in two primary forms, software and devices:

Home automation software runs on a computer in your home. You typically have the option of registering devices, clicking to trigger actions, drawing floor plans, writing programs or execution sequences, and more. The software needs a way to communicate with the actual home automation network, and so there is usually a connection (originally serial, now USB) that connects to a modem that plugs in to an outlet. Commands are transmitted via the modem, and events are routed back to the software when the occur. I’ve generally avoided software based controllers for the simple reason that I don’t want to have to rely on a PC running at all times.
Home automation devices are just that, dedicated devices for home automation, all with ways to program them. Some plug into outlets and accept programs that are created using a computer and then uploaded via a USB connection (so the computer is needed at programming time but not at runtime). Others are wall mounted in double gang boxes and have their own power feeds and touch screen interfaces. Others have their own power supplies and integrated HTTP servers and are managed over a local LAN. And home automation controller devices are what I’ve been using for years.
My previous controller was a wonderful little touch screen device that installed into a regular double gang box. It required power from a plug in adapter, and transmitted data via a connected modem that plugged into another outlet. To use these I installed outlets inside of a wall, and mounted the touch screen in front of them. The device allowed me to touch any light to turn it on and off, activate scenes, and program times and schedules. It was an entirely self-contained X10 only controller, and it served me well for about 7 years, until the touch panel stopped responding to touch in some places, and it started to lose time, and more. So, time for a new controller, and this time one that supported Insteon as well.

I looked at several controller options, and the one I ended up installing is the ISY-99i from Universal Devices. This is an inexpensive and tiny device, but don’t let its size deceive you – it is about as powerful a controller as I have ever run into.

The ISY-99i is a little black box with LEDs on the front and two CAT5 connectors on the back. One of the CAT5 connectors plugs into your home network, and the ISY-99i gets an IP address via DHCP on startup so that you can connect to it. The other CAT5 connector is used to plug the device into a PowerLinc Modem (PLM for short) which is used to both power the device and to send data over the electrical system.

Once powered up you simply use your web browser to access the ISY-99i to do all management and programming. The device features a simple web interface for basic on/off controls and the like, and a big old Java applet administrator for more control and management. Key features include:

Simple options for finding and adding devices, creating scenes, and more. And UI to click on any device to control it.
Support for Insteon, X10, and RF.
A very powerful (and simple to use) programming interface. You can define events (button pressed, scene activated, X10 signal received, etc.) and schedules (times, dates, days of week, sunrise/sunset, etc.), and then define the actions to perform if the conditions are true or false. The UI walks you through the process so no actual coding is needed. The programming constructs are simple and intuitive, but don’t let that simplicity fool you. This is powerful stuff!
Ability to send notifications via e-mail and SMS.
Automatic NTP lookups, and locale specific calculations based on selected city or longitude and latitude (this is how it can determine sunrise and sunset, for example).
Newer versions of the firmware have added extensibility options, including a Web Services interface. Now that really opens things up. (More on this in a future post).
The ISY-99i also has perfected the process of applying firmware updates. (I’ve downgraded once, because one other device I was using required this, and since then have upgraded to the latest firmware). Just download the firmware ZIP file, go to the UI, upload it, and the device reboots and you’re done. This is actually more important than you might think. As vendors release new hardware and devices, Insteon controllers like the ISY-99i often need updating to support them. Simple foolproof firmware updates are critical.

Universal Devices support has been superb. When I first installed the ISY-99i, I was running into some bizarre problems that ended up being caused by a faulty PLM – it was not their product that was at fault but they worked with me to figure it all out anyway. I’ve dealt with their support via e-mail, forums, and on the phone, and Universal Devices wins top marks for going above and beyond what can be expected for a device that costs just a few hundred dollars.

So, I’ve been using my ISY-99i for about a month. I have dozens of devices being controlled by it (both Insteon and X10), have created all sorts of programs and scheduled events (it is completely running my fish tank setup now). And thus far it’s worked perfectly. (And yes, as you’d expect, I’ve already submitted lots of enhancement requests).

The ISY-99i is priced between $300 and $370 (there are several models with the key differences being the number of scenes and programs supported, and whether or not the device is an IR receiver itself).

So, power, simplicity, extensibility, price, support … which is why this one is my new favorite home automation controller.