Home Automation

I’ve been enjoying owning my home because it lets me make changes to it without a landlord getting involved. One of the changes I’ve been enjoying is working on a home automation system, building a “smart home” as they’re often called lately. However, I Know Too Much about how the Internet and “the cloud” works, so I have some very specific requirements on how I will allow a smart home system to operate in my home.

Very many “cloud” devices and systems have had terrible security issues, leading to data leakage to third parties, or even full remote access to the items themselves. This is not okay with me, and I refuse to use any “smart home” system that requires “the cloud” or Internet access to work. Devices need to work locally, for both security and reliability. This means several popular systems aren’t ones I will consider.

I want to be able to connect all the devices of different types to one home automation system. This means that many of the commercial systems are right off my list, because they’ll only communicate with their own products. I don’t mind using those systems as part of my home automation solutions, but I want to be able to extend them and integrate them with other systems as needed.

The darn thing has to work, and work every time. When you flip a light switch, the lights have to come on. They have to respond quickly, and they have to come on even if the Internet is down. Reliability and predictability are really important, and I’ve built systems that seem to be stable and effective.

The Choices I’ve Made

For the central core of my home automation, I’m using an open source solution called OpenHAB. OpenHAB’s design goals match mine well; it’s open source, it’s designed to work locally, and it can be extended to communicate with very many different systems and devices. It’s a fantastic central hub for all the different devices I may run in to, as it allows many different systems to send messages and those messages to cause events on other systems. It does require installation, configuration, and maintenance, but the OpenHabian distribution for the Raspberry Pi helps with that. It also means I run it on a dedicated solid-state machine. It has been fairly reliable. I do have it set to reboot itself in the dead of night, which seems to help keep things that might get unstable over time from having a chance to get that way.

OpenHAB provides a thing called “Astro” which calculates times for astrological items. The ones I use are dawn and dusk, based on my latitude and longitude. This very simply lets OpenHAB know when to use Insteon to turn the porch lights on and off. It sounds like a simple thing, but we really appreciate that one. The same systems keep the holiday lights turned on at reasonable hours, and control some incidental lighting in the house.

For lighting and power control, I’m using Insteon. There are some newer and flashier ways, such as Z-Wave, but I have found them to be slow to respond and not as reliable. Insteon messages are extremely fast to propagate and most of the hardware seems reliable so far, with one notable exception. One thing I like is that the switches can be programmed directly to one another so that they will continue to do what you expect them to do even if OpenHAB is down. I really like that my lights work when I flip the switch, and that the Insteon peer-to-peer mesh network keeps that running by itself.

The notable exception to Insteon reliability is the “PLM”, the “Power Line Modem”, which seems to burn itself out once a year. Reprogramming it is a hassle. Luckily, if you replace some capacitors in it with higher quality, higher voltage ones, the problem should go away. It’s a shame these are cheaply made and Insteon hasn’t fixed this design problem on their own, but it’s something I have been willing to do to get stability.

I have a few Z-Wave devices, mostly from before I tried Insteon. They do work, but I find them hard to program and slow to respond, especially when compared to Insteon. I have a Z-Stick on the OpenHAB machine so it can see and control the Z-Wave devices like it does anything else. I had problems getting that to stick, but they were foolish typos on my part.

I used to use X-10 devices. The Insteon controller would allow me to keep using them, if I needed to. I don’t, and have none left in use. It was a useful tool in its day, and I used it for a long time, but it’s slow and awkward and unreliable compared to the newer systems. I’m happy to have replaced it with Insteon.

I have a Raspeberry Pi running an MQTT bus server, and several devices sending messages to that bus. OpenHAB listens to it and can respond as needed. One of the interesting things on that bus is a Software Defined Radio that can receive and decode messages from the wireless weather station I have. I also have a lightning sensor and a water temperature sensor from the same vendor. This exposes the current air temperature, pool temperature, humidity, and amount of rain today to the home automation system.

The house came with an alarm. ADT had installed it in 1990 or so, and it had been sadly ignored. I tuned it back up, and discovered it wouldn’t quite meet our needs, so I upgraded it to a slightly more capable system. It is now a Honeywell Vista 20e alarm, and uses both wired and Honeywell wireless sensors. I have some more sensors I plan on installing to get some better coverage, and need to figure out how to get “alarm screens” for our windows to get the last bit of perimeter coverage that will work properly for us. Normally the Vista series is only accessible through a monthly service via an alarm provider via Honeywell. I have installed an Alarm Decoder in the alarm; it’s a raspberry pi with a HAT that lets it connect to the alarm like a keypad would. This puts the alarm on the net, and lets OpenHAB see the status of the alarm and sensors. If I allowed it, OpenHAB could enable and disable the alarm and even trigger it if needed. I don’t currently allow OpenHAB that access.

I have recently installed a Rainforest Eagle 200 power meter interface. The Eagle 200 connects via wireless (it’s a zigbee network, apparently) to the PG&E Smart Meter so it can get current information about our electric power consumption. Normally, the Eagle 200 requires you to connect it to the Rainforest cloud, but the OpenHAB connector for it connects directly to the Eagle 200 and means the data stays in my control. No cloud is used or required. Yay!


Leave a Reply