Getting Started With Home Assistant
If you’ve been using a consumer smart home system for a while you’ve no doubt run into frustrating limitations with either device support or automation capabilities. Google, Amazon, and Apple make very approachable systems for people getting started. These platforms offer quite a bit of functionality to keep you going, but if you really get into building a comprehensive smart home then, sooner or later, you’ll hit a wall.
This has certainly been my experience with Apple HomeKit. I’ve gone to considerable lengths and expense to find workaround for those limitations, but jumping into the open-source Home Assistant platform might well save you a lot of hassle and added complexity. It can seem a daunting prospect, but I should have done it sooner.
What to expect from Home Assistant
Open-source projects like this can often be arcane affairs with limited support and not for the faint of heart, but Home Assistant has been going for over 10 years now, has become the second most active project on GitHub, and has matured considerably in both user experience and support.
The idea of the platform is openness. Giving users the freedom to build the smart home they want, using the hardware they want, built on whatever technology they want. To this end Home Assistant supports all communication protocols, and officially supports a wide range of popular devices and other services like weather forecasts, translators, and voice assistants.
If the product you want to use isn’t officially supported, there’s a good chance someone in the community has built support for it you can use, and you can of course build your own add-ons if you have the inclination. Home Assistant evolves faster than any other platform, with new releases every month adding more features and device support.
The user interface is quite polished, and companion apps are available to make it as easy to use on mobile devices as any of the major commercial platforms. Even so, there’s still a lot to get your head around when starting out. The very nature of Home Assistant that gives power back to the users also inevitably exposes a lot more technical details than you might be used to.
Home Assistant basics
When I started using Home Assistant, it was navigating this surge of new information and terminology that was the most daunting. To help smooth your introduction and avoid scaring you off I figured it would be best to start there.
Devices and Entities
Smart home devices are rarely as simplistic as the tech majors would like us to believe. Even basic devices will have more elements to them than are necessarily exposed to the user’s view in consumer level platforms. This is even more true when we look at devices with multiple functions like multi-outlet sockets or sensors that measure multiple values.
Home Assistant defines a Device as the overarching hardware, with each element or aspect of that device known as an Entity. These Entities further come in different categories: Controls, Configuration, Sensors, Diagnostic and so forth. Each of these can provide something useful for either monitoring or automation in various scenarios. Let’s take an Eve Energy smart plug as an example.
The Eve Energy is a Device. It has a firmware version, a serial number, and various network information associated with it at the device level. It also has a Device Name which is distinct from the names of its Entities. Even though it’s a basic smart plug with just on/off functionality, it actually has 6 entities:
1 Control - the actual on/off switch that can be controlled.
1 Configuration item - in this case this is the power-on behavior to use after a power failure.
4 Diagnostic items - these provide power monitoring and include Current, Voltage, Power, and Energy consumption over time.
The key thing here is that you’ll be dealing with entities day-to-day rather than the device itself. Control and Sensor entities will show up automatically on your dashboard, and it is the name of these entities that you’ll use with voice commands if you use them.
In the following screenshots you can see the device information for an Eve Energy. Note the sections further down for different entity types. We can see the entity ‘Death Star’ (the actual switch) showing in the Overview dashboard.
We can select any combination of Devices or Entities in the History section of the user interface to view historical logging of the data for each. When selecting a Device you’ll get all the entities by default. To be more specific, we can select just the entities we need. In the screenshot I’ve selected just the Control and the Energy diagnostic to show.
Integrations and Add-ons
Integrations
OK, so how do we get devices into Home Assistant? We use Integrations. If you’ve used a tool like Homebridge that has plugins to allow the use of different devices, then you’ll be familiar with how Integrations work too. Integrations provide the means for Home Assistant to talk to specific devices (usually by brand) and services. Services are useful tools that you might want to use to display information in a dashboard or use for automation purposes, like weather forecasts, text-to-speech, shopping lists, Sun position and so forth.
You can find your integrations in Devices and Services under the Settings menu of the Home Assistant user interface. Home Assistant is able to detect a whole bunch of devices on your network automatically and offers these in here as Discovered integrations you can set up. There’s plenty of others that you’ll need to add manually, though.
Home Assistant has hundreds of supported integrations ready to go. Simply use the Add Integration button on the Devices and Services list to open the list. It’s a long list, so you’ll need to use the search bar, but browsing through it can also give you some inspiration for things to add you might not have thought of, such as Minecraft, IFTTT, Amazon Web Services and much more.
If you don’t find what you need, there’s always the community. Many more integrations have been created by third party developers and can be found on GitHub. These will require varying degrees of effort and technical knowledge to implement, however. That’s beyond the scope of this introductory guide, but sticking with the official integrations for now will give you plenty to get started.
Add-ons
There are plenty of things that you might want to do with your newly unlocked smart home that involve more than just connecting devices. That’s where Add-ons come in. These are essentially companion apps that can extend the functionality of Home Assistant. Some good examples of this include:
Matter Server - Adds a websocket server to enable Matter Support, allowing the pairing and use of Matter devices.
OpenThread Border Router - Creates a new Border Router for HomeAssistant to use to integrate with Thread devices. Useful if you don’t have another third-party Border Router already.
AirSonos - Adds AirPlay capability for your connected Sonos devices.
Mosquito Broker - Adds an MQTT Broker that you can use to build integrations with home grown smart devices.
Get HACS - A helpful integration tool for the Home Assistant Community Store.
Add-ons are a bit special, and their availability is dependent on how you installed Home Assistant. You’ll need to factor this in when deciding how to get started. There are quite a few add-ons in the ‘store’ but they’re far less numerous than the integration offerings. This is simply because these address specific functionality requirements rather than the myriad device types that are out there. You’ll only likely come in here if you have a very specific need, and some of these might actually be installed by default for you, like the Matter server.
Add-ons are only available if you've used the Home Assistant Operating System or Home Assistant Supervised installation method. If you installed Home Assistant using any other method then you cannot use add-ons. Often you can achieve the same manually, refer to the documentation by the vendor of the application you'd like to install.
Don’t have Home Assistant yet?
If you haven’t pulled the trigger on setting up a Home Assistant instance yet, you’ll have to decide what you’re going to run it on and thus how you’re going to get it installed. As noted above the installation method will have some other implications like whether Add-ons will be available to you.
Being an open platform, you can run it on just about anything and have a choice of how much control you want over the host device. Home Assistant offers their own operating system, or you can install it on one of your choice using a manual install, container or virtual machine.
My recommendation for new users who don’t have a system ready to install it on is to go with Home Assistant’s own hardware. The easiest option is the Home Assistant Green. This provides a compact, low power host device that is ready to go out of the box. The Home Assistant Yellow is a great option if you’re a bit more comfortable with hardware configuration and want some more capability.
Easiest
Home Assistant Green
A compact, low power smart hub that comes with Home Assistant pre-installed and ready to go. With 4GB of RAM and 32GB of storage on board you'll be set to run a decent sized smart home with Wi-Fi and cloud-based devices. Use the provided USB ports to add dongles for other hardware types like ZigBee, Thread, Z-Wave and Bluetooth.
Extension
Home Assistant Yellow
The big brother of the Green, this smart hub has ZigBee/Thread radio built in making it great for Thread/Matter devices. Choose you're own compute module to suit you needs with up to 8GB of RAM and 32GB on board storage. If that's not anough you also have an expansion slot for M.2 SSD storage and the option of going with Power over Ethernet instead of a plug pack.
With an understanding of these basics and a good platform to host your own instance on you’ll be able to get set up and tinkering with Home Assistant. Of course, once you have your devices hooked up, you’ll probably want to get started with automating things. Setting up basic Scenes and Automations is actually quite straightforward if you’ve used other platforms, and of course there’s a lot more you can do once you start to get more experienced with the system. Look for more on that aspect in an upcoming article.
Home Assistant integrates seamlessly with other major platforms, so you can begin migrating things over bit by bit and learn as you go while unlocking things that you couldn’t do before and still retaining control through those other apps and voice assistants. It’s a win-win and worth sinking your teeth into if you’re enthusiastic about home automation.