I’ve written about home automation a few times in the past, but so much has changed since last time I wrote about it that I feel like I have much more practical advice to give than in times past. I’ve been automating my houses (and formerly rooms and apartments) for over 25 years now, and while I’m not as expert as some people online, I think I am probably right in that sweet spot of knowing most of the advanced stuff and being able to recommend a good path even for new people.
First, some equipment recommendations:
Home Assistant is sort of like Linux. For years I tried to switch to Linux and every time I thought “it’s too much hassle and the benefits don’t outweigh the inconveniences” until ten years ago (almost exactly!) I found that it had finally gotten to the point where it was worth installing. The same has been true of Home Assistant, the most powerful home automation platform. The first time I installed it I couldn’t get anything to work with it. The second time only half of my things would work. This time not only did everything work but it found things on the network that I didn’t even realize could be controlled remotely. I switched over and haven’t looked back.
Home Assistant can be run on a raspberry pi. I knew that I’d have a pretty intense setup, so I bought a small cheap server and installed it on that. What’s amazing about Home Assistant is that it effortlessly configures everything, automatically generates good dashboards, and is extremely powerful for automations. Install Node-RED for a really easy and powerful way to create automations.
I’ve tried every self-hosted NVR platform to connect to cameras and (in some cases) automate based on them. The best option by far ended up being Frigate, which is closely tied to Home Assistant. You can buy cheap Reolink cameras for ~$50 and Frigate will detect people, cats, and other objects. Now I do complex things like alert when people are detected and no one is supposed to be home, increase brightness near doors only when people are detected, etc. It can even count people, so I could make a mode where if 3 or more people are in the pool it switches to pool party mode and starts playing music.
You don’t have to buy Hue, but I find them to be the easiest to set up and the best light quality for bulbs. I used to buy cheaper ones but have now replaced all but a few. They have a wide range of bulb types, including some excellent recessed light retrofits. They work seamlessly in Home Assistant.
WLED is a bit more technical but is amazing for light strips. You buy a cheap ESP32 ($7-10), solder it to the light strip, and you have amazing control over the strip. I get individually addressable strips for a few dollars more which allow me to have cool effects. The main strip in my living room, hidden behind a projector screen beam that I built, has almost lava-lamp like color blobs floating left and right very slowly over time. You can also divide it into segments. I have one strip running through my sauna and steam room with slightly different colors fading in a James Turrell-like fashion. WLED also has a very good phone app and web interface, so once you set it up it’s really easy to control. Of course, Home Assistant has excellent control over it too.
Something I wish I knew earlier was that it’s better to buy higher voltage LED strips so that power can be delivered over longer distances. I just ordered some 24V WS211 COB strips that have 720 lights per meter, and I’m excited to use them over the 5V ones I mostly have now. It’s easy to make a basic controller with WLED, but if you’re driving more power or want to control multiple strips from one unit, get a QuinLED.
Zigbee and ZWave
I try to avoid getting wifi devices and prefer Zigbee and ZWave because they’re easier to pair and they create a mesh network. These cover locks, switches (in cases where there is no practical way to use individual bulbs), and random items like valve controllers and plug in modules. When buying plug-in modules ALWAYS get ones that can read the power usage. They’re a few dollars more expensive but I’ve found that often times I want to trigger something based on how much power it’s using. For example, my pinball machine turns on with an automation, but once the power has been <150W for 5 minutes it turns off because I noticed that it only goes over 150W when playing actively.
Zigbee motion detectors seem to be the best. There are new mmwave presence detectors but I haven’t found a real benefit to them.
Withings Sleep Mat
I love the Withings Sleep Mat. It is very annoying (but possible and reliable once you figure it out) to get connected to Home Assistant, but it’s the best way to detect who is in bed. We have one on each side of our bed and trigger various things like if I’m in bed and my wife isn’t home, shut down the whole house. If she’s in bed but I’m not, shut down the bedroom but leave my bedside light at 1% so I can find my way to bed. When both people are out of bed in the morning, open curtains, turn the AC up, take the house out of high security mode, etc.
Get curtain tracks that use Dooya motors from Aliexpress, and also get zigbee rolling shades. I also have a SwitchBot for an area where I couldn’t get a long enough curtain track but it’s the least reliable, needs to be charged sometimes, and is the loudest.
I don’t have specific recommendations because I bought my curtain tracks a long time ago and the roller shade company I used was just OK.
Google Nest for Speakers
Rather than spend a ton of money on Sonos I just got a bunch of Google Nest Mini and Audio. My use case for music is generally quiet background music and these speakers do well enough.
Now that you have all your gear, what should you do with it?
My goal is to never touch a light switch, and I haven’t touched one in years. If I have to go into the HomeAssistant, WLED, or Hue app, that means that I haven’t automated enough, so I try to figure out how I could have automated the light change.
Almost every change in light, curtain, etc, is prompted by something else. Think about what that prompt would be, and figure out how to automate it. An obvious one is that you only turn dining room lights on when you sit at the table. So put a motion detector on the bottom of the table so that when it sees your legs it turns on the lights. Set a long delay to turn it off— maybe 30 minutes. An extra 10-15 minutes of burning lights won’t matter, but it’s very annoying for lights to turn off prematurely while you’re eating.
Sometimes you have to be more clever. I wanted an automation to turn on the bathroom heater when someone is in the shower and it’s below 60 degrees outside. Rather than try to put a motion detector in the shower, I put a switch that could detect power usage on the bathroom fan. When the bathroom fan detects humidity it turns on higher and uses more power, so I used that as a trigger to turn on the heater.
I did something similar in my tea room. My tea room has a see-through wooden slat wall separating it from the gym. It lets nice light into the gym, but you don’t want to look at gym equipment when drinking tea, so I have a curtain between the two. I have a motion detector at the tea table, but I disabled the curtain triggering from it because if I walked by to grab some tea to drink at my desk it would start closing the curtain. I didn’t want to wait for me to be sitting there for 5 minutes because then the curtain noise would interrupt tea. So I finally hooked a power meter up to the kettle and trigger it only when the kettle turns on.
You can start with basic automations and flesh them out as you go. When I turn on my projector it sets all of the lights to low levels, drops the screen, etc. But it also disables the motion detector in the kitchen. Before I did that I noticed that I would avoid getting water while watching TV because I didn’t want the bright lights to shine on the screen.
Our living room has a wall of windows that we keep plants next to, but during the summer the plants would get singed. So based on the altitude and azimuth of the sun I have those shades open and close. Generally they’re closed when I wake up but as soon as there’s no direct light shining through the windows they open. I also do something similar in my office to avoid sun on the screen.
Spend time building up the logic for different states. I keep track of whether my wife and I are in Vegas, whether we have guests (using NUTs and ESPresence), whether one person is sleeping, whether everyone is sleeping, whether it’s evening, whether people are watching TV, etc. Then it’s easy to make flows that do the right thing in every case.
I also like to build scenes and I name them things like Backyard Evening On, Backyard Evening Off, Backyard Day On, Backyard Day Off, etc. When an action is triggered I just set the appropriate scenes for it. You could also make a switch for “Backyard On” and have it check the time and set the backyard appropriately.
In cases where there’s no obvious trigger, use voice commands. For example, I want to turn on the steam room before I get there, so I just say “Google, steam time”. I may eventually switch to local processing of voice as it has just this year become easy enough to do.
I love using the components of home automation to come up with solutions to problems. I have a pool filler that is basically a hose with a float valve, and I hate looking at it on the patio. So now I’m using ESPHome to design a system that will ultrasonically measure the depth of the pool and then shoot water over the pool equipment fence at night to fill the pool. I’m not sure if it will work or not, but it’s fun to work on.
Building these sorts of automations might sound daunting, but once you do a few they’re actually pretty simple. They also might seem pointless— why not just flip a few switches? The main reason is that to generate a really nice atmosphere you might need to set 4-5 lights to specific brightnesses and even colors, so you just won’t do it. It’s also just really nice to have everything set right all the time. When I walk into my office in the morning the shades are already open. The hot tub turns off and saves money when my wife and I are both outside of Vegas. The AC also goes into vacation mode automatically. When we come home everything is set back how it should be. In the early days I wondered if things were even working because I never saw any lights off. It’s nice to know that all of the doors are locked when you’re sleeping, rather than have to check them all.
I’m surprised more people don’t automate their houses. I guess with almost 2000 words written you could argue that it’s complicated, but even just adding a few things like door locks and bedroom lights is a start that will pay off. Do you do any cool automations that you don’t think I’ve thought of? I’d love to hear them.
Photo is my tea room and new pinball arcade that I built with my dad!
Join me this Sunday at 11am PST (different time than usual) for Tea Time with Tynan.