Stuck at home: Building a smart home / by Nick

I have been very interested in Smart Homes since I was a kid watching Star Trek. Watching the way they could gather and interact with data, and use it to control their environment was always inspiring to me. In 2009 I connected a Mac Mini to my TV and had it display the weather, news headlines, and pull the CTA data from their public API so I could time leaving for the train without standing in the snow. In 2013 I created a new DIY one that could do everything from admit guests at the main door via a text message, to tracking movement, temperature, and other metrics. This was built using DIY parts on the OpenHAB platform, then Indigo Demo.

When I bought my new place in Old Town I decided to start over with more up-to-date components and greater flexibility. My core tenets for home automation had always been the same, though:

  • Open platform: This enables the ability to do a lot of custom configuration.

  • Stand alone: There are numerous examples of home automation companies going out of business and, in the process, bricking their components. With no updates and no cloud services, they were rendered useless. I wanted to be able to not only have a Smart Home that functioned if the internet went out, but also one that would not rely completely upon a service that could disappear tomorrow.

  • Effortless use: The smart home had to work without training. That is, it had to be apparent at face value how to interact with it. A guest should be able to turn the lights on.

  • Privacy: I wanted to manage and own any data that I generated, without having to share it.

I considered a lot of platforms. Google Home and Amazon’s suite of products were immediately ruled out for three of the four criteria listed above. OpenHAB was a contender, but when I used it back in 2013-2017 it required a lot of editing config files and writing code. Support was significantly better than it had been when I used it, but there were still a lot of components I wanted that were not currently supported. I also considered Indigo Domo but the price had gone up significantly, and there were other alternatives with larger support communities.

I eventually settled on Home Assistant because of the ease of use, the support, the community of passionate users, and the constant updates that are making it easier to use every month. Additionally, if I wanted to use a “Big Three” platform, there is a bridge to Apple HomeKit, which is both reliable and values privacy more than Google and Amazon.

My current Home Assistant setup:

I was able to install Home Assistant on a Raspberry Pi, but I made sure to boot it off of an M.2 SSD rather than the standard micro SD card reader in the pi. SD cards have a tendency to fail after many writes, and the log files in home automation platforms can wear SD cards out in a matter of months.

The other standard I wanted to use was Z-Wave. This RF standard creates a mesh network for all of the connected devices. Z-Wave is better than Wi-Fi for home automation devices in many ways: it requires less configuration, it has better range, it has less interference, it is as secure, needs less power, and the mesh network means that the network is stronger with more devices. Additionally, you can easily change your Wi-Fi password without breaking your system. Bluetooth devices have much worse range than any other standard, and their reliability is questionable because they weren’t designed specifically for home automation.

Another common standard right now is Zigbee, but Z-Wave has a more rigorous implementation standard, and is generally accepted as more reliable and possibly more secure than Zigbee.

Incidentally, I am very excited to learn more about the Matter standard, which is promised to be the future of home automation. Little has been released but I am going to continue watching for details.

But it is rare to use only one standard. There are inevitably devices that require Wi-Fi, as well as their own custom service to interface with the platform. Again, this is where the support community comes in. I wanted to connect my Beosound Stage but there was not an official service to interface with it. Luckily, someone with no coding background wrote one in an afternoon.

The install was relatively straightforward. I made sure to research the most compatible components prior to purchasing anything. For example, I learned that Nest thermostats do not have an open standard and the API compatibility changes with each update, so I got an Ecobee instead because their API is more compatible and reliable. The most complex installation was for some of the light switches, which needed expanding to 3-gang boxes anyway, so I had an excuse to attack the wall with a saw. The easiest install was for the Hue bulbs. I had a number of them already and there was no need to replace them since Hue could be integrated into Home Assistant.

The only elements that required a professional installation, surprisingly, were the automatic shades in the bedroom. Window treatments are always expensive, but they come with free measurement and installation because it is too difficult to do returns on made-to measure goods. Graber makes Z-Wave shades, so I was really excited to find a fully compatible option rather than one that requires wifi or its own hub.

Some installation progress pictures:

This version of my smart home is currently able to integrate calendars, weather, public transit data, temperature and humidity inside and out, lights, SimpliSafe security, the thermostat, our bedroom shades, TVs, the BeoSound Stage sounder, my Cambridge DAC. These are some of the actions that this platform has enabled me to do:

  • Schedule the blinds to open at a set time in the morning and wake us up

  • Scan an NFC tag on the nightstand that turns off the TV, all the lights except for one nightlight, and arm the security system

  • Control the music that is playing all over the house

  • View a shared calendar, along with weather

  • Have the lights turn on when at sunset, or close the blinds at midday to conserve energy

  • Turn on LED lights in the kitchen when the overhead switch is also turned on (there are two separate switches on either side of the kitchen and it doesn’t make sense to me to separate them)

  • Track the CTA busses and alert me when one is a few minutes away

  • Get alerts when the printer is running low on ink

  • Reset the cable modem remotely without having to dig for the outlet

Some things I learned along my smart home journey:

  • Smart homes are built on connecting, then coordinating, then predicting. If you are adding a component to your house, look for a way to connect it to the home automation system. Once connected, it will allow you to coordinate other components with it (change a light to green when your washer is done, for example). Once you have it connected, you can also gather data on usage, which ultimately allows you insight into your own behavior and can enable the smart home to predict your behavior.

  • The perfect example of a smart home fail is this: You have a smart bulb that you turn on with your app, and someone switches the light off which prevents you from being able to turn it on again with your app. This problem has a lot of implications, the biggest is that smart homes require technical knowhow in order to implement solutions that aren't bodged together.

MY next priority is implementing some kind of power monitoring. This will enable me to connect presence/motion with power consumption, so that I can turn devices off when I know they are not in use. I also want to implement notifications for appliances like the washer and dryer, and possibly find a place to dock a robot vacuum.

Building a smart home is always a work in progress, and these are just some reflections on the journey so far. When I do make updates, I’ll be sure to write about it here.