In a smart home, the controlled objects are typically connected to a hub, which may be a wall-mounted unit, a tablet or even a smartphone. This article lists nine open source home automation tools you can choose from to make your home smart.
Automating your home has become a rather complex task with the ever expanding number of devices available to automatically protect and monitor your home. There are many open source devices to control window shutters, doors, fans, lights, air conditioners, microwave ovens, etc, in the market. One the one hand, you may want to protect your home from theft, fire or other threats, while on the other, you may be interested in reducing your energy usage, for which there are countless devices available. Home automation can include the scheduling and automatic operation of lighting, heating, air conditioning, window shutters, security systems and more.
The possibilities in home automation are many and enable you to build wireless networks, automate all consumer electronics devices at home, monitor pets when you are away, set up an answering system, create a weather station, etc. All of this involves integrating many different home automation technologies into one.
Home automation systems work on their own protocols, which are specific to the company that developed the system. Software companies may favour such an approach as it ties customers to their products only. It is therefore important to evaluate a home automation system to ensure that it is built on open protocols. Such open solutions are released under an open source licence.
Home automation may also allow vital home functions to be controlled remotely from anywhere in the world, using any device with a browser that has an Internet connection.
A smart home is a wonderful thing. It learns your habits, watches out for intruders and even sends you alerts when things don’t go according to plan. And it communicates with you remotely.
Trustworthy and powerful communication protocols like Z-wave or Zigbee still work with open source systems. The hubs that work with open source smart home software are competitively priced, and are perhaps even cheaper in the long run because one can optimise home systems more easily with them.
A list of nine open source solutions available in the market, with their main features, is given below.
This open source home automation platform has been developed with software written in Python. It works asynchronously and has very low requirements in terms of specifications. It can control a home’s lights and window blinds using a programmable logic controller connected to a home assistant using the MQTT protocol, and it can receive information from several sensors using an RF gateway. It can also be connected to IP cameras to retrieve motion sensing events and send notifications through various services.
This home automation platform aims for the integration and interaction between different home technologies and devices.
- Vendor- and technology-agnostic
- Developed in Java
- Runs on any device capable of running JVM (Java Virtual Machine)
- Integrates different home automation technologies into one
- Comes with different Web based user interfaces (UI)
- Provides APIs for being integrated with other systems
This home automation server allows the monitoring and control of the home from anywhere.
- Very lightweight server
- Supports Linux, Windows and Raspberry Pi
- Supports multiple gateways with many protocols – serial, Ethernet and MQTT
- Time based operations
- Gives notifications, alarms and graphical reports
- Comes with interactive dashboards
This is a lightweight home automation system that allows the monitoring and configuration of lights, switches, sensors and other devices. It also allows you to send notifications and alerts to any mobile device.
- Compatible with all browsers
- Works on several operating systems with a scalable HTML 5 Web front-end that adapts to desktop and mobile devices
- Runs on Raspberry Pi, the Cubie board, UNIX, Apple and Windows
This is a Perl server for home automation, released under a GPL licence. It automates tasks like switching on lamps, window shutters, heating and so on. It also logs events like temperature, humidity and power consumption.
- Runs as a server
- Controls devices via the Web or the smartphone front-end, and via Telnet or TCP/IP directly
- Supports several protocols
- Auto creates a device’s logs when receiving data from a new device
- Logs events to files or the database
- Sends notifications about external programs or scripts when it receives data about certain events
- Timed commands
- Several interfaces: Simple text, JSON, XML, etc
This is an open source home automation platform designed to be used in a multi-protocol and multi-services environment.
- Can be installed on almost any computer running Windows or Linux OS
- Easy installation
- Supports many protocols (MQTT, Zwave, I-wave, I-wore, ModBus, SNMP, Ethernet)
- Offers Web based interfaces for any device
- Scripting with PHP and/or Blockly
- Sets up automation rules and scripts
This is a lightweight open source automation system written in Python. This software can be used for home automation and lighting control, though it is certainly not limited to these uses alone. It can work on any platform that supports Python (Windows, Mac OS X, Linux, etc).
- Executes actions based on voice inputs, time of day, file data, serial port data and socket data, as well as serial and speech protocols.
- REST API
- Mobile Web and Android clients with continuous device updates (Web sockets)
- Voice commands from Android (‘Home Control’ app)
- Local telnet and Web access
- Has a unique language to describe devices and action
- Works with smart objects, doors, lights, motion sensors, photo cells, etc
- Optional ‘Mini loop’ programming for more complicated controls
- Very easy to add new hardware drivers
- Good communication, complete with examples
- Maps one command to another with source and time
- Optional ‘Event driven’ programming, for complex actions when the device state changes
This open source, flexible, secure Internet of Things (IOT) development framework is useful to build and manage modern smart spaces. It is integrated with popular building automation technologies like BTicino Open Web Net, KNX Modbus RTU and X10, as well as with custom automation projects using Arduino devices, Do It Yourself (DIY) boards, third party Android front-ends, text-to-speech (TTS) engines, motion detection sensors using IP cameras, social network integration like Twitter, and much more.
Freedomotic complies with well-known standards and building automation protocols as well as with ‘do it yourself’ solutions. It treats the Web, social networks and branded front-ends as first class components of the system. It can run on Raspberry Pi.
- Cross-platform: Freedomotic is written in Java. So it can run on Windows, Linux, Mac and Solaris.
- Distributed and scalable: It can be deployed on a network of cheap peer-to-peer hardware nodes. It is scalable, and can be used in small apartments as well as large buildings.
- Modular and extensible: Freedomotic is modular, and can use plugins and cross-language APIs, which are distributed along with the software to easily create new add-ons.
- Cross-language APIs: You can connect different software, hardware, front-ends and services apps developed in your preferred programming language using REST, STOMP or plain Java.
- Not a single front-end: It can run many front-ends at the same time, even from a remote control.
- Hardware friendly: Freedomotic has an abstraction layer for hardware infrastructure (sensors and actuators).
- Event based: Every action in the real environment and every interaction with the system is mapped to an event.
- Semantic (logic)-rich: It provides a semantic-rich knowledge of environment topology, people and objects in order to implement intelligence and reasoning methods. No coding is required; the environment can be described using graphical editors.
- History aware: It can record environment changes in a separate and dedicated database. The historical series can be queried to provide charts, reports, alerts or even to be used to create history aware intelligent automations.
- Multi-language: Freedomotic is available in more than 20 languages.
This home automation platform has been exclusively developed for Raspberry Pi. It provides solutions for end users as well as developers and hobbyists. Besides being a server, it also includes clients for multiple platforms.
- Suitable for technical and non-technical users
- Runs multiple commands at the same time
- Has a dashboard for all client types
- MQTT broker with client functionalities
- Plugins for utility measurements, universal remote controls, SMSs, media (XBMC) and weather data
- Automatic creation of data graphs
- Allows you to write your own client with Java client libraries
Open source does offer a wide selection of automation solutions to help you make your home smart. You can research on this basic information and choose the solution you feel will work best for you.
The author is a B.E. in industrial production, and has been a lecturer in the mechanical engineering department for ten years at three different polytechnics. He is also a freelance writer and cartoonist. He can be contacted at firstname.lastname@example.org or email@example.com.