My HA Journey, what I learned so far

Hello all,

This a bit long winded but I figured I’d document a few of my experiences migrating to HA from ST. There’s a few things I learned along the way that may be proven valuable to others. I am collecting all of it here for posterity’s sake. I have benefited from the HA forums a great deal so I hope this helps someone else.


I have been messing around with HA for a little over a month now. I have had a smart home setup since 2016 which has been on Samsung Smartthings. I always thought that the open approach that Samsung had with Smartthings, their IDE, the huge community around it were great. Even if the device you have was not “officially” supported, the community more than likely had a driver for it. For all those reasons I stuck around.

During a recent storm here in Texas, we lost power for about 10hrs. Internet was gone for over a day after that. For those 24hrs that I had power but no internet, I was stewing as to why in God’s green earth while I have all of my devices available, even the hub, I cannot control any of my house smart devices. Not even toggle the switches!

Looking around for alternatives, besides the fact that HA is completely locally hosted and self sustained (others are too), I was very interested in the customization and full control the platform offers. Moreover, it’s very widely used. With that in mind I set off to migrate.


My approach was that I was going to install HA on hardware I had in hand and evaluate if the platform was for me, then consider upgrading. I had an RPi 3 B+ laying around with a 64Gb SD card so I went for that. I bought Z-Wave and Zigbee dongles in order to control my RF devices. I installed everything and migrated my Z-Wave and Zigbee network over. It took pretty much a whole Saturday. The networks were migrated but I was far from done. A few notes on the migration:

  • Over five years there’s a lot of automations and tweaking I had done in the “behavior” of the home that it took quite some effort in order to setup and achieve the same results with HA. Once achieved though, the HA platform offered me a lot more integrations and automations that I was not able to achieve or know I could do before.

  • The freedoms gained with HA at the same time, place a much higher burden of responsibility on the end user. What I mean by that is that although HA has an ever-evolving user friendly UI, it gives enough rope to the end user to hang themselves.

*There’s a lot of ways of achieving the same thing and it takes time to find the best that works for you. Case in point, scenes vs. automations. I was conditioned by ST to use scenes. That’s how things worked in that platform. In HA there’s a distinction between the two and from my understanding one is a lot more powerful than the other. Initially, I tried using scenes. They work but they’re very simplistic in their approach thus useful for only a few basic stuff. I moved on to use scripts for everything. A lot more power in what you can do with a script.

  • The recognition of devices was greater in HA. It was far easier to get devices to join the network in HA and be recognized for what they were rather than in ST. Specifically, I had a couple of devices that straight out never worked with ST (although others had reported that with some monkeying around they should) that worked right out of the gate with HA (specifically a 3 way button from SONOFF SNZB-03 I was not able to pair with ST for the longest time after trying my darnest, maybe it was just me).

  • Whenever possible, join the devices in the network from their desired location. It’s in the documentation but I missed it. I know the Zigbee network is supposed to re-mesh etc but I did notice that it took a lot of time and devices were sluggish in the beginning. If I was to do it again, I would start pairing devices in their end locations and I would start from the ones closest to the hub and start moving outwards, prioritizing the routers.

  • On that note, try to make sure there’s at least one router in each room. Bulbs are the easiest. Some “more expensive” bulbs (like the Cree connected) are routers where the cheaper ones (like the Sengled) are not. When you have a mix of them, try to make sure that at least one Cree is in a room. Nothing of the above is groundbreaking, it’s in the manual. However, cumulatively this is what I learned.

  • Try to avoid WiFi devices. If you have them, then great, try to make them work. However, when buying new devices these days I always prefer Zigbee.

  • With that said, I have quite a few “Magic Home” LED strip controllers. I have used Flux LED to get them into HA. They work, they’re just slower. I attempted flashing with ESPHome. I did it for one but realized that there is a newer version of the controllers that is not ESP based hence not flash-able with ESPHome. If you’re buying them for HA integration, don’t. Get a Zigbee version. They’re almost double the price but their integration and response is so smooth it’s worth it.

This brings me to upgrading the RPi hardware. I think the downloads page put it best, RPi 3 is compatible but not recommended. When running HA in production with the basic integrations I had (ZHA, Z-Wave JS, ESPHome) the RAM on the poor thing was in the upper 80%. I tried compiling an ESPHome module and the whole thing crashed, run out of RAM. By that time, I knew I was sticking around so I upgraded to RPi 4 with 8Gb of RAM that week.


