For the holidays, we're highlighting some awesome Free/Open Source software -- three amazing platforms that have gone far beyond any commercial/proprietary competitor.
This time, our pick is the best all around home automation system you can get: HomeAssistant. HomeAssistant is a program to manage and automate your house. It's entirely free, it respects your privacy, and it can do more for you than pretty much anything on the market!
Automate your home without destroying your privacy
Voice assistants like Alexa are popular these days, and they are capable of controlling many devices in your home -- if you allow Amazon to peer into every corner of your house. And each thing you want to automate needs to connect to Alexa somehow for it to be able to work.
You can actually connect Alexa to HomeAssistant, and let it control lots of devices you couldn't otherwise control! If you don't mind the privacy invasion.
For me, that's a hard no. We don't want random people listening to our conversations. We don't want our home or devices in it spying on us.
With HomeAssistant, you can connect to a lot of the privacy-invading hardware devices on the market, hook everything up very easily to a central control panel that does far more than any of these devices on their own.
But you don't have to... you can also build your own hardware sensors or switches, or flash open firmware like Tasmota or ESPHome, which replace manufacturers' remote aggregation of your data with a stream that only goes to your own HomeAssistant.
So if you've already given up your privacy to these devices, HomeAssistant can really streamline what you're doing in your home, while providing you a path towards reclaiming it.
As always, when self-hosting, getting started is the hard part. You do need some computer somewhere, ideally in your house, to run the software. The most popular way to do this is using a Raspberry Pi, an inexpensive single-board computer. With a Raspberry Pi, you can put the HomeAssistant image onto an SD Card, put it in the Pi, connect it to your network and you're off and running.
For controlling hardware, much of it can be controlled over WiFi, or Bluetooth (which has been getting far more capable recently). There's a new standard for home automation devices called "Matter", and HomeAssistant already supports it. But at this writing getting ahold of devices that can handle that might be a bit of a challenge.
I started out with a combination Zigbee/Z-Wave antenna that plugs into the Pi's USB port, and with that you can add nearly any Zigbee or Z-wave device. I started with some Zigbee smart plugs and smart bulbs, and soon added door sensors and then started toying with do-it-yourself motion and temperature sensors. Once you have the base system running, adding new devices takes a few minutes!
In many cases, adding an integration is a matter of opening the HomeAssistant dashboard, and see them show up in Notifications.
Follow the "Check it out" link, and it takes you to the integrations page where you can immediately activate and configure the integration.
You can set different areas in your house, and assign each device to an area.
But you're not limited to just devices that can be auto-detected. There are over 2,000 integrations built for HomeAssistant, everything from cars to weather, curtains and cameras to soil sensors and grocery lists.
What can you do with all of these integrations? Start by putting them on a dashboard! There's a default dashboard where all your integrations start to appear once you've configured a few things -- but it's really easy to create your own dashboards -- or multiple dashboards for different rooms, interests, or whatever.
You can create a micro-climate weather dashboard to show temperatures throughout your house, along with wind/rainfall data. You can create "scenes" that define a particular set of lights, music, to activate with a tap on a touchscreen. You can put your dashboard on a tablet, or a touchscreen unit you can mount on your wall.
And then you can start automating things more...
Trigger by time, location, sensors
Automating things may sound complicated, but they really boil down to 3 parts: a trigger, a set of conditions, and a set of actions. HomeAssistant now has the concept of "Blueprints" with automations pre-defined -- for example, you can install a Blueprint for a motion-activated light and quickly hook up any number of lights in an area to turn on when a motion sensor is activated, and then shut off after a certain amount of time later.
The great thing about HomeAssistant is that you can automate things from wildly different integrations, because HomeAssistant talks to everything. You can have it send you a chat message in Matrix with your grocery list when your phone enters a zone you define around a local grocery store, or set a "do not disturb" color on a light bulb when you're about to record a video, or flash the lights at bedtime and turn off the tv 5 minutes later. We have our main living room lights come on 30 minutes before sunset, and turn off at bed time. One light in the corner comes on for 5 minutes when it detects movement in the room, especially helpful for overnight guests.
This is just scratching the surface of what it can do. We're wiring our house trim with LED strips, and adding a WLED controller to control their color -- and with this setup, when my wife gets home they will all turn white and twinkle slightly -- she's a purist -- and then when she leaves it can go back to the colored Christmas lights my daughter and I prefer. And then we can go blood red and orange for Halloween...
There's already an Energy tab that can hook into a solar panel system, and it can also talk to your cars and the Smartgrid, to track energy prices, power levels, and usage to help you optimize as the Smart Grid becomes a thing.
And the system has hundreds of contributors, dozens of new integrations every month, and more activity than any commercial home automation system can hope to keep pace with.
If you have a home, or live in one, you should be checking this out.