My Home Automation Journey

Home Automation:
a.k.a: How to drive yourself crazy to make life easier

Once upon a time I had a large home in the mountains of Pennsylvania, and I had automated the majority of it using a mix of various technologies with SmartThings and later Hubitat as the core of the solution. Home Automation back in those days was pretty simple and well… when it worked it was great.

Fast forward a number of years, I have moved into a large apartment in Bethlehem, PA. a one bedroom duplex/loft style unit with 2 bathrooms and a home office. I figured it was a good time to ‘start fresh’ with automation as the market and technologies have greatly progressed since my first go at it with X10Zigbee and Z-Wave devices many moons ago.

First Steps for the New Home Automation

When I moved into the apartment, the first thing I did was start with the Apple HomeKit ecosystem. All of my devices are Apple iOS or macOS and (at first) it seemed to make sense. Migrating the devices I salvaged from the house were a few Nanoleaf LED Strips and Wall Tiles, and a Philips Hue Bridge with a bunch of A19 and BR30 bulbs (aka: regular bulbs and floods). 

Setup was as simple as resetting all the devices to factory (honestly the hardest part), installing the Apple TVs and HomePod Mini’s I used for my TVs and music throughout the apartment, and configuring the Hue Hub to work with Siri, and scanning the other devices QRCodes in the HomeKit app on my iPhone.

This met the basic needs of getting things on/off with Siri voice commands, and very basic automations.  What it needed was more advanced scripting, home automations based on triggers and device states, as well as granular presence based rules. And while you could probably make that happen within the ecosystem, exposing it was a royal pain in the ass and fraught with failures.

Sometimes "Keep it Simple Stupid" (KISS) isn't simple

So, Apple ease of use made it difficult for me to do multi layer automations, or adding more funky or DIY hardware, so I tested a few options I have used or wanted to use in the past. It really came down to either saying screw it and staying clean in the Apple ecosystem, or integrating the Apple HomeKit with Hubitat or Home Assistant.

Queue up the testing, failures and eventually success

So I built out a test plan for deciding on which platform I would go with. As I mentioned, the choices were between Hubitat and Home Assistant. I had all the necessary equipment to try them out and get a feel for each.

The devices for integration testing included:

  • Hue bridge
    • Hue Sync (TV ambient lighting)
    • 10 Hue A19 Bulbs
    • 5 Hue BR30 Bulbs
  • 3 Zigbee Smart Outlets
  • Homekit Devices
    • Eve Energy Strip
    • Eve Motion Sensor
    • Eve Room Temperature/Humidity/Air Quality

Gentlemen Start Your Hubitats

My former home automation ecosystem was based on Hubitat, WebCoRE and Z-Wave; so naturally this was the first solution I tested. I had an older (yet still functional) Hubitat hub so I set it up and while I no longer have any Z-Wave devices to worry about, I did repair all of my Zigbee devices, the Hue bridge and attempted to get the Homekit integration working well. In my prior environment I didn’t have any Homekit devices at all, so this was a bit of a struggle. Installing the HomeKit integration with Hubitat is pretty straight forward following their instructions.

I set up the Eve Energy Strip and Motion Sensor but they would ‘disappear’ randomly. Hubitat to their credit anticipated this issue, and the integration had setting to restart the service hourly … but honestly it was a PITA.

Another area of difficulty, automations are very powerful in Hubitat – but without addons like WebCORE or similar they are quite difficult to manage. I was able to get then running and created a few simple motion and time based automations, but with the Motion Sensor going MIA randomly, it really wasnt working for me.

Next up Home Assistant ...

The next soltution I tested was Home Assistant. HA can be run a number of ways, but for this testing I went with the simplest of installs. I have a bunch of Raspberry PI 4Bs with 8GB RAM around so I imaged a new SD Card with the HAOS image, popped it into the card slot and booted. Well, not entirely, I also plugged a Zigbee dongle into one of the USB Ports then booted.
 
