For more than a decade now, we’ve been waiting for our homes to become truly smart. “Smart home” as a concept is not new, but the problem is that the major platforms vying to run our homes, such as Apple’s HomeKit, Amazon Alexa and Google Home, are just a bit, well, rubbish. Read our The Best Way To Build A SMART HOME.
Table of Contents
With limited functionality, unpredictable compatibility and the overwhelming stench of corporate control, it’s understandable why we might not want to entrust control of our homes to a single corporation.
This is why, with the zeal of a new convert, I bring good news: there is a better way.
It’s time to break up with Alexa and draw a line in the sand with Siri. Instead, embrace an alternative smart home system that’s powerful, open source and compatible with almost everything. Welcome to Home Assistant. It’s going to change your life, just as it did mine.
The Home Assistant way
In a nutshell, Home Assistant (HA) is an operating system for your home. It connects to your existing smart bulbs, smart blinds and smart-everything-else, and acts as the brains of the operation, monitoring your gadgets and telling them what to do.
This might sound similar to what Apple, Google and Amazon do, but in my view none of them comes close to Home Assistant for three reasons: control, customisation and compatibility.
In terms of control, what I like about Home Assistant is the platform has a clear preference for local control. All of the clever stuff takes place on your local network instead of somewhere in the cloud. This is good for security and privacy, as it means your data is kept within your home, and it also means that control of the critical features of your house are not dependent on the whims of either your ISP or Big Tech. Even if your connection goes down, you’re still able to turn on your lights.
When it comes to customisation, Home Assistant is more scalable and more flexible than the big-name platforms. Once you connect a device to HA, it’s essentially broken down into its constituent parts, so that every property and attribute of that gadget is made available for you to poke around with. This means you can make the devices in your home behave exactly how you need them to, at any given time. More on this below.
And best of all, Home Assistant has great compatibility. Because the platform is open source, there’s an enormous army of developers working on integrations for almost every conceivable smart home product. It means that you can break out of the walled gardens built by the likes of Apple and use your devices in harmony together. Even if there isn’t an official integration for your more obscure gadgets, it’s easy to find community-made add-ons, or even hook up your own code to the system.
Unsurprisingly, there’s one unavoidable downside to Home Assistant. That’s another C-word: complicated. All this power is trickier to master than barking orders at Alexa – but once you have climbed atop the admittedly fairly steep learning curve, you’ll never want to go back.
After installing Home Assistant on a suitable device (see “Picking the right Home Assistant hardware” on p29), all you have to do is point your web browser at the IP address on your network for the device it lives on, and it will walk you through creating a login and configuring basic settings such as your location, so that any weather automations you create are accurate, for instance.
All of the clever stuff takes place on your local network instead of somewhere in the cloud
To experience the real power of Home Assistant, you need to dive into its powerful automations
It will then sniff around your local network for every conceivable smart device, from TVs and NAS servers to thermostats and lightbulbs, and in just a few clicks you can configure them to work with HA’s system. Depending on the specific devices, this might involve entering your login credentials or pressing a button on the device itself, in order to hand HA the controls.
This might sound laborious, but helpfully, in most cases Home Assistant won’t need you to reinvent the wheel. If you’ve already got a smart device configured, it will import your settings, and will even still let you use whatever apps you were using before to continue to control your devices. For example, HA automatically detected my Philips Hue hub and the lights that were connected to it, and it took all of the custom names and room designations I had created from there.
Once you’ve done this for all of your gadgets, Home Assistant will present you with a slightly dizzying dashboard containing controls and toggles for everything in your house. Every device, and every attribute of every device, will be at your fingertips, so that you can see at a glance, for example, the humidity sensor reading from your Tado thermostat, how many watts of energy your Samsung smart plug is chugging through, “now playing” dialog boxes from your Google Chromecast, and even snapshots from your connected CCTV cameras.
It’s easy to feel overwhelmed at this point. Who wants to feel like they’re tapping into The Matrix just to turn on the lights? But this is where Home Assistant becomes smarter than rivals such as Alexa or Google, as you can create your own dashboards from scratch, selecting whichever toggles, buttons and readings are most relevant for you. For example, I have one dashboard containing all of my light switches, and another containing all the battery readings for the various battery-powered devices in my smart home, so I can keep an eye on when they might need charging or changing.
The power of automations
So far, this isn’t a million miles away from what Alexa or Google Home can do. Apple’s HomeKit works locally, just like Home Assistant, and all three will attempt to bridge together your smart devices into one cohesive environment, just like HA.
To experience the real power of Home Assistant, then, you need to dive into the system’s powerful automations, which can be much more sophisticated than anything the others will let you do.
For example, in Apple’s Home app, you can configure your lights to power on at certain times of day, perhaps having your living room lights switch on at sunset, for instance. But that’s pretty much all you can do.
With Home Assistant, by contrast, you can add many layers of conditionality to your automations. This means you can make all of your devices behave exactly as you want them to all of the time.
It’s this conditional functionality that makes possible my all-time favourite automation: in my bathroom, I have a motion sensor to turn the lights on when I walk in. But I’ve added to this a condition: if I take a trip to the bathroom in the middle of the night, Home Assistant will instruct the lights to power on to only 20% brightness – just enough light to see where I am aiming, not enough light to disorient my bleary eyes and dazzle me. Perfect.
HA automations can also be as multifaceted or as complicated as you wish. I have a “goodnight” routine that not only turns off the lights and close the blinds, but also triggers the bedroom speaker to start playing white noise to help me sleep.
The secret to this level of sophistication is how Home Assistant treats all of your smart devices. By treating every attribute of every device as a virtual building block, you can construct automations that take advantage of every sensor you have at your disposal.
Home Assistant is great because you can tweak virtually every aspect of the system to suit your needs
For example, in just a few clicks you can create an automation that uses the temperature sensor on your smart thermostat to lower your smart blinds to stop the sunshine warming up the room. Or an automation that will pause all of the speakers in your home if someone hits the bell on the smart doorbell outside.
Amazingly, this is only just scratching the surface. You can trigger automations using a wide range of other methods too, such as using NFC tags, Webhooks or even Crontab-style time patterns. If you’re really hardcore, it’s possible to edit the configuration files directly and write complex routines using a scripting language called YAML, or even write more complex scripts with Python.
Sorting out security
There’s no such thing as a fully secured network, as all digital security is a product of its trade-offs: the more open a system is, the more useful it can be, but openness also creates risk.
This is particularly true for smart home devices. Although a lightbulb and a laptop may look very different, if they connect to Wi-Fi and have an IP address on your home network, they are a potential attack vector. If hackers can gain access to one device, they could potentially meddle with every other device on the network. So, who would be mad enough to fill their home with smart devices?
The good news is that there are some sensible, best-practice steps you can take to secure your smart home.
If you have a suitably sophisticated router, it’s a good idea to separate your home network and your “IoT” network into two separate VLANs, or virtual networks, with separate Wi-Fi SSIDs. This means that you can have home computers, with all of your sensitive files, on one virtual network, and the dodgy Wi-Fi air conditioner you bought from a no-name Chinese company on another. Such an arrangement isn’t completely foolproof, as you’ll still have to configure Home Assistant to work across the firewall with both, but it’s much safer than letting all of the devices sit together.
Another option is to carefully consider the types of devices you connect to your smart home. Devices that connect using Zigbee, for example, are a better choice than Wi-Fi devices. Zigbee has a couple of advantages. First, it’s designed to only work locally: it’s literally impossible for a Zigbee bulb to connect to the internet. Because of this, Zigbee devices don’t sit directly on your network. Instead, they connect to your home network via a hub device (such as a Philips Hue Hub or an Ikea Gateway). This does mean that your hub may still be vulnerable, but it’s better to have only one potential point of vulnerability, instead of dozens in the form of every lightbulb in your home.
There are also steps you can take within Home Assistant itself, if you choose to use it as the brains of your smart home. The developers regularly release software updates (often multiple times per month) to keep your system secure. And crucially, Home Assistant also supports two-factor authentication with an authenticator app, which you don’t need me to remind you is hugely important to enable.
Finally, if you want to go the extra mile, you can even use your Home Assistant device to remove other Zigbee hubs from your network by adding a USB Zigbee dongle such as the Conbee2 to your Home Assistant machine. This essentially enables you to create your own custom Zigbee mesh network, connecting devices directly to Home Assistant. Exactly how difficult this is to do depends on the devices that you’re trying to connect and how willing to cooperate they are. To connect devices, you can either use ZHA, Home Assistant’s default Zigbee-handling software, or an alternative package called Phoscon, which in my experience has slightly better compatibility, but is absolutely nightmarishly counterintuitive to use.
Making it work for you
Ultimately, Home Assistant is great because you can tweak virtually every aspect of the system to suit your needs. Don’t like the interface? You can install or design a better one. It doesn’t detect your automated pet feeder? Then you can find custom code to make it work. There’s no sensor that does what you need? Then there’s nothing stopping you breaking out the soldering iron and using an ESP8266 chip to feed data into the Home Assistant brain.
Give Home Assistant a try today. Maybe the time you save by automating every aspect of your own home will make up for all of the fun times spent tweaking your Home Assistant system so that everything is just right.