Ok, so maybe comparing my smart home to the Jetsons is a little farfetched. My doors don’t automatically open and I don’t have a robot butler…yet. What I do have however, is a fairly sophisticated home full of useful automations and smart devices that generally make my life easier and help me save on utility costs. Let’s take a look at the evolution of my smart home.
The idea of home automation and smart devices is not new for me. For years now, I have had a Nest Thermostat, a Google Home, some smart bulbs, and a couple other miscellaneous devices with a Wink hub to control everything. The shame of it however is that I never really spent the time to take full advantage of these technologies so very quickly what automations I did have were broken or unavailable. The Nest was autonomous, the bulbs were not working because I kept turning off the light switches and anything z-wave was unavailable.
With the pandemic causing my travel to come to a screeching halt and forcing me to indefinitely stay at home, I began to look for a new hobby to help occupy some of my new found time. It was probably the 20th day of my quarantine when I asked Google to turn on the outside light and the response was “I’m sorry I cannot find anywhere to get a bite to eat” that I decided my “Smart Home” needed a serious makeover.
As I mentioned, my house wasn’t completely without smart devices so the first thing I did was take inventory into what I had. So I opened up my trusty Wink App only to quickly find out that Wink was now planning on charging a monthly fee for their service. As I am sure a lot of people who had invested in the Wink hardware felt, I was not too happy about this. I decided to scrap the Wink and literally start from the ground up. BEST DECISION EVER!
It was one of my many “Zoom Happy Hours” where my buddy Kyle Prins mentioned that he was looking into Home Assistant as a replacement for his Wink and that I should check it out. For those of you who are unfamiliar with Home Assistant (HA) it is an open source, community driven platform for home automation. As a technologist, I immediately embraced the community, open source and quasi coding nature of HA. The community is full of passionate and devoted smart home enthusiasts and the integrations that they have developed for Home Assistant are proof. As I looked at all the things that worked with HA, I realized that this should be the foundation for my smart home. Get ready George Jetson, I am coming for you!
HA is super easy to install and configure thanks to a very comprehensive library of software packages for Raspberry Pi’s, Intel NUC, VM’s, and Docker. I initially chose to run my Home Assistant on a Raspberry Pi 4 so I flashed the SD card, turned on the Pi and in 10 minutes I was off to the races. I could go on for pages about the lessons I learned but let’s just condense them into a couple suggestions: 1) Don’t use Wifi, use ethernet 2) If you go the Raspberry Pi route, don’t use an SD Card, use some USB storage 3) Take snapshots often.
Once I had HA set up and had logged into the GUI, a lot of the devices I already owned automatically showed up and were ready to be configured. It really is that easy. I have since upgraded to an Intel NUC but more on that in a later blog.
The Use Case(s)
As a Data Analytics guy for my day job, I always preach about not building technology for technology sake but rather identify a use case and build towards that. I wish I could say I absolutely did this but I would be lying. Rather I did a combination of “let’s connect everything I have to HA” and “let’s build this in a way that accomplishes what I want my house to do for me.” After a lot of trial and error and a fresh start, I’ll boil down the use cases that I wanted for my house and how I solved them.
Having lights turn on and off based on time, day, whether you are home/away or even motion is very appealing. I started with wanting lights to be able to turn on or off based on voice commands to my Google Home. It’s pretty simple but the ability to say “Hey Google, turn on the bedroom lights” goes a long way. I started with the high priority rooms in my house: Bedroom, Bathroom, Den and Kitchen. I chose to go with the Philip Hue bulbs for a couple reasons: 1) They are super easy to configure with HA 2) I can choose between color and white light bulbs based on the room 3) They were in stock at Home Depot back in the Spring. Like with a lot of things in the Smart Home world there are a lot of trade-offs when making decisions. I chose to spend a little more and to have another hub to get an easy and seamless solution.
I quickly got the lights integrated with HA and then using HA’s cloud service with Google Home, but I wasn’t really happy. After all the catalyst for me going deeper into the smart home world was because Google voice recognition isn’t perfect. I decided that I don’t want voice to be the primary trigger for light activity in my house. So if not voice, what is there? Is it ambient light? Is it motion? Is it based on the time of the day? It turns out it’s a combination. The time of the day seemed easy since HA has a sun integration built in to use as a condition. But the light in my bedroom at 4pm in June is drastically different from 4pm in September. The idea of a smart home goes out the window if you have to constantly change the automations to make it work properly. I next settled on motion. I bought some 5$ Wyze motion sensors, added some code to my HA configuration file courtesy of Joshua Milliken and now I had a new trigger. When motion is detected in the room, the light in that room turns on. That satisfied me for about a week until I realized that I didn’t always need lights on when I entered the room and that at times, I was just wasting energy and money. What I needed was some sensor to create a condition as to whether or not my lights would turn on if motion was detected. That condition… illumination! It took me months to find a way to do this, I googled illumination sensors for hours and couldn’t really find anything other than GPIO based sensors. I couldn’t figure out how to integrate anything GPIO based with HA until one fateful night where I stumbled on the ESPHOME page and realized that through ESPHOME, I could for a very low price set up sensors to capture illuminance data. Luckily, there was also an ESPhome Add-On in HA that is very easy to download and configure. I immediately bought some BH1750 illumination sensors from Amazon, brushed up on my soldering and wala, each room now had a gauge of how much ambient light is in the room. Today, my automation is this: If motion is detected and ambient light is below x threshold, turn on lights. If no motion is detected for 20 minutes and lights are on, turn off lights.
I thought I had conquered light until my dog threw another bone (pun intended) into the puzzle. The motion sensors pick up any motion whether its canine, cat or human. My 4 year old chocolate lab, Cooper developed a tendency to turn on lights. This normally doesn’t matter to me since they will only be on for 20 minutes however at night, it got a little annoying one evening where a restless dog kept turning on the kitchen light, bedroom light and bathroom light while I was trying to sleep. HA offered an easy way to solve my pooch problem by enabling me to build an toggle entity that created another condition. So when “Bed Time” is turned on, motion doesn’t trigger lights. I am still doing some fine tinkering but for the most part, I am finally pleased with the automation of all the lights in my entire house.
My journey doesn’t stop at lights but since this blog is already 1500 words long, I am going to save the rest of my use cases for part 2 and beyond. I will leave you with a couple things:
1) Home Assistant is really cool and has a great community. Don’t be daunted by the open source nature or the need to do any configurations. There are tons of blogs, YouTube videos and forums to help you. If you are having an issue, chances are at least 5 others have had that issue in the past too and there is documentation on how to overcome the issue either on their community site or reddit.
2) There are many ways to peel the onion of home automation. You can go room by room, you can do one use case across the house, you can just throw every device into HA and have a free for all. I recommend the one use case across the entire house approach. It’s more efficient and easier.
3) If you are serious about the home automation route, develop some standards around devices you purchase, brands and security. I don’t buy anything for the smart home that doesn’t integrate with Home Assistant. Check out a great podcast we did with Dean Jackson who gives his guidelines.
4) Have fun, tinker and build some cool stuff. 2020 is a rough year, take your mind off of it by turning your house into something George Jetson would be jealous of.
This will be the first in I am sure many blogs around my foray into home automation. Let me know what you think!
Your bearded friend,