Learn ESP32, ESP8266, Arduino, and Raspberry Pi

Basics: Project 106 26 Home Automation Open source platforms

Let’s get some idea about the main terms in use for Home Automation first before going through the open source home automation platforms. So the main terms which you can hear everywhere are:

Home automation is building automation for a home, called a smart home or smart house. A home automation system will control lighting, climate, entertainment systems, and appliances. It may also include home security such as access control and alarm systems. When connected with the Internet, home devices are an important constituent of the Internet of Things (“IoT”). A home automation system typically connects controlled devices to a central hub or “gateway”. The user interface for control of the system uses either wall-mounted terminals, tablet or desktop computers, a mobile phone application, or a Web interface, that may also be accessible off-site through the Internet.

When it comes to converting your home/house to a smart one, you will face two options: commercial or open source home automation platforms. If you have a technical background and like to build your home automation yourself open source is good choice for you. For non-technical users, it is better to find a local company which can setup a open source home automation platform which will be cost-effective. Open-source systems are often supported by a large community of users, developers and engineers, which ensure better support than many commercial systems. Developers will keep the system up-to-date packed with plugins, modules and tutorials.

Security concerns are among the many reasons why open source will be critical to our future with connected devices. Being able to fully understand the programs that control your home means you can view, and if necessary modify, the source code running on the devices themselves.

Smart home merges our home with technologies for easier monitoring, control and automation. So, it makes our home more smart, easier to manage and control. A smart home is equipped with a central system that acts like a brain to monitor devices and appliances, devices and sensors, control peripherals like lights, air conditioning, and automate certain tasks like dimming the light while watching a movie. It’s all about connecting the living space with internet-connected smart devices like smart lights, smart plugs, and smart locks.

Smart homes/houses features:

  • Power consumption less;
  • Increased comfort
  • Improved security
  • Can control your home through mobile or desktop
  • Cost-effective for large homes/houses
  • Automated routine tasks

The Internet of Things (IoT) is a system of interrelated computing devices, mechanical and digital machines, objects, animals or people that are provided with unique identifiers (UIDs) and the ability to transfer data over a network without requiring human-to-human or human-to-computer interaction. The definition of the Internet of Things has evolved due to the convergence of multiple technologies, real-time analytics, machine learning, commodity sensors, and embedded systems. Traditional fields of embedded systems, wireless sensor networks, control systems, automation (including home and building automation), and others all contribute to enabling the Internet of Things. In the consumer market, IoT technology is most synonymous with products pertaining to the concept of the “smart home”, covering devices and appliances (such as lighting fixtures, thermostats, home security systems and cameras, and other home appliances) that support one or more common ecosystems, and can be controlled via devices associated with that ecosystem, such as smartphones and smart speakers.

1. Domoticz

Domoticz is an open source home automation system with an entirely wide library of supported devices, running from weather stations to smoke detectors to remote controls, and a large number of additional third-party integrations are documented on the project’s website.

It is planned with a HTML5 frontend, making it available from work area programs and most current cell phones, and is lightweight, running on some low-control devices like the Raspberry Pi.

Domoticz screen example

Domoticz is written primarily in C/C++ under the GPLv3, and its source code can be browsed on GitHub. You can download it here.

2. Calaos

Calaos is a free software project that lets you control and monitor your home. You can easily install and use it to transform your home into a smart home.  

It is designed as a full-stack open source home automation platform, including a server application, touchscreen interface, web application, native mobile applications for iOS and Android, and a preconfigured Linux operating system to run underneath. The Calaos project emerged from a French company, so its support forums are primarily in French, although most of the instructional material and documentation have been translated into English. Calaos supports a lot: Wago PLC, Raspberry Pi, Zodianet’s ZiBASE, Cubieboard, Squeezebox, CCTV and many others, continuously adding more and more hardware platforms.

Calaos screen example

Calaos is licensed under (GPLv3) and you can view its source on GitHub. You can download it here.

3. Home Assistant

Home Assistant is an open source home automation platform designed to be easily deployed on almost any machine that can run Python 3, from a Raspberry Pi to a network-attached storage (NAS) device, and it even ships with a Docker container to make deploying on other systems a breeze. It integrates with a large number of open source as well as commercial offerings, allowing you to link, for example, IFTTT, weather information, or your Amazon Echo device, to control hardware from locks to lights.

