The Home Automation Project

The most difficult thing about home automation is defining the problem set correctly. The second most difficult thing is reliability. And everything else.

For example, do you want scheduled events? Then your controller needs a “real time clock”.
Do you want if-then-else logic ? (i.e. *if* it’s dark *and* the front door opens, *then* turn on the porch light, *else* turn off light). Then you’ll need a controller with some logic capabilities.
Do you want a simple remote control of “that light over there”? Then maybe you don’t need home automation at all!

Of course, you can’t really define the problem set until you know what’s possible…

And so it begins…

My main interests are the three standard ones: convenience, safety, and security.
In my case these are defined as:
Convenience: Automating and fixing some lighting issues in my home.
Safety: Adding night and room lighting and system monitoring
Security: Door and window status reporting, logging of activities, slightly randomized lighting.

For the first group: My mid 60’s ranch house was built when ceiling lights were “out”, so the rooms light switch operates an outlet…which you have to plug a floor lamp into. Ugh. The other problem is the switched outlet is often where you would like to have consistent power. Fixing this usually means removing the switch, replacing it with a controller, and wiring the outlet to always be “on”.

For the second group, a time based system to turn on/off lighting is needed. This involves outdoor lighting as well as some strategic indoor “night lights”. I also check the ambient outdoor lighting level for dusk and dawn confirmation.

And the third group is motion sensors, door and window monitoring, and randomized lighting. I also put water leak sensors in this category.

I already had some SmartHome Insteon modules, but they don’t offer some of the I/O options I wanted, like temp and RGB colors in lights.

Looking around…
I didn’t want a IP/internet based system, as the reliability is not good enough for me and the hack potential is high. Plus, I’m not keen on voice interfaces like Siri/Alexa; they’re noisy, imprecise, and insufficiently robust.

I chose Z-Wave modules because they are available from a wide variety of manufacturers and the modules have a lot more sense capabilities then the Insteon ones do. Also, the signal boosters are inexpensive.

Next, a controller.
As good as the Insteon modules are… their controller isn’t.  Very limited logic, only one timed event, a rather clunky UX, and so on.
And when it had issues and died, I found there were no backups or recovery paths. Bleah.

After some searching and reading of user and programming guides, I settled on a Universal Devices ISY994i controller, which handles and centralizes Insteon, Z-Wave, and IR control protocols.  This little palm sized powerhouse supports the Insteon modules I had, the new Z-Wave ones I was planning on, and the IR support meant my home theater remote could dim and brighten the lights. (oooh)…

Plus, the ISY has a simple and fairly sophisticated logic event driven programming model, which is well suited to reacting to the usual home automation asynch events and dispatching them.

Their wiki is at: Universal Devices

Chapter two: putting it together

The second most difficult thing about home automation is installing, programming and testing your system. 🙂 

Installation required a hardwired IP connection, a power supply, and a Insteon PLM module. For the IR repeater function, the rcvr is on the front panel. All this went into my utility closet, where all the wiring for the house goes. The PLM module goes straight into a wall plug, not a UPS. (UPS ‘s have powerline filtering, which will inhibit the Insteon signal.)

Programming… is an ongoing process. Some modules are rock solid, some appear to be flaky, and some have modes with odd side effects.
A couple of tips:
1) Create a light that lights up when a logic error happens. In my case, I increment and decrement a value as doors open and close. If the value ever goes negative, I know something is wrong with the sensor or the program.
2) Be methodical. Create your door monitor program for one door then really test the heck out of it. Then, and only then, implement your other doors.
3) Consider what happens when the power goes out and then restores. My system got complex enough that I set up a second stage boot process to handle a series of annoying race conditions.

Last Updated on