Carpe Diem:23 September, 2020

Smart Homes… Where to Begin?

This post may contain affiliate links. Please see our disclaimer for more info.

I recently started diving into my own smart home projects and wanted to share my progress, lessons learned, and tutorials for the next person who is on the fence about diving into his/her own project. In this post, we’ll go through a brief intro on smart homes and discuss some of the different controlling (or hub) applications/products that exist today.

I remember as a kid when my dad had a X10 setup turning on lights from a control pad – this X10 protocol enabled lights and other items to be controlled via radio frequencies and over the power lines within your house. It was pretty neat, but also limited. Now connecting a device means connecting it to a local network that has the ability to connect to the internet. In other words, we are at a point where smart devices are all talking a similar language and have ability to be controlled from anywhere with internet access – this is pretty awesome.

When I first started learning about home automation, I was a bit intimidated with all the options available. I was anxious that I would get started down a path and find that I didn’t like it. Hopefully this blog will save you some time/stress.

Step 1 – are you a DIY/tinkerer/hacker? If not in some shape or form, home automation may not be right for you – getting a professional installation may be the way to go, however this isn’t cheap and you don’t have nearly as much control. You don’t need to be a computer science genius, but you need some sort of desire to research, problem solve, and tinker with things until they work. It’ll take some time, but the feeling you get once something works is amazing. Don’t get me wrong, it’s not difficult to adventure down this path and there is a great support community already waiting for you.

Step 2 – which software controller/product should you use? If you are more of a DIYer, you have options such as Home Assistant and openHAB . These are both open source systems that take a bit more configuring to get going (however it’s gotten MUCH more streamlined to get these options set up). There can be a steep learning curve depending on what exactly you are trying to set up – the good news is that you can pick how in depth you’d like to go with your setup. On the opposite end of the spectrum that are “ready off the shelf”, take a look at the systems offered by Amazon, Apple, Google, etc. I’ve heard good things about SmartThings as well, but don’t have any personal experience with it.

Step 3 – which hardware controller/hub should you use? This is largely dependent on step 2. If you decide that you really like Amazons products and want to go this route, you’re going to need to use Amazon’s Echo hardware. However, if you use an open source solution, these are hardware agnostic. They will work on a variety of devices. For example Home Assistant and openHAB will work on Windows, Mac, Linux devices and more. If you have some hardware lying around to use, start with that. Otherwise Raspberry Pis are cheap and easy to get up and running. More on hardware to come in a later post.

I went with Home Assistant (HA for short) for a few reasons below.  I am running it on a Raspberry Pi 3 which I go into more detail on how to choose a server in this post.

It’s open source and community built. While an off-the-shelf solution may be ideal for some, you are having a company dictate what will and what will not be compatible with your smart home hub. For example, if you have an Apple homePod setup, you are dependent on Apple releasing updates for your device to be compatible with other devices. Open source projects such HA are device and vendor agnostic meaning they (the organization maintaining the software) attempt to treat every device and manufacturer equally. HA has support for tons of devices and new device support is added regularly. The amount of configuration options available is really only limited by the amount of time you want to spend on it since you have access to the source code.

I hold my own data. We are in the era of the cloud… in other words, a lot more data is stored on servers owned by companies. While this is a very beneficial service as it makes life much easier (I’m a dropbox fan), I like being able to have complete ownership of my smart home configuration for a few reasons but mainly my setup isn’t dependent on external servers and internet access is not required. I like having an “off the grid” approach here. On the contrary however, this means I’m responsible for configuring my own setup so that it’s secure and accessible.

Rapid development. Open source projects, HA in particular, have a very powerful and active community behind the scenes. New updates including added functionality are coming out on a daily basis. Forum posts are responded to in minutes. This is also a double edged sword as you need to be on top of the updates and be prepared for things to break. So far, this hasn’t been an issue for me.

Customization. There is really no limit on what you can add to HA – it’s just a matter of time (you can learn python for free!). You won’t be stuck not being able to get something to work because you don’t have insight to the underlying code.

A quick side note: I was between openHAB and HA for some time. I ultimately went with HA because it’s built around Python (vs Java on openHAB) – this is simply a personal choice. I’m using python for a few other projects around the house and using the same language just keeps things simpler. Also, I found more how-tos and docs available for HA for the specific devices that I was trying to us. Both are great ecosystems and have excellent developers – you can’t go wrong with either. If you are not sure, there are a few forum posts out there that have debated the two. Read up and try them both out to see what you like better. This is all for post #1. On my next post, I’ll be going into more specifics on hardware – find it here. From there, a how-to on getting things set up.

Share

Leave a Reply

Your email address will not be published. Required fields are marked *