Chris Xiao

Aspiring Software Engineer

Chris Xiao

Aspiring Software Engineer

Why I Built My Smart Home with Home Assistant

The journey towards a smart home that puts privacy and local control first

Last updated on May 20, 2022


Table of contents


Smart home, and Internet of Things (IoT), is cool! It offers unparalleled convenience, while energy usage and improving home security.

I happen to love tinkering with things, so let’s build a smart home! However, when I was researching how I could get started, I realized the smart home industry is a huge mess…

Problem: cloud-based smart home

In recent years, big-tech companies like Amazon (Alexa, Blink, Eero, Ring) and Google (Google Assistant, Nest cameras and thermostats) have greatly popularized smart home products and reduced the barrier to entry.

However, Amazon, Google, and most consumer smart home companies aren’t your friend. First of all, most of their products rely heavily on the cloud. This might not sound too bad, especially when everything is working correctly, but you’re at the mercy of the manufacturer to support these products.

Consider these scenarios:

  • Your internet connection, or the cloud service goes down.
    At best, you would lose “smart” functionality until the connection resumes. At worst, you wouldn’t be able to use your devices at all during the outage.
  • The manufacturer suddenly decides to require a subscription to use their cloud, even though they promised “free cloud” when you purchased their products. Wink famously did this in May 2020.
    You either pay for the subscription, or lost most – if not all – functionalities.
  • The manufacturer goes out of business and shuts down their cloud, which renders their products useless. This happened to Insteon in April 2022.
    Unfortunately, the devices you bought would just become fancy doorstops.

If you’d like some entertainment, @internetofshit on Twitter has tons of stories of IoT gone wrong.

Solution: Home Assistant

I came across Home Assistant, an open-source home automation “hub” that puts privacy and local control first. With the right hardware, one could use it to build a fully local smart home without much trouble.

If you want to learn more about Home Assistant and their vision, check out:

At a whim, I decided to give Home Assistant a shot and use it to start building my smart home.

Getting started

Installation and setup

Setting up Home Assistant is pretty simple. Since I already have a PC at home, I installed the Home Assistant Operating System as a virtual machine on it.

You can run Home Assistant on most modern PCs and single-board computers (such as the Raspberry Pi), and they offer several different ways to install it. The Installation page on their website goes over these in great detail.

Once you installed Home Assistant, navigate to your instance in a web browser and follow the setup wizard. See the Onboarding page on their website for more info.

Buying hardware

Since I’ve decided to build a fully local smart home with Home Assistant, I came up with the following criteria for choosing smart devices:

  • Must support local control, and work without an internet connection
  • Must integrate with Home Assistant
  • Affordable
  • Preferably, I can set it up without creating an account with the manufacturer

Turns out, it’s pretty hard to find devices that meet these criteria, as most consumer smart devices rely heavily on the cloud, and their Home Assistant integrations just interact with the cloud.

Fortunately, there are some options. For example, some, but not all, Kasa by TP-Link products support local-only control and do not require a Kasa account. They have a list of locally-controllable devices on their website. Additionally, most non Wi-Fi based (Bluetooth, Zigbee, Z-Wave, etc.) devices are designed to be controlled locally.

Eventually, I purchased:

All of these devices integrate well with Home Assistant:

My open-source smart home

With these devices, I’ve “smartified” and automated my home with Home Assistant. I wouldn’t go too deep into my setup just yet, but I might in a later post. For now, check out my Home Assistant config on GitHub if you’re interested.

I’ve been running Home Assistant for a few months now, and it’s been amazing! My automations have been working really well, and I can control everything locally, without an internet connection.

In fact, everything’s been going so well that I’ve decided to expand my setup. I’ve ordered a few more devices, including some Aqare Zigbee devices and a SONOFF Zigbee USB dongle. I’m also considering diving into DIY devices with Tasmota or ESPHome.

Further reading

CC BY-SA 4.0

This article is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.