We run Home Assistant as the hub for everything smart in the house, about thirty automations at last count, covering lighting, security, chores, and an RV parked somewhere else entirely. This is a look at what it actually does day to day.
Home Assistant is an open source home automation platform: you point it at whatever smart devices you own, and it gives you one place to see and control all of them, plus an automation engine for “when X happens, do Y.” It’s self-hosted, meaning it runs on hardware I own rather than a company’s server. Mine is a Raspberry Pi, with a Zigbee USB adapter plugged into it for the devices that speak Zigbee directly.
A lot of different devices, one hub
The reason a hub is worth running at all: there’s no single ecosystem for smart home devices, so the house has ended up with several. Home Assistant is what lets them act like one system instead of five separate apps.
- Zigbee: a coffee table button that runs the living room hi-fi, and the rest of the low-power sensors and switches around the house.
- Tuya: the largest single group of devices, mostly plugs and switches from whichever brand happened to be cheapest at the time, all of which turn out to speak Tuya’s cloud protocol underneath.
- ESPHome: small DIY sensor boards, cheap microcontrollers flashed with open source firmware instead of a manufacturer’s app.
- Thread, HomeKit, TP-Link, VeSync, SmartThings: whatever other protocol a given device happened to ship with.
- WiiM, Denon HEOS, and Spotify: the streamer, the amp, and the music, covered in detail in the hi-fi write-up.
The house runs on the sun
A good chunk of the lighting doesn’t run on a clock, it runs on the sun. Home Assistant knows the actual sunrise and sunset time for our location every day, so:
- Lights come on before dark: the house lights an hour before sunset, the landscape lights right at sunset.
- Lights go off overnight: bedroom and office lights at a set time, landscape lights later, and everything else at midnight, with a backup automation that runs late in case anything got missed.
- A couple of lamps just do their own thing: one turns on before sunset because it looks good in the evening, another turns on at 5am for no reason beyond that it looks good then too.
On top of the schedule, most rooms also have a physical button on the wall: the den, the kitchen, the patio, and a bed-side lamp button for each of us, since “just tell the house to turn off the light” is still slower than reaching over and pressing something.
Knowing which room people are in
A couple of automations exist purely so we know when the other person gets home, without asking: one notifies me when Chelsea gets home, the mirror of that notifies her when I do. Motion at the front of the house and in the garage triggers its own lighting and an alert, separate from the arrival notifications.
The more interesting version of this isn’t “who’s home,” it’s which room someone’s actually in, using presence sensors rather than simple motion triggers:
- The fragrance machines: we run home fragrance diffusers, the kind hotel lobbies use, and we deliberately made them fussy about turning on. One won’t start unless there have been at least two people in the room for a couple of minutes straight, so it’s scenting a room that’s actually in use, not firing off because someone walked through. The refill solution runs $120 a bottle, and being that selective about when it runs stretched a bottle that used to last a few months into one that’s lasted two and a half years.
- A dim light for walking through the kitchen at midnight, instead of the full overhead lights.
- Lighting the path toward the bathroom when someone’s heading that way at night.
- The puzzle table: gets its own light, but only if someone’s actually sitting there and the ambient light in that part of the room has already dropped below a threshold.
Most of the house runs on a schedule because most needs are predictable. Presence sensors are for the parts that aren’t, when whether something should happen depends on who’s actually there and what they’re doing, not what time it is. And then some things just need to happen immediately on demand: the landscape lights come on the instant they’re triggered at 1am, because that’s what “the dogs need to go out” actually requires.
Keeping an eye on the RV
The same hub also watches an RV parked at a different property, on its own wifi, which was not something I expected to end up automating. That works because the sensors on it are Tuya devices, which talk to Tuya’s cloud rather than needing to be on the same local network as the rest of the house. My home server just talks to that same cloud, so it doesn’t matter that the RV isn’t anywhere near it physically.
Humidity, leak detection, and power consumption all get monitored. Humidity is normally handled on its own by an onboard humidifier, so the notification only matters when that’s not keeping up and something actually needs a second layer of response: driving out there to run a heater, or checking whether a window got left cracked in the rain. Leak detection and power draw work the same way, they’re not trying to fix anything themselves, just make sure I find out before it becomes a real problem. It’s a high-level view of whether everything’s fine out there, without needing to be standing in it to know.
The chores
- The lawn: waters itself on a weather-aware schedule, detailed in its own write-up, with separate scripts to start or stop it by hand when the schedule doesn’t fit.
- The espresso machine: gets pre-warmed automatically, well before I’m actually in the kitchen, because it wants a full 10 minutes to get up to temperature, plus more time for the portafilter’s metal to warm and expand, and the rest of the nerdy espresso shit that actually matters if you care about the shot. It also gets flagged separately if it’s been left on longer than it should be.
Triggers that aren’t Zigbee
Not every physical trigger in the house is a Zigbee button. There’s a script tied to my phone’s iPhone Action Button for a quick one-tap action, and spoken announcements around the house go through Home Assistant’s text-to-speech rather than a written notification, when the message is worth actually hearing.
The point of all of it
None of this is one big project. It’s about thirty small ones, each solving a specific annoyance as it came up: a light that was always off when we needed it on, a chore we kept forgetting, a question (“is anyone home?”) that used to require a text message. A few of them, like the lawn watering schedule and the coffee table button, got detailed write-ups of their own. Most just quietly work.