The Ultimate Guide To Home Automation Software
Home automation is quite common commercially these days. Big companies such as Amazon and Google have products that are the entire experience in one neat little package. While offers like these are very tempting due to their availability and constant media attention, there are countless alternatives when it comes to automation software. Here is my list of the best home automation software, along with my recommendations for which you should pick.
Table of Contents
- What is home automation software?
- Factors to consider with each application
- Totally free automation software
- Paid automation software
What is home automation software?
With so many different products that all use terms like "hub" or "controller", what is home automation software really? The answer is simply that it is any software that enables the control of one or more device. Merely controlling things is not too exciting, so almost every application on this list also supports the creation of automations which are the bread and butter of this industry. An automation is a set of rules matched to a set of actions that will do something when the rules are evaluated as being true.
A more concrete example is a situation where you want to automatically turn the lights off in a room after 5 minutes. The rules would be that: 1) the light in that room is on, 2) it has been 5 minutes or more since it was turned on. When those conditions are met, the software will then execute the associated action, which can be of any complexity. In this case, it is just one step: 1) turn off the light in the room. This basic principle is the foundation of automation and is what makes things interesting. It's important to remember that this example was arbitrary and basic, you can define any number of conditions and actions!
Factors to consider with each application
In determining what the "best is", there are a few factors that have been used. The first is that of usability or how easy it is for a new user that knows nothing about the system to pick it up and start doing meaningful tasks. Generally, this factor is inversely proportional to the one of customization and freedom of modification, but some programs manage to get the best of both worlds.
Speaking of customization, that is our next factor. When you are using a home automation system, you should feel like it is complimenting your efforts, not working against them. Many of the projects we will mention have virtually no limits to how they can be modified or extended, but these benefits are often at the cost of usability. If it becomes too difficult to use, it doesn't matter that the system offers great features because no one knows how to use them!
The two final factors are community and projected longevity. Community is an easy one to grasp, we are looking for projects that have users who can experiment with things and offer their solutions. There is nothing better than having a problem and being able to look it up and have a thread on the forum go over exactly how to fix it. Smaller projects, unfortunately, don't have this, and it results in the user being alone for many of the issues they encounter. Finally, we must consider how long we should expect the project to be around. There is little point in building a system around an application that could become inactive and unsupported next year!
Totally free automation software
The projects on this list are completely free with no gotchas. Many of them are open-source, though that isn't a requirement to be listed here.
Home Assistant is a project that we talk about a lot here, and for a good reason! It provides an integration for virtually every device in existence, allowing you to worry less about getting compatible devices. Even if the hardware is not supported by default, the forum is full of custom scripts that can be used to integrate it. The forum is another benefit, the huge community behind Home Assistant is super active on the forum and all over the internet in general. Using this software, it is improbable you will ever feel alone.
There is support for scripts using the UI or YAML for most basic situations, along with Python scripts for more complicated extensions or automations. All of this is very well documented meaning you won't have to do much guessing while you are trying to get something working. The final benefit is that this software can run on many different systems ranging from a Raspberry Pi to a dedicated server. These reasons are why I recommend you consider this as your automation software.
Often compared to Home Assistant, OpenHAB is indeed very similar in a lot of ways. Almost all of the benefits provided in Home Assistant also exist here, along with some different features to make it stand out. They provide plugins for almost every device you could possibly want to use and also allow users to create their own plugins, increasing the list of supported hardware every day. They offer a rule engine for creating automations, along with a more advanced script-like interface that can be used to implement more complex automations.
Those familiar with programming will probably like the syntax, although a common criticism is that the rules are too complex for regular users to use while being lacklustre compared to most programming languages. Core extensions can be developed using Java when adding new external devices is needed. The entire program is developed in Java which allows it to run on almost any computer you want. It also has a lot of support and guides for running the system using a Raspberry Pi. These reasons are why I recommend you consider this as your automation software.
HomeBridge is not quite as fully featured as the first two on this list, but it is an interesting project none the less. It is specifically designed to act as a bridge between a HomeKit ecosystem and other competing products. A common use is to add a device like a Nest thermostat to your HomeKit hub. Without the use of this software, such use cases would not be possible. Despite this primary use, many plugins offer standalone functionality, which could be useful. If you currently have HomeKit devices or are considering it, this project is beneficial!
While it is designed to work as a full-fledged home automation controller, it is a popular choice for implementing specific types of automations that would otherwise be difficult. An example of this is how it can be used to control a Windows computer, allowing the creation of rules that involve computer actions, like navigating to a website. Many will use this to open a media player or navigate to their favourite streaming website when a trigger is sent from a central system like OpenHAB.
Despite that, it is capable of being a standalone controller and offers many features to prove that. There are over 300 plugins that integrate external devices. As mentioned earlier, it offers keyboard and mouse emulation, which is great for automating a computer for things like a home theatre. The community is fairly active and is of a decent enough size that should you have any problems, there is probably someone else in the same situation.
This is a featureful option that supports a web UI adapted for mobile or desktop, many different ways to implement automations, along with a big library of compatible devices. It offers block coding for automations, allowing users to drag and drop blocks together to define the reactions to each situation. The documentation behind this system is extensive: there is a PDF manual with 36 pages that explains the basics along with a massive wiki detailing each aspect of the software. Scripts can be written in Lua, but there is also support for Perl and Python. The community on the forum is also really active, making this a good option.
Calaos is another French project that supports a long list of hardware and platforms. The software stack includes a server application, a touchscreen user interface, web app, Android app, and an iOS app. As a result, there is no shortage of ways to control Calaos, resulting in a versatile system. The project has a forum that seems to be quite active, with many questions already answered. The problem is that almost everything is in french. The wiki does not seem to be updated often and is missing a lot of information a newcomer might want to obtain. While this project is certainly interesting, it will probably require a lot of tinkering to get going.
While most of the options on this list are focused on managing the smart home, smarthomatic is designed with a focus on the hardware and their firmware. The system is easily extendable, though extensions will require vast technical knowledge to complete and are not for the uninitiated. One interesting benefit is the depth of technical detail provided by the system, which could be useful to those looking to build smart devices from the ground up. While the software is interesting, it is not inviting for those who aren't technical and does not seem to have much of a community.
A simple system offering a dashboard and a block-based scripting language. Blocks can be connected together to create reactions when certain events occur, such as turning on the lights when motion is detected. The strength of this system lies in its simplicity and extendability, which can be very desirable for more technical users. The community is mostly found on their IRC channel with the forum being a bit quiet. The software can run on almost anything, and they also offer an Android app to control the system on the go, though iOS users will need to use the web app. This is definitely a system for more advanced users who have technical knowledge.
Well known in the world of home automation, FHEM is a Perl automation server. They provide support for a long list of protocols and devices, though sometimes the protocol is supported and integrating the device is less simple. Despite the benefits, it is not the most user-friendly software on this list and is certainly geared towards more technical individuals. Many pages on their website are in German only, which can make things hard to understand. This is a good option for those who are technically inclined and like to tinker with their system.
Paid automation software
The following software either costs money to download, or requires a certain ecosystem that must be purchased.
Compared to many of the free options, this one offers some serious features. Their biggest claim to fame is the long list of supported devices out of the box, with no changes required by users. Like the free options, HomeSeer offers plugins to add additional functionality. The difference is that every plugin costs money to use, although some are priced at 0$ in the store. It's worth mentioning that you can try new plugins for 30 days before you need to pay. One benefit is the professional support you get with the software. Since you are a paying customer, you will receive the same support as commercial products.
The downsides are mostly that there is not much room to customize things nearly as much as the open-source options. There should be little need to, but if you wanted to add new functionality, the short answer is that you can't. The cost for a single license is also around 250$ to buy, so it's also a little expensive.
Included here for its "freemium" model, it is technically totally free - but only if you own an iOS device. That technicality becomes more important when you consider that only some Apple devices can be used as a hub, which is required to create automations and control your home remotely. Despite this, it offers a really great ecosystem of its own that gives buyers confidence that what they buy will work without hassle. HomeKit is the easiest system to use on this list by far, with the biggest downside being that it requires Apple devices to use. If you want to know how you can use a Raspberry Pi as a "hub" of sorts, check out my article on that here.
As you can see, there are a lot of options when it comes to home automation software. Every project has its pros and cons, so picking one as the single best is not an easy task. Despite the long list of differences, I would never hesitate to recommend Home Assistant or OpenHAB to anyone looking for smart home software. The community is what makes both of these projects shine and keeps everything moving forwards. If you'd rather not tinker with things, take a look at HomeSeer or even HomeKit. Both of those options are a lot less involved while still delivering great automation potential.