January 12, 2020By Jason Cronquist← Back to Blog

Connect your smart home devices with Home Assistant


I started my Smart Home like many people do: with a few Smart Lights. I had stumbled upon a Reddit post asking the community for a life hack that actually works. The answer that caught my eye was a popular response about smart lights used as a gentle alarm clock. I started small with the Phillips Hue Starter Kit that came with two White Ambiance bulbs and a hub. I installed these bulbs in my bedroom and configured Hue’s wakeup routine. The next morning I was woken gently with what appeared to be a sunrise. I was hooked.

I quickly installed many more Smart Lights throughout the house, but ran into the same problem many newbie Smart Home owners encounter: the lights were mostly useless. It’s no secret that “Smart” things are actually really dumb on their own. Yes, you can buy smart dimmer switches and a voice assistant (I have both in every room), and while this does allow you to make use of your lights full capability, the full potential is still locked away.

Home Assistant connects your home together and protects your privacy

Home Assistant is an open-source, python-based home automation platform that runs on your own hardware on your own network. It integrates with nearly every smart appliance you can buy automatically and provides tools for easily interfacing with your own DIY sensors and appliances (I’m big on DIY so this was important to me).

Home Assistant’s best quality is it’s inter-connectivity. You can add on a number of services very easily from tracking your location, to IFTTT. It provides you with a one-stop shop to integrate and manage all of your smart appliances and sensors.

Think of Home Assistant as an excellent state manager, as well as a unified interface for all the disparate smart things you can add to your home. It plays nicely with other Smart Home tools too, so you don’t have to worry about lock-in.

Home Assistant’s Dashboard: Lovelace UI

The Dashboard provides a powerful interface for your entire home. I run it with Fully Kiosk on a few Amazon Fire tablets strategically located throughout my home for easy access. You can configure the dashboard through an intuitive GUI to show exactly what you want. You can quickly create multiple tabs to group views or controls directly within the GUI.

Home Assistant’s Lovelace User Interface with the Slate theme.
Home Assistant’s Lovelace User Interface with the Slate theme.

I have broken my tabs down to view the general state of the home, to monitor temperature, and for quickly setting different home-scenes.

The level of detail that you want to see can be set when adding tiles. Color me impressed.
The level of detail that you want to see can be set when adding tiles. Color me impressed.

Scene Control

Scenes make for an easy way to set the state of many lights or light groups. A scene can control anything you can connect to home assistant (I haven’t run into an unsupported device yet), or be composed of other scenes to create fine-tuned control of a single room, or tie the rooms together for house-wide scripting.

sequence
sequence

You can also configure your scenes directly through .yaml files if you’re like me and prefer a nice text editor over the GUI.

yaml-example
yaml-example

You can also save scenes based on the current state of lights to be recalled at a later time. This is a very handy feature, as hard-coding the states of all the lights in your house can be a very tedious effort.

My favorite scene is Movie Time. This scene is configured to dim the two lights behind my couch and turn off the rest, except for strategically placed “nightlights” so I don’t trip when I make my way to the pantry for some popcorn.

Automation

Ok, so now it’s time to apply the brakes on the Home Assistant band wagon. Automation is one area where I feel Home Assistant is really lacking. It has a very powerful automation system that you can configure through the GUI or directly via yaml files, but for anything complicated it really drops the ball. Home Assistant’s automation is only marginally better than what you get with your manufacturer provided Smart apps, but at least you can manage ALL of your smart things in one place.

One of the prominent features of home assistant is the fact that it’s written in Python. So extending the capability should be fairly easy through Python as well, right? Well… sort of.

You can create your own components if you want with the full power of python, but each component requires a large amount of overhead to connect it with Home Assistant. You can also create python_scripts, which run as Home Assistant Services, but the python enviroment you can work with is extremely limited. It’s best only for very simple actions that you would have been fine programming through their yaml/GUI integration anyways.

There is a saving grace to the underwhelming scripting support: Home Assistant has excellent support for more powerful automation suites such as node-red (another post coming soon on node-red).

Under the Hood: Running Home Assistant

Home Assistant runs within your own home on your own hardware. At no point does your precious data leave your home network. This was a really big plus in my opinion, considering the increased frequency of data leaks.

You will need your own dedicated hardware to run Home Assistant. It’s a very lightweight program though, so even a Raspberry Pi will suffice. You can either download the hass.io image for Raspberry Pi directly, or run it from Docker. The documentation on the Home Assistant site is very good, so I will leave the implementation details up to them.

One thing that had confused me for a while is the difference between Home Assistant and hass.io. Most of the documentation out there on Home Assistant seems to use the two interchangeably. Let me just clear up the confusion: Hass.io is a pre-built image of Home Assistant for the Raspberry Pi. The image runs on a stripped down linux kernel, and works very well. I personally prefer to just run Home Assistant from Docker, as it greatly simplifies deployment.

Recommendation

Home Assistant is a must whether you are building a fully automated machine learning enabled home, or just a home with a few lights with color control. It won’t complete the fully automated Smart Home experience, but it will make those pipe dreams one step closer by connecting all of your disparate smart devices. It is an easy recommendation for serving as the back-bone to your smart home. So long as your requirements for your smart home are limited to simple automations, it can serve as the only tool you need to build the home of your dreams.

Did I miss your favorite feature of Home Assistant? Do you have a complaint I didn’t touch on? Let me know in the comments!