I've loved the idea of a smart home for years. When COVID hit, and I found myself in desperate need of a hobby to stay busy, I decided to dive headfirst into home automation. Soon after I realized how much depending on cloud services sucks, and I resolved to run everything in my home locally, with no dependency on anyone else's computers anywhere else on the internet.
A few months, a small fortune, and a lot of curse words later, I ended up with a pretty decent setup. I wrote this conference talk about all of the lessons I'd learned.
The first thing you should do, if you haven't seen it, is check out the presentation.
The rest of this README is supporting information geared to people that have already seen (or read) the talk.
I've really liked the switches and bulbs I've purchased from Inovelli. Fantastic build quality, tons of features, and a very active community with lots of interaction from the company.
I've also had decent luck with Zooz products, not counting the occasional need to reset a device that wouldn't pair right away.
- Z-Wave USB stick
- ZSE-18 Motion Sensor
- ZEN32 Scene Controller
- ZEN74 Toggle Dimmer Switch
- ZSE42 Water Leak Sensor
I'm a big fan of physical triggers for automations, and the Flic 2 Starter Kit makes it easy. Each button is about the size of a quarter, sticks to surfaces with adhesive, and lasts for months on a coin battery.
You can wire up events to a single press, double press, and press-and-hold, and one of the events you can trigger is an API call.
I have mine making webhook API calls into Home Assistant, which then trigger automations to turn on lights, fans, etc.
The ESPHome Project has come a long way recently, and it's never been easier or cheaper to connect electronic components like sensors and IR transmitters to Home Assistant.
This is really where a locally controlled smarthome shines, and you become able to automate things that would literally be impossible any other way.
The M5 AtomS3 Lite is one of the ESP32 boards I use a lot. It has an on-board button and RGB LED, which makes it a great for implementing the "kill switches" I talk about; the LED can indicate whether an automation is enabled or not, and clicking the button can toggle it.
My control panel is a NSPanel Pro installed in a 2-gang wall switch by my front door.
The switches I replaced were controlling lights, so I just wired those lights to be always-on and put smart bulbs in them. This made room for the panel, and I can still control the lights through Home Assistant.
I got all of my Raspberry Pi, sensors, and electronics stuff from Adafruit. Great selection, fast shipping, awesome support and documentation.
There are two different systems that use BLE tracking to determine which rooms people are in. I used ESPresence first and it was pretty solid, but it required dedicating an entire ESP32 to presence detection. They aren't terribly expensive, but there are a few places where I would have liked to have been able to add another sensor or something to that device.
I'm currently experimenting with Bermuda which uses the BLE Proxy component of ESPHome for tracking, which allows you to add other sensors and components through ESPHome as well.
Really easy to set up, if you have a few electrical components laying around.
I have a number of different IR-controlled fans that I wanted to automate. I've done this by using ESP32 microcontrollers and ESPHome.
Each controller includes:
- A light sensor or camera to read the fan's current state (on/off, power level, etc)
- IR transmitter to send commands
- 3D printed enclosure so it looks a little less like a bomb stuck to my fan
One of those projects (the one with a camera) I published to Github: Pureflow Fan Monitor
I've tried using Raspberry Pi cameras with RPi-Cam-Web-Interface and I've also hacked some cheap Wyze cameras with a custom firmware so that I can store the videos locally, instead of on Wyze servers.
Both of those solutions work, but they require a bit of fiddling.
Ultimately, I've been way more satisfied with the Amcrest IP camera that I installed using PoE. You're going to pay more money for cameras that don't use cloud services, but this one has been solid.