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.