home assistant screen example

Home Assistant provides a vast and seamless integration with Amazon Alexa, Google Assistant, and the open-source voice assistant

With Home Assistant there are 1400+ supported services, and devices. You can easily browse them in the Integrations Library as they are classified under dozens of categories featuring: VoiceUI, Alarm, Automation, Car, Energy, Sensors, Health, Image processing, Multimedia and media players.

Home Assistant is released under an MIT license, and its source code can be downloaded from GitHub. You can download it here.

4. MisterHouse

MisterHouse has gained a lot of ground since 2016, when we mentioned it as “another option to consider” on this list. It uses Perl scripts to monitor anything that can be queried by a computer or control anything capable of being remote controlled. It responds to voice commands, time of day, weather, location, and other events to turn on the lights, wake you up, record your favorite TV show, announce phone callers, warn that your front door is open, report how long your son has been online, tell you if your daughter’s car is speeding, and much more.

Mister house screen example

It runs on Linux, macOS, and Windows computers and can read/write from a wide variety of devices including security systems, weather stations, caller ID, routers, vehicle location systems, and more.

MisterHouse is licensed under the GPLv2 and you can view its source code on GitHub. You can download it here.

5. Open Home Automation Bus (openHAB)

OpenHAB is a longstanding open-source home automation system that comes also with a powerful supporting community. OpenHAB has a plugins-ready architecture which helps developers to add new devices or integrate new services. It also has a developer-friendly REST-API, custom design with time and event-based triggers, notification service, and VoiceUI-powered control.

OpenHAB runs on Linux, Windows and macOS, but it also can run on Raspberry PI, Pine64 and Docker. It offers mobile apps for Android-based devices and iOS app for iPhone and iPad.

openhab screen example

With OpenHAB, the user does not require cloud to run if the user requires a restricted system to protect his privacy, but its developers ensure its a cloud-friendly system if the user requires. In short, OpenHAB can support Google Assistant, Amazon Alexa, IFTTT, and Apple HomeKit. To make OpenHAB ready for the cloud OpenHAB offers a cloud version that can be hosted on their service or the user can host it on his server. It has more than 1500 supported things.

OpenHAB is released under the Eclipse Public License and written in Java. You can download it here. OpenHAB source code can be downloaded from GitHub.

6. OpenMotics

OpenMotics is a home automation system with both hardware and software under open source licenses. It’s designed to provide a comprehensive system for controlling devices, rather than stitching together many devices from different providers. OpenMotics’ platform combines affordable open source hardware with modern cloud solutions.

Easily configure, monitor and use every aspect of your installation with our intuitive interfaces on pc, tablet and smartphone. Unlike many of the other systems designed primarily for easy retrofitting, OpenMotics focuses on a hardwired solution.

OpenMotics screen example

The source code for OpenMotics is licensed under the GPLv2 and is available for download on GitHub.

7. HomeGenie

HomeGenie is an open-source server for home automation, it’s built to manage, control, monitor and automated internet-connected devices (smart devices). It provides seamless integration with many devices, services as well as supports many protocols and technologies like IR/RF Control and UPnP/DLNA.

HomeGenie screen example

Designed on a multi-standard basis, HomeGenie can interface to various devices such as X10, Insteon, Z-Wave, Philips Hue, UPnP/DLNA, RFXCom, KNX, communicate with external web services and integrate all of this into a common automation enviroment. So even if based on different standards, inside HomeGenie, all “modules” can be controlled and automated to work all togheter. With a modern built-in web user interace, HomeGenie can be enjoyed from any PC, smartphone or tablet.

HomeGenie can be installed on Windows, Linux and macOS. Supports Raspberry Pi. It’s fairly easy to install, configure and manage even for novice users. You can download it here.

8. Jeedom

Jeedom is a free, open-source software that can be installed on any Linux system including the Raspberry Pi. It’s core-based with multiple functionalities: simple and advanced management of scenarios, text and sound interaction with home automation system, history viewing and curve and graph generation, linking of all equipment and connected objects, personalization of the interface.

Jeedom screen example

An open-source home automation tool, Jeedom can control many smart devices like lights, mocks, and even media devices. For control on the go, there are mobile apps for Android and iOS. Notably, Jeedom does offer a pre-fab solution for a device that’s ready to use out-of-the-box.

