Selecting an appropriate architecture for your home control system is a critical decision to make, as it is very difficult to change once you have made an investment in hardware. Do you go with a turn-key system that’s installed by a system integrator, in which case you might not care much what the system architecture looks like as long as it works, or do you build your own? If you decide to assemble your own system, do you buy off-the-shelf modules or do you design your own? Do you go with an established, well-proven standard like X10, or do you build something that’s far more capable but that might carry a higher risk? Do you go wired or wireless?

In my particular case, I am approaching it with a clear view towards what I want the system to be able to do, now and in the future. I have also listed the limits and parameters within which I will select architecture to match.
First of all, what functionality do I want out of this Home Control System over the next few years:
- It should save me electricity costs. We should be able to turn off all lights and all air conditioning units from a control panel near the foyer as we exit the house. It should monitor our power consumption, per circuit. It should turn off the lights in a room a few minutes after we’ve left it.
- It should be smart enough to sense the presence of people moving around, and for example turn on the lights in the bathroom when the kids wake up at night. These sensors can also be used for security purposes, although a security system is not on the drawing board at this point due to the fact that we almost always have somebody in the house as well as the fact that the security in the village is top-notch.
- We should be able to stream music off MP3 files to selected speakers throughout the house.
- We should be able to view the video coming off outdoor CCTV cameras on any TV, and also stream video to DVR software running on a server. The same server will also monitor the CCTV images for movement during night, and can provide additional input for security purposes.
- Sensors for heat, smoke, water and LPG, as well as triggers from manual “panic” buttons located behind each external door, should trigger pre-determined alarm sequences. These sequences may include auto-dialing and the playback of pre-recorded messages.
- The system must interface seamlessly with the scene-lighting system we plan to install in the living and dining areas on the ground floor.
- The system should be flexible enough that we can easily add additional functionality in the future, such as automatic control of sprinkler systems, floodlights, etc.
Furthermore, the system architecture must have the following characteristics:
- The design must be reliable. I promised my wife that no matter what happens, the light switches will always turn on (or off) the lights. No software bug or unplugged LAN cable shall cause any basic house functionality to fail. This is especially important in many parts of the world (like the Philippines), where the quality of electricity may vary quite a bit. For example, where I currently live our 220V AC-supply could vary from 180VAC to 240VAC on any given day. Power dips, surges and blackouts do happen on a monthly basis.
- I want the design to be completely open, where I have full control over almost all parameters. The reason for this is simple: my Home Control System is a hobby, and I enjoy tinkering with it. In addition, if I ever come up with some especially nifty system component designs then - who knows - perhaps it will lead to new business opportunities as well.
- At the same time, I recognize the advantage of using standard hardware to some extent, since it allows me to spend more time on system integration issues and less time reinventing the wheel. I would also like to use an established communication standard, since it allows me to use existing chipsets, components, development tools and debugging tools.
- I definitely need the system to be extremely flexible, to allow for future expansion. Even we technically inclined individuals tend to underestimate our future “needs” (read: wants). Due to this desire for flexibility, the less hardware and the more software the system contains the better. It is a lot cheaper to upload new firmware to a node than to have to spin a new PCB. Part of this flexibility I desire is the need to be able to reprogram a node remotely; I should not have to physically go to a particular node to be able to change its behavior.
- The system should be relatively low-cost. Now, no Home Control System is as cheap as the absence of one, and no automatically activated light switch is as cheap as a human-powered one, but since we have already decided to automate part of the house we can at least exercise due diligence and look at alternatives. It typically doesn’t make sense to splurge on the first pretty-looking turn-key system we find nice colorful brochures for, unless we have more money than sense (and we don’t).
So what are the design decisions I have made so far?
- I did look very closely at X10, which is what most DIY:ers in the United States use, but I will not be using it for a number of reasons. One reason is that it has too limited functionality for what I want to do with it; data transmission is slow and (typically) one-way, and since it utilizes the power lines for communication it is also not reliable enough where I live. Most of the other standards (like CEBus, INSTEON and LonWorks are either too expensive, too much overkill or too proprietary to be of interest to me. I want something inexpensive that’s easy to maintain!
- Since we are building a house from scratch, and since wired connections are relatively more reliable than wireless connections, I will use Ethernet and standard CAT5 cable to network all the local controllers to each other and to the server. In future systems, or for retrofit systems in other houses, we can use pretty much the same controllers in each location but replace the cables with a wireless network instead.
- I plan to use standard micro-controller modules for all locations where I need some intelligence (which is actually in all major rooms). I have looked at modules available from many different suppliers, and I am very seriously considering using core modules from Rabbit Semiconductor. Not only are they available in many different configurations, including wireless Wi-Fi and ZigBee versions; they also have a great set of tools and a wide range of software libraries available.
- Whichever controller module I finally select, the plan is to plug them into customized boards that I will design to match the typical I/O requirements of your not-so-typical suburban home: analog and digital I/O, relays, triacs, etc.
- The AC power lines will utilize a whole-house surge protector and, in addition, critical equipment (such as the servers) will be powered off uninterruptible power supplies.
- I will locate IR transceiver modules in strategic locations to allow remote controls to communicate with the central server. In the same manner, the server software will be able to transmit IR signal sequences to equipment in any room. This will allow me to, for example, use standard air conditioning units (with remote controls) and later automate them at low cost. This will also allow me to add features such as the ability to control the piped-in music using standard remote controls in any room, with on-screen feedback via TV.
- I plan to keep many subsystems, such as the phones, the home theater and the TVs mainly “off grid”, except for the IR remote controls. For what we have in mind, I don’t see that technologies such as MythTV quite fit in, but I might be wrong. I am trying to be practical about what I automate and what I do not. Let’s see in a few years whether or not I succeeded…
The thing that I think about the most at this point in time, when the foundation of the house is about to be constructed and the first walls are just a month or two away, is the wiring. The conduits for much of the wiring have to go into the concrete as the builders do the exterior walls. The wiring has to be flexible enough that it will support “standard” electrical wiring for now, but later allow me to automate the house and gradually add intelligence. For example, all light switches must be able to switch their respective lights on and off from day one, yet later the Home Control System should also be able to switch the lights based on inputs from timers and motion sensors.

