In a smart home, 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. On 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 scheduling and automatic operation of lighting, heating, air-conditioning, window shutters, security systems and more.
The many possibilities in home automation enable you to build wireless networks, automate all consumer electronic devices at home, monitor pets when you are away, set up an answering system, create a weather station and more. All of this involves integrating many different home automation technologies into one.
A home automation system works on its own protocols, which are specific to the company that developed the system. Software companies may favour such an approach as it ties customers to only their products. 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 do not 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. 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 these.
Nine open source solutions available in the market, with their main features, are given below.
Home Assistant
This open source home automation platform was 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 MQTT protocol. It can receive information from several sensors using a radio frequency (RF) gateway. It can also be connected to IP cameras to retrieve motion sensing events and send notifications through various services.
openHab
This home automation platform aims for integration and interaction between different home technologies and devices.
Main features are:
- Vendor- and technology-agnostic
- Developed in Java
- Runs on any device capable of running Java Virtual Machine (JVM)
- Integrates different home automation technologies into one
- Comes with different Web-based user interfaces (UIs)
- Provides APIs for being integrated with other systems
MyController
This home automation server allows monitoring and control of the home from anywhere.
Main features are:
- 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
Domoticz
This is a lightweight home automation system that allows monitoring and configuration of lights, switches, sensors and other devices. It also allows you to send notifications and alerts to any mobile device.
Main features are:
- 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, Cubie board, UNIX, Apple and Windows
Fhem
This is a Perl server for home automation, released under GPL licence. It automates tasks like switching on lamps, window shutters, heating and so on. It also logs stats like temperature, humidity and power consumption.
Main features are:
- Runs as a server
- Controls devices via Web or 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 database
- Sends notifications about external programs or scripts when it receives data about certain events
- Timed commands
- Several interfaces: Simple text, JSON, XML, etc
Major DoMo
This is an open source home automation platform designed to be used in a multi-protocol and multi-services environment.
Main features are:
- Can be installed on almost any computer running Windows or Linux
- Easy installation
- Supports many protocols (MQTT, Zwave, I-wave, I-wore, ModBus, SNMP, Ethernet)
- Offers Web-based interfaces for any device
- GPS tracking
- Scripting with PHP and/or Blockly
- Sets up automation rules and scripts
Pytomation
This is a lightweight open source automation system written in Python. The software can be used for home automation and lighting control, though it is not limited to these uses alone. It can work on any platform that supports Python (Windows, Mac OS X, Linux, etc).
Main features are:
- 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 actions
- Works with smart objects like doors, lights, motion sensors and photo cells
- Optional Mini loop programming for complicated controls
- 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
Freedomotic
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, DIY boards, third-party Android front-ends, text-to-speech 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 DIY solutions. It treats the Web, social networks and branded front-ends as first-class components of the system. It can run on Raspberry Pi.
Main features are:
- Written in Java; can run on Windows, Linux, Mac and Solaris
- Can be deployed on a network of cheap peer-to-peer hardware nodes; is scalable and can be used in small apartments as well as large buildings
- Modular: Uses plugins and cross-language APIs, which are distributed along with the software to easily create new add-ons
- Connects to different software, hardware, front-ends and services apps developed in your preferred programming language using REST, STOMP or plain Java
- Runs many front-ends at the same time, even from a remote control
- Has abstraction layer for hardware infrastructure (sensors and actuators)
- Event based: Every action in real environment and every interaction with the system mapped to an event
- Semantic (logic)-rich: Provides semantic-rich knowledge of environment topology, people and objects to implement intelligence and reasoning methods
No coding required; environment can be described using graphical editors
- History aware: Records environment changes in a separate and dedicated database; historical series can be queried to provide charts, reports, alerts or used to create history-aware intelligent automations
- Available in more than 20 languages
Pi Dome
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.
Main features are:
- 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.
This article was first published in Open Source For You July issue.
Vinayak Ramachandra Adkoli is BE in industrial production. He was lecturer in mechanical department for 10 years in three different polytechnics. Now, he is a freelance writer and cartoonist