With Jeedom you can:

  •  Manage the safety of goods and people,
  •  Automate heating for better comfort and energy savings,
  •  View and manage energy use to anticipate expenses and reduce use,
  •  Communicate by voice, SMS, e-mail or mobile applications,
  •  Manage all of the home’s automatic devices: shutters, gate, lights, etc…
  •  Manage multimedia audio and video devices, and connected objects.

Jeedom is a great option for home automation that is unfortunately held back by language. The Jeedom community is predominantly French, and even if the website is translated into English, their community guidelines and forums are all in French. In terms of documentation, Jeedom offers many languages, including English, Spanish, and German. However, it might be a bit harder to pick up on compared to home automation platforms such as openHAB and Home Assistant.

The source code for Jeedom is licensed under the GPLv2 and is available for download here.

9. Freedomotic

Freedomotic is an open source, flexible and secure Internet of Things (IoT) development framework. It can be used to build and manage modern smart spaces. It is targeted at individuals (home automation) as well as businesses (smart retail environments, ambient aware marketing, monitoring and analytics, etc). Freedomotic can interact with well-known automation protocols as well as with DIY solutions. It treats the web, social networks and branded frontends as first class components of the system.

Freedomotic screen example

Freedomotic can be integrated with popular building automation technologies like BTicino OpenWebNet, Modbus RTU, Z-wave as well as custom automation projects using Arduino devices, do it yourself boards, third party graphical frontends, text to speech engines, motion detection using IP cameras stream, social networks, and much more… All this features can be delivered from a marketplace as downloadable plugins.

Freedomotic is written in Java. So it can run on Windows, Linux, Mac and Solaris. Supports Raspberry Pi. Freedomotic is available in more than 20 languages.

You can read more about Freedomotic here and download it here.

10. ioBroker

ioBroker is an open-source automation platform written with NodeJS and runs on Windows, Linux, macOS and SBC “Single Board Computers” like Raspberry Pi. It’s a complete platform for IoT “Internet of Things” which supports adding, configuring and managing devices with ease.

ioBroker screen example

ioBroker has hundreds of adaptors that resemble services, devices, other platforms, sensors, security systems and protocols.

ioBroker is a JavaScript-based IoT platform that can control lights, locks, thermostats, media, webcams, and more. It is under the MIT license.  You can download it here.

11. Fhem

FHEM is a GPL’d perl server for house automation. It is used to automate some common tasks in the household like switching lamps / shutters / heating / etc. and to log events like temperature / humidity / power consumption. The program runs as a server, you can control it via web or smartphone frontends, telnet or TCP/IP directly.

Fhem screen example

In order to use FHEM you’ll need a 24/7 server (NAS, RPi, PC, MacMini, etc) with a perl interpreter and some attached hardware like the CUL-, EnOcean-, Z-Wave-USB-Stick, etc. to access the actors and sensors.

Main features:

  • support for a lot of protocols used in house automation, audio/video devices, weather services, online calendars and more.
  • autocreating devices/logs when receiving data from a new device: start FHEM and watch how the plots of your sensors are appearing automatically.
  • logging events to files or a database, with regexp filters
  • notifying external programs or scripts when receiving certain events
  • timed commands (e.g. switching a lamp on from sunset till midnight)
  • lot of interfaces: simple text, JSON, XML, each of them over plain TCP/IP, SSL or HTTP.
  • modular architecture with currently over 430 modules, easy to add your special device
  • lot of frontends

You can read more and download it here.

12. OpenNetHome

OpenNetHome is an open-source hardware/ software system for home automation. It’s based on Java and Apache Maven and runs on Windows, macOS and Linux systems. It also can be installed on Raspberry Pi. It offers a web-based panel to control, manage, monitor and automate smart home functions with ease.

OpenNetHome screen example

With this open-source smart home platform, you can monitor and control many devices including dimmers, fire alarms, thermometers, moisture sensors, and more. OpenNetHome released under GPLv3.

You can download it here.

13. AGO Control

AGO Control is a GPLv3 license home automation system which built for Raspberry Pi and embedded systems. It also offers a bridge-communication with other smart home systems like LinuxMCE.

AGO Control screen example

