Skip to main content
  1. posts/

Simplifying my Home Automation Setup

·4 mins

I’ve been going down a serious Home Assistant rabbit hole lately. After rebuilding it from the ground up post-piPocalypse, I just kept going with. I love the simplicity of the iOS Home app, went hard on automations for it, and had even set up a Homebridge server to port things over to the Home app that weren’t HomeKit certified. But I kept hitting walls with the Home app.

First, the automations are very limited. Except for certain time of day exceptions, it’s hard to create automations that have conditionals. Like, I wanted to turn off my bathroom fan if it has been on for 30 minutes, but only if the humidity in the bathroom was low. You can kind of do this by having it trigger a Shortcut, but it felt cumbersome, and I found Shortcuts generally flaky to run consistently.

I also really got into customizing Dashboards for Home Assistant. I really like maintaining temperature, humidity and state graphs for my various rooms to help with troubleshooting. And Home Assistant actually has logs. It logs every single thing that happens on the instance. And you can add pre-filtered logs to your different rooms. I cannot overstate how valuable this is for troubleshooting weirdness with automations. When you over-engineer home automations like I do, you really need to figure out which automation triggered a device state.

Recently, I took the time to set up the Home Assistant Homekit Bridge, which lets you send devices from Home Assistant to Homekit. I’d gotten the idea from an article from Matt Howie that I read (and thankfully bookmarked!) a while back. It was super helpful to get my head around it. This let me deprecate my HomeBridge server to simplify my stack a bit.

I’m not gonna lie, I was nervous as hell doing the Homebridge deprecation. I had a ton of customizations and tweaks across my HomeKit devices. And my family has (justifiably) little patience for things going wrong with devices in the house. So I treated it like a little project, documenting all my devices and whatnot that were in HomeBridge, and making a checklist for myself to go through. And the process actually went… pretty okay!

One challenging thing doing it this way is I have certain devices added natively to the Home app that were also in Home Assistant (I wanted to keep it this way.) But I didn’t want to duplicate devices, so I went with HomeBridge server’s option for ‘include’ where you choose specific devices to include (handy since I had made a list of things in my planning notes.) But one step I messed up is the ‘domain’ part. You choose certain ‘domains’ to include in the setup, like lights, sensors, locks, etc. I kept most of these as I figured I’d only be including devices I specifically wanted to. But I was wrong! I missed that if you include a domain, but don’t include devices from that domain, it defaults to including them all. So I had duplicates of media devices like my Apple TV, Sonos, etc that made my Home app look cluttered and weird. (Media devices ported over are especially weird because they look like ‘switches’.) Luckily, I could just remove those domains from the HomeKit Bridge integration, and they disappeared from the Home app.

I then had to spend some time meticulously identifying each device’s room, and making sure they showed up again in my Home App’s ‘scenes’ so the various buttons and whatnot to trigger scenes will still work as expected.

Despite my planning, I’m sure there will be some kinks to work out over the next few days. But it does feel nice to have a more simplified stack with the removal of HomeBridge. As a bonus, that HomeBridge instance was running on a dedicated Raspberry Pi Zero, so now I have a spare one of those kicking around. Now I just need a project for that little guy. 🤔