The install and setup is extremely straight forward. After prepping the SD Card, I booted up the PI and opened the Web UI in a browser (defaults to http://<ip_address>:8123). This starts the configuration, or in HA speak “Onboarding“, process. I followed a few straighforward prompts and then waited while the system configured itself. The screen said it could take 20m for this step but it only took a bit over 10m. I was prompted to create a user, enter the location of the home (used for geolocation services such as weather), and it auto discovered a bunch of things on the same network as the system.
 
Setting up the Hue integration was easy through the integrations page, and getting Zigbee running using the Zigbee Home Automation (ZHA) addon also was pretty straight forward. I initially set up the ZHA with a Conbee II Zigbee stick which worked out of the box.
I went through and configured all of the auto discovered devices, and started looking at all of the entities and data that were collected from them – and from the various base integrations for weather, etc. This was pretty easy and I could see the power of all the integrations available.
This is well and nice, but if you can’t automate and customize things, no real point is there?
The automation GUI is simple, and powerful. Additionally, if you know YAML and want to build them in code you can edit them directly in the UI which is nice. To integrate the Homekit devices, I installed the HomeKit Device integration, reset and paired each device into Home Assistant and they all simply worked. Before creating any automations, scenes or other configurations, I let the system bake in for a while and the Motion Sensor didnt ‘disappear’ and remained stable, faithfully reporting each time I moved around my home office.
Keeping things fairly simple I created a few automations for my office lights based on movement, time of day, etc. All worked well once I got my head around HA’s triggers and syntax. The ability to run a trace on each step of the automation helped to further refine the automations.
Home Assistant Automation Trace Output
The Trace of a fairly simple multi step/choice automation for my bedroom lights
This was the point I decided that I was going to stick with HA and get things moving.
 
I did take one further step. I have Apple HomePods throughout my apartment, and wanted to get voice control functional. The way I did this was to add the HomeKit Bridge integration (NOT the same as the HomeKit Device integration!) and add all of the Home Assistant devices to it that I wanted Siri to have control over. Once the integration was configured HA popped up a notification with a QR-Code to scan in the Apple Home App and configure HA as a bridge. Extremely simple and easy to get the initial setup done.

Home Automation - Current Status and Solution

So, as I sit here and write this article, my Home Assistant environment has grown exponentially. I’ve integrated nearly everything in my home that has a blinking light – and even some things that do not 😇

Once I got all my HomeKit and Zigbee devices registered and working the way I want them to, I started down a couple of rabbit holes – MQTT and ESPHome. I will leave the details of these for other posts, but basically MQTT is a communications protocol that allows IoT devices to communicate and publish or subscribe to information via a broker. This is how I have connected my BambuLab 3d Printers to Home Assistant, as well as other devices like a Govee LED Bars. I am using ESPHome devices for so many different types of sensors; temperature, humidity, human presence, air quality and the list goes on and on. 

Things have gotten so deep that I started using Github to maintain all the configurations and files that are the heart of a HA solution, here are some of the statistics:

DescriptionValue
Number of entities1718
Number of sensors881
Number of automations22
Number of scenes1
Number of zones3
Number of binary sensors79

I also have the following Add-ons and Custom Integrations:

Add-OnsCustom Integrations
Adaptive LightingAdvanced SSH & Web Terminal
Battery NotesDuck DNS
Blueair FiltersESPHome
Custom Vesynceufy-security-ws
Dreo Smart Device IntegrationFile editor
Dwains DashboardGovee to MQTT Bridge
Eufy SecurityHome Assistant Google Drive Backup
Extended Openai ConversationMatter Server
FontawesomeMosquitto broker
Generate ReadmeNode-RED
HACSOpenThread Border Router
Home Assistant PlantopenWakeWord
OpenplantbookPiper
Philips Hue Play Hdmi Sync BoxSilicon Labs Multiprotocol
Pirate WeatherWhisper
Pyscript
Samsungtv Smart
Watchman

Yes! That seems like a lot, and it honestly is. This does not even take into account the “out of the box” integrations like Zigbee Home Automation, MetNO Weather, HomeKits, etc. I have a number of integrations and devices that expose a TON of data to Home Assistant. For example my BambuLab printers expose over 250 entities and my ESPHome devices add up to over 650. The good news is the data is available to drive automations, or to use to control the various devices with great granularity. On the downside, I am starting to outgrow my Raspberry Pi platform and will be rebuilding the solution sooner or later using a miniPC ProxMox and Docker containers – a story for another article.

My Home Assistant Integrations listing - these include standard/out of the box as well as custom integrations
My Home Assistant Integration page as of the time of this article

What's Next in my Home Automation Journey?

So next up for this? Here’s the funny part – I am going to be moving later this year. I am buying a house and going to have a hell of a lot of fun, frustration and learning building this all out again.

What would I do different? Well, firstly I would have started this build on a mini PC rather than a Raspberry Pi. Don’t get me wrong – a Pi solution is perfect if you want to do some automation, have a reasonable number of devices, etc … but I’m not the “reasonable” sort. I love to play and experiment so a bit more power is necessary.

Another thing I probably would have done (and will do) is run two Zigbee dongles – one SkyConnect USB running Matter/Thread – and if necessary ZHA. The other would/will be a Conbee stick to run Zigbee2MQTT (Z2M). Z2M is another Zigbee platform built on top of MQTT so it is more flexible, supports more devices, but has a steeper setup and learning curve. The SkyConnect USB stick can run both Zigbee as well as the newer Matter/Thread standard, which if it actually delivers on the promise will make Home Automation systems all interoperable – Apple talking to Google talking to Alexa talking to Open Source solutions … nirvana achieved? Jury is out at this point, but I am starting to mess around with it.

If you are using Home Assistant, Hubitat, or other home automation platform, I would love to hear from you, your successes, horror stories (we all have that ONE device …) leave a comment and start the discussion!

Sharing is Caring

Related Posts

On the Road Again
Personal

On the road again – Redux

Oh the “fun” of business travel … On the Road Again … and again … [Updated post and maps 14-Oct-2016 – Edinburgh and London/Bracknell added – link to previous version

Read More »