AGO Control  supports many smart and multimedia devices like Z-Wave, 1wire, KNX/EIB, MySensors, Chromoflex USP3, Onkyo AV Receivers, and a many more.


  • uses an AMQP Enterprise Message Bus as communication backend
  • lightweight protocol, readable by humans and machines
  • modern and modular architecture
  • it comes with cloud features
  • device schema defined in YAML
  • great performance – also runs on embedded devices like the Raspberry Pi and multiple plug computes like Sheevaplug and Guruplug
  • Easy to extend
  • support for many devices and protocols

Supports Raspberry Pi and has Android support too. You can download it here.

14. piDome

piDome is a RaspberryPi-powered home automation platform. It aims to provide an easy-to-use system for non-technical people. piDone supports MySensors, RFXCOM, KODI multimedia system. It offers a server which as we mentioned RaspberryPi-powered and clients for different systems.

piDome screen sample

With piDome the user can create and customize his dashboard, use monitors with different resolutions, and run the piDome clients on Windows, Android and macOS. It provides solutions for end users as well as for developers and hobbyists. Besides being a server, it also includes clients for multiple platforms.

Main features:

  • Suitable for technical and non technical users
  • Runs multiple commands at the same time
  • Dashboard for all client types
  • MQTT broker with client functionalities
  • Plugins for: utility measurements, universal remote controls, SMS, Media (XBMC) and weather data
  • Automatic creation of data graphs
  • Allows you to write your own client with java client libraries

You can download it here.

15. Pimatic

Pimatic is a home automation framework that runs on node.js. It provides a common extensible platform for home control and automation tasks. The mobile frontend plugin provides a nice web frontend with a sensor overview, device control and rule definition. The web interface is build using express and jQuery Mobile.

Pimatic screen sample

Pimatic comes with plugins-ready architecture that allows developers to add devices, services and protocols.

The key focus of this framework is flexibility: it can be picked up rather quickly and “easily.” Thanks to the built-in features, you can immediately automate tasks by connecting your home devices and adding conditional rules.

You can download it here. Supports Raspberry Pi.

16. MyController

MyController is open-source home automation and IoT platform. It’s originally started to support MySensors project. It’s designed to run on a machine with limited hardware requirements. As It’s built with Java it runs on Windows, Linux, macOS and SBC “Single board computers” including Raspberry Pi, Pine64, Rock64, Orange Pi.

MyController screen sample

MyController supports many networks, gateways, protocols and devices. It’s the most compatible home automation system with MySensors in this list.

Supports multiple gateways with multiple protocols: Serial, Ethernet and MQTT. You can download it here.

17. Smarthomatic

Smarthomatic (SHC) is an open source home automation system providing a framework for building up a bigger network of sensors and actuators that all work together. It consists of several completely developed hardware devices you can build up yourself and the software running on those devices.


This project concentrates on hardware devices and their software (firmware), not on user interfaces to control tasks like web interfaces or smartphone apps. Nonetheless this system is designed to be easily integrated into such systems.

Licensed under GPLv3, it’s used for things such as controlling lights, appliances, and air humidity, measuring ambient temperature, and remembering to water your plants.

You can download it here or visit GitHub page.

18. EventGhost

EventGhost is a popular home automation open source (GPL v2) program for Windows used by many in the community to automate simple tasks. Thanks to this simple framework, you can create so-called sets of tasks, sort of like automation paths that your devices go through. 

EventGhost screen example

One of the best features about EventGhost is that it is extensible, and has over 300 unique extensions (plugins) available. Some examples of devices that EventGhost is able to talk to are Yamaha, Denon/Marantz, Pioneer, Sony, Sonos, Samsung, RTI, Amazon Echo, MicasaVerde Vera, Phillips Hue, and many others. Supported automation protocols include but not limited to MQTT, IFTTT, TCP/IP, Serial (RS-232), CIR (IR remotes), X10, xAP, xPL, pretty much any spoken human language. EventGhost can even automate tasks on the computer it is installed on. Things like keyboard operations, mouse movements, opening and closing running programs, changing sound and video settings, and powering on and off you monitors. Some examples of events that get triggered from various changes on the computer are plugging or unplugging a USB device, when the computer changes from outlet to battery power (UPS or laptop), logging on or off, starting and stopping of remote desktop sessions, you can even have EventGhost trigger an event if a file has changed. Abilities like this are what make it the most powerful tool in your home automation arsenal.

EventGhost allows users to control media PCs and attached hardware by using plugins that trigger macros or by writing custom Python scripts.

 You can download it here.

