DIY Smart Home

Many store-bought home automation devices send private household data to cloud services that follow questionable privacy and security practices. Even when a service is run by a trusted company today, the service can be shut down, sold to someone less trusted, or handed off to new management with new business goals.

Fortunately, several open source projects are actively being developed to help you build your own smart home and digital assistant systems that function exactly how you want them to while allowing you to preserve control over your own data and how it is used. However, be prepared to invest a significant amount of work and study time into your project.

Smart outlets and switchs allow you to power devices on and off remotely.

Open source projects

Rhasspy

Rhasspy is a loosely connected set of tools for creating a personal voice assistant. Speech recognition and generation can both be done on your own computer without siphoning your data off to the cloud.

The components installed with Rhasspy can communicate with each other in various ways, most notably using MQTT and the Hermes API. Hermes was developed by Snips.ai, which had been a privacy-focused voice assistant platform before it was sold to Sonos.

Node-RED

Node-RED is a browser-based programming tool for wiring together hardware devices, APIs and online services. Most of the programming is done with a graphical "language" consisting of nodes that receive some kind of data, transform or act upon the data, and then send messages out to other connected nodes. These small programs are called flows.

Built-in nodes make it easy to communicate over a network using a variety of protocols and message formats and to define primitive logical flows. For more complex scenarios, it is fairly easy to extend with custom nodes implemented in JavaScript. Node-RED's users have produced thousands of custom nodes and flows which they have shared with the community.

Home Assistant

Home Assistant is home automation software, primarily for the Raspberry Pi. It is an ambitious project with an active community.

Mycroft

Mycroft is a voice assistant that is both an open source software project and a physical commercial product. Mycroft aims to be a full-featured competitor to similar devices sold by large tech conglomerates. It does use some "cloud" features by default, but this is configurable.

Tasmota

Tasmota is firmware for smart home automation using ESP8266 and ESP8285 wireless devices.

Useful hardware

Arduino

  • Arduino UNO
  • Arduino Nano
  • Arduino Leonardo
  • Arduino Micro

ESP8266

The ESP8266 is a small, inexpensive microcontroller with 802.11b/g/n Wi-Fi capability. It can be programmed much like an Arduino device.

ESP32

The ESP32 series of microcontrollers are similar to the ESP8266 but with Bluetooth support along with more speed, memory, storage.

Raspberry Pi

Raspberry Pi devices are more like small computers than large microcontrollers.