As mentioned I bought an RPi 4 with 8Gb of RAM. I also bought a 128Gb SSD (dirt cheap these days) with a converter of SATA to USB 3. Here’s a few notes about the migration:

  • There’s a lot of guides on how to change the bootloader of the RPi 4 to give priority to USB boot. I am not sure why most are convoluted the way they are, maybe there’s a reason. However, I followed this method by “Everything Smart Home” Home Assistant Raspberry Pi 4 SSD Installation and Migration - YouTube
    Basically, use the “Raspberry Pi Imager” tool and make a bootable SD card from “Misc Utility Images → Bootloader → USB Boot”. Once the Pi boots from that SD card, it will automatically change boot priority to USB and will flash the green led. Turn off, plug your SSD on and you’re good to go.

  • Follow the onboarding process and once in HA restore from backup (rather than use the restore from backup prior to onboarding). This proved to be a very straight forward approach that kept history as well! Not sure what would’ve happened otherwise but that worked.

  • Side note. Keep in mind, the RPi 4 unlike the 3 has mini HDMI and no full HDMI port! It’s a good idea to have a way of projecting the video out from the board onto a screen for situations where the thing is not responding and you don’t know why. We all have HDMI cables laying around but mini HDMI is not that common (for me anyway). Buy an inexpensive mini HDMI to full HDMI converter and have it laying around just in case. I am sure it will pay dividends one day.

  • There was a small glitch with ESPHome not restoring from the backup. I installed through Supervisor and all my settings and devices afterwards were there. I assume the config restored but not the plugin :man_shrugging:

  • At this point I had these USB devices: 1) the SSD 2) The Z-Wave Module 3) The Zigbee Module. I bumped into this problem where Zigbee didn’t work. I could not control the devices. I had seen in a video that this may happen due to some sort of interference from the SSD that’s on the USB now. In the video it was suggested to add a USB extension cable and take the Zigbee stick away. I did not really believe that to be the problem but I did try nonetheless. And lo and behold things started working. I cannot find the video now to provide reference (if someone finds it please post it). I am not sure why that was the case but I didn’t care, it worked :grinning:

  • This brings me to my next point. From there on out, things were working fine. I did have some occasional glitches though, especially with motion sensors. I would get them “stuck” in on state randomly. They would report the movement but never report the “clear”. I fiddled around a lot with it. Finally, after reading around and based on my experience with the USB extender (and the fact that I hated having it), I decided to buy a powered USB hub and move my Z-Wave stick and Zigbee stick on it. I had this hunch that the Zigbee stick may be not provided with enough power being connected in tandem with the SSD and Z-Wave sticks (maybe the extension was making things worse). I bought a hub that allows for some spacing as well (two birds one stone kind of thing) and I put it on the wall. Ever since, the Zigbee devices have been rock solid. I believe that the extra juice provided by the powered hub helped tremendously.

General notes

  • I have a mix of motion sensors. Some ST, a couple of SONOFF and a few Centralite. I have come to believe the SONOFF to be inferior. They both have problems with “ghost” activations and response times. I know that this could be individually to me, or user error, but I have had both give me multiple issues. One would not stop ghost activating by the time I replaced the darn thing. On that note, replacing the battery (especially if it’s the one it came with) even if it’s reporting 80% helps. Alas, in my experience, not for long.

  • Use Google Drive backup add-on! If there’s one thing to take of all of this, is that. It gives such a comfort and ease of mind when those moments of “uh-oh” happen, and they will! This is a system that invites you to screw it up, and you will. Let’s face it, if you wanted something hands off, easy to use and hard to break you would go with ST or any of the other “commercial” platforms out there. But the flexibility we love is also the one that will most likely cause us a problem at some point or another. For those moments, it helps to think “screw it, if it doesn’t boot, I’ll reinstall and restore from backup”. So many gray hair were avoided (I acquired them other ways haha). Have it back up at the whee hours of the night every night.

  • On that note, don’t forget to keep your DB file in check. That thing can balloon out of proportion and I am fairly certain most of us don’t need 10 days of detailed logs. When using automatic backups, those files will be getting bigger and bigger and can easily eat up your drive if you’re not paying attention.

  • If you don’t use it remove it. Any add-ons, integrations etc that you tried and didn’t like and are not using, just remove them. If the use is intermittent disable it from Supervisor. For instance, it’s cool to have VS Code but it chews up a good amount of resources. When not in use disable it. I found myself using the “File Editor” add-on. It’s simple, not as resource hungry and I keep it disabled until I need it. I know the RPi 4 with 8Gb can definitely handle it but the less moving parts on your installation the less chances of it being unresponsive or “hanging”.

  • Look into floorplans. Those things add another layer of greatness. It’s very very useful to be able to in a glance tell what state your home is in (motion sensors, lights, temperatures etc). I used “SweetHome 3D portable” and then followed generally this Simple Interactive Floorplan in Home Assistant - No fancy software or custom cards - YouTube I made it “fancier” but the idea is the same. I would strongly encourage you to play around with it, it’s definitely worth it.

  • Look into TTS with Alexa or Google. There’s a lot of potential there for automations that are very useful (announcements and even actionable notifications).

  • Install the app on your cell phone. This essentially “integrates” your cell phone in your smart home allowing for a host of other automations (including notifications).

  • With that, install this excellent blue print Low battery level detection & notification for all battery sensors It will check all battery sensors and notify you when they are low. Very useful.

Whew. I think I got most of what I was thinking out. This is by no means “expert” advice, I’m far from it. These are my experiences that may benefit someone else installing or migrating their smart home installation to HA.

Cheers to the community, it has helped a lot!