19. MajorDoMo

MajorDoMo is an open source home automation platform aimed to be used in multi-protocol and multi-services environment. Available for Windows and Linux OS. It has multi-brand and multi-protocol support (MQTT, ZWave, 1-wire, ModBus, SNMP, Ethernet).

It’s created by a group of developers from Russia so it’s still expanding its territories to the international market with better English support.

The user interface is a web-based interface easy-to-use for non-technical users. The user can add rooms, devices, configure automated events, integrate web applications and cloud-based services.

MajorDoMo screen sample

MajorDoMo released under MIT License. You can download it here.

20. LinuxMCE

LinuxMCE or Linux Media Center Edition acts as a bridge between media and smart home tech. LinuxMCE is a complete home automation suite built as a Linux distribution, running on the Raspberry Pi. It comes with pre-built and pre-configured server and UI system that allows easy integration with many devices services with the support of many smart devices protocols like VoIP, QoS, HDMI and more.

LinuxMCE screen sample

LinuxMCE is released under the Pluto open source license. You can download it here.

21. Gladys

Gladys is lightweight home automation written with NodeJS which runs on Windows, Linux, macOS and Raspberry Pi. Gladys3 is current stable version but it’s not compatible with Raspberry Pi. Gladys4 Alpha is currently in the testing phase.

Gladys is a single man’s army project so far, but it starts to get the attention of developers and hopefully, it will get more community support soon.

You can download it here.

23. The Thing System

The Thing System is a set of software components and network protocols. Our steward software is written in node.js making it both portable and easily extensible. It can run on your laptop, or fit onto a small single board computer like the Raspberry Pi.

The steward is at the heart of the system and connects to Things in your home, whether those things are media players such as the Sonos or the Apple TV, your Nest thermostat, your INSTEON home control system, or your Philips Hue lightbulbs — whether your things are connected together via Wi-Fi, USB or Bluetooth Low Energy (BLE). The steward will find them and bring them together so they can talk to one another and perform magic.

You can download it here.

24. Pytomation

Pytomation 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).

Pytomation web interface

Right now Pytomation is only available from the git repository. You must make sure you have git installed on your system.


  • Executes actions based on voice inputs, time of day, file data, serial port data and socket data, as well as serial and speech protocols.
  • 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

25. Eclipse SmartHome

Eclipse SmartHome is a flexibe open source framework for the smart home.

Eclipse SmartHome is a framework for building smart home solutions. With its very flexible architecture, it fosters the modularity provided by OSGi for Java applications. As such, Eclipse SmartHome consists of a rich set of OSGi bundles that serve different purposes. Not all solutions that build on top of Eclipse SmartHome will require all of those bundles – instead they can choose what parts are interesting for them.

There are the following categories of bundles:

  • config: everything that is concerned with general configuration of the system like config files, xml parsing, discovery, etc.
  • core: the main bundles for the logical operation of the system – based on the abstract item and event concepts.
  • io: all kinds of optional functionality that have to do with I/O like console commands, audio support or HTTP/REST communication.
  • model: support for domain specific languages (DSLs).
  • designer: Eclipse RCP support for DSLs and other configuration files.
  • ui: user interface related bundles that provide services that can be used by different UIs, such as charting or icons.

The source code of Eclipse SmartHome is available on GitHub.

26. Node-RED

Node-RED is a IOT programming tool for wiring together hardware devices, APIs and online services in new and interesting ways.

Node-RED provides a browser-based flow editor that makes it easy to wire together flows using the wide range of nodes in the palette. Flows can be then deployed to the runtime in a single-click.

JavaScript functions can be created within the editor using a rich text editor. A built-in library allows you to save useful functions, templates or flows for re-use. The light-weight runtime is built on Node.js, taking full advantage of its event-driven, non-blocking model. This makes it ideal to run at the edge of the network on low-cost hardware such as the Raspberry Pi as well as in the cloud.

Node-RED programming tool

With over 225,000 modules in Node’s package repository, it is easy to extend the range of palette nodes to add new capabilities. The flows created in Node-RED are stored using JSON which can be easily imported and exported for sharing with others.

You can download it from GitHub.

We hope you have found this list useful. Have you ever used one of these platforms? Let us know by leaving a comment below.

Check for more DIY projects on and!

If you are looking for high quality PCBs PCBWay is the best choice: