This has been a long time coming. For many years I have been frustrated with the lack of interoperability between many of my smart home devices. I’ve tried all of the high level stuff, like Echo routines, IFTTT, Yonomi, etc. While I’ve had some success using those applications, they have always come up lacking. This whole time I’ve known that Home Assistant was out there, lurking, but it always felt like too much of a commitment to me. Until now!
I can’t say there was any one smart home related issue that drove me to finally take the plunge. The biggest catalyst was when I attempted to update my Raspberry Pi and discovered I’d butchered the OS so much that it just wouldn’t easily update anymore. If I was going to have to rebuild it from scratch, why not start with Home Assistant OS and go from there?
What follows will be a chronical of my first days using Home Assistant, my successes, my struggles, and my notes for anyone who may want to jump down this rabbit hole with me.
A few things before we get started. Home Assistant is not for the novice user. Yes, it’s much, much easier to setup and work with than it was just a few years ago, but even the setup process takes some knowledge of Linux, some knowledge of hardware, deep dives into existing apps and developer portals, and quite a bit of patience. I have worked in the tech field for 21 years and have an extensive background in both hardware and software. I am the guy people come to with virtually any technical problem they encounter. I have found myself in quite a few frustrating situations in just a week of working with Home Assistant. You’ve been warned.
Building a Home Assistant Server
For many years I’ve had a Raspberry Pi Model 3B+ set up to do a number of things. It’s my network level ad blocker running pi.hole. It’s my always on Plex server capable of streaming all but 4k movies. It is my NAS. And it was also hooked to my TV to run RetroPi, allowing me to play a ton of classic games. This is the system on which I decided to install Home Assistant, however I would need to start from scratch.
I’m not going to go through a step by step process here. Home Assistant has just about the best walkthrough you’re going to find on their own site, and I’d just be recreating it. For my purposes, I decided that completely deleting the SD card I’d been using for years with all of my configurations was too much to bare, so I started from scratch with a new 64 GB SD card I got for about $15 on Amazon. I highly recommend this if you’re not starting with a net new Raspberry Pi as it gives you the opportunity to fall back to your old configuration if you mess up or don’t like Home Assistant.
There are a great many ways to set up a Home Assistant server. Out of sheer laziness, I chose the absolute easiest way which is to flash an SD card with a pre-build OS running Home Assistant in a pre-built container on the OS. This was my first mistake. Although this process is very fast and super easy, which I recommend for anyone just looking to turn a Raspberry Pi into an HA server, it is not the best fit for my particular use case.
As mentioned above, I’ve always used my Pi for many things at once, and had planned to continue to do so. What I’ve since discovered is that pi.hole is incompatible with Home Assistant OS, and getting Home Assistant to recognize an attached USB drive is a massive exercise in frustration. Given the many hours I have spent banging my head against my desk trying to solve this issue, if I were to start again I would choose to rebuild my Pi with Raspberry Pi OS or Debian and install HA using the container method listed in the linked tutorial above. I may still wind up doing this since it turns out I really rely on my NAS, and Raspberry Pi’s are backordered just about everywhere right now and buying a second one is currently out of the question.
Once you have installed Home Assistant you then move into the setup phase. Again, the official HA website has a great walkthrough here, so I wont walk through it myself. Having 31 different integrations to set up, I spent the bulk of my time in the connections section. Thankfully HA automagically discovered the bulk of my devices and for most setup consisted of just inputting some login information or pairing HA to the hub. If you get overwhelmed here or just want to move on, it’s very simple to come back to it after setup has completed.
There are some caveats I want to mention here. Integrating Nest with HA will apparently cost $5 which I refuse to pay at this time. It is the only company I encountered that required a fee. Even myQ isn’t that petty! Some other popular devices required me to set up developer accounts and build out projects in those accounts before allowing me to connect, most notably Tuya Smart Life and ecobee. This isn’t exactly hard, and HA has walkthroughs to do it, but it’s about 15 minutes of work whereas in comparison TP-Link Kasa devices just worked with no effort at all. Although Rainmachine has a pre-built connector it’s just giving me a hard time connecting and I haven’t revisited it. Govee and Feit do not appear to have anything pre-built and I haven’t researched how to connect their devices yet.
Once you have added all of your devices the setup portion of your journey is complete.
Major Frustration
Again I feel compelled to point out that I’m not a novice. I’ve run entire server farms and have experience with server virtualization on multiple platforms and with multiple operating systems. I’m also not the first person to ever want to mount a USB hard drive to an installation of Home Assistant and there are dozens of suggestions to get this to work. To date, not a single one has worked for me. What’s more, all of my attempts to simply log in to the host operating system (this is to say the OS running on the Raspberry Pi, not the container running hass.io which I can easily access) have failed, and I’ve just finished rummaging through closets to find an old monitor and plugin keyboard to make one last attempt to mount this external hard drive.
This is incredibly frustrating and something Home Assistant needs to officially recognize that people want to do. This is only the first peripheral I’ve attempted to configure with Home Assistant. I’d planned to install a zigbee antenna as well. After my experience I’m seriously considering starting from scratch and manually putting HA in its own container on a system I configure myself. So much for taking the quick and easy solution.
First Impressions
I’m embarrassed to say I spent the bulk of my time trying to get that damn hard drive connected. It wasn’t until just a few days ago that I finally finished adding my devices and creating automations. And now I see how much fun this can be!
Although creating automations can be a little daunting at first, the simple ones I set up right off the bat took minutes and have immediately made an impact. First, I set up a handful of automations allowing the Hue Light Switch in my living room to control the Kasa bulbs that are also in the living room. Imagine walking into a room, pushing the light switch into the on position, and having the lights in that room come on. This is gonna be huge!
Seriously, though, this is something that isn’t possible without a third party product. Since Kasa doesn’t sell wireless switches, and Hue doesn’t work with wifi bulbs, I was just stuck. This took about 10 minutes to build the multiple required automations (one for each of the four buttons), and although no one but me will ever notice, I’m happy to have it set up.
Next I was able to accomplish the unbelievable task of getting my Broadlink Red Bean IR blaster to send commands IN FAHRENHEIT to my office mini split. This was previously impossible for some reason, and no matter what I tried the Red Bean would only send temperatures in Celsius. I can now have my basement office preheat itself on winter mornings so I don’t have to sit in a 60 degree room waiting for it to heat up.
The last automation I set up was actually completely unnecessary but gave me the opportunity to wield this awesome new power in order to defeat my arch nemesis. Chamberlain and myQ. No longer will I suffer having smart garage doors that don’t integrate with anything. Thanks to Home Assistant, they now integrate with EVERYTHING! Just because I could, I set up an automation allowing me to long press buttons on a Hue switch in my kitchen to raise and lower one of the garage doors. Suck on that myQ!
To be continued…
Hi there – I have gotten access to the HA OS install as the device Root, and not just the HA instance root.
But first, some thoughts. Also working in IT – I also thought I would prefer the “Container” method – and ran it in a container on my Synology for a LONG time.
However, you lose out on some capabilities (Add-Ons, and the build in backups and updater) if you don’t run the HA OS based version.
Some things like VS Code server (for config files https://i.imgur.com/DAlqedQ.png), Node-Red, ESPHome, Grafana, and more won’t be able to work, and the entire Add-Ons/Backups/Supervisor area won’t be available – which can be very confusing when you try to follow tutorials that suggest to add it.
Several of these things are essentially pre-configured bolt-on containers that HassIO will load up and help to connect to your HA Instance, and help keep up to date ( https://i.imgur.com/Aqy3kJC.png https://i.imgur.com/aUOn2uX.png ) It also provides a lot of recovery mechanisms if you want to recover/roll back ( various add-ons, OS, and HA install updating backups -https://i.imgur.com/4Z5mc6a.png ) and none of the Supervisor (https://i.imgur.com/55Es4VM.png) without the HA OS
If you have any old computers nearby, I would highly recommend running on one of those instead (mine runs on an old Dell Micro Tower i3-4150 I got from a client that was replacing it) and limiting any containers you run to only being HA containers, because the HA OS generally expects you to not be running containers on the root device. And now I can just keep my Home Automation services on that Optiplex, and other home services like Plex, NAS, Tautulli, etc running in containers on a separate device.
If you really do NEED to get access to the HA OS CLI, and not just a CLI for the HA Instance running on HA OS, I have done it with this process, which will set up a special SSH to the OS session, with auth through PublicKey
https://developers.home-assistant.io/docs/operating-system/debugging/#ssh-access-to-the-host