Migrate Hubitat to HA especially voice

I have been a long time user of Hubitat, and been really happy with it. Having time on my hands, I decided to explore Home Assistant (HA) and thought it might be beneficial to share my experience with other Hubitat users who might consider HA.

Overall, I have been so happy with HA that I have migrated as much as I could to HA while spending as little money as possible. This is everything except voice processing.

I have bought 2 ZigBee interfaces from AliExpress, and initially tried a couple of spare Raspberry Piā€™s to host HA. My network of devices does not include Z-Wave, so did not need a Z-Wave interface. The reason for 2 ZigBee interfaces is that I have some devices that would not work with ZHA and some that did not work with Z2MQTT, so one interface for each.

The Raspberry Pi devices I tried were a 4B and 5, both with 4GB ram. Both worked great for everything except local voice processing, ie far too slow to respond. I have 37 zigbee devices in total. I did also have an old Intel i7 laptop, and this works fast enough doing local voice processing (although not using it for voice processing, but its there for if and when I do). So I use the I7 laptop and this has the added value of still working for a few hours if there is a power cut.

My opinion is that in all respects other than learning curve and voice processing, HA is superior to Hubitat, including support from a broad community of users and developers.

Regarding the learning curve, HA has far more features and options, and with that comes a greater amount of learning.

Iā€™ll go into more depth with voice processing. A strength of Hubitat is itā€™s free integration to both Googleā€™s and Amazonā€™s services (ie buy the Google/Amazon hardware, no ongoing fees after that). In my Hubitat implementation, I had 4 Google Nest Minis dotted around the home for voice processing. This setup worked very well, with the proviso that this did depend on an internet connection. To achieve using these with HA requires using the HA Cloud service with a hefty (NZ$130/year) ongoing cost to pay.

While HA comes with an option for local (ie not dependent on the internet) voice processing, this works nowhere near as well as the Google service with the different esp32 devices I have built or tried. I did all this trial work before the HA Voice Preview Edition came on the market. I have not tried this, because it is beyond my budget to buy 4 of them (total NZ$520) to replace the Google Nest Minis.

So in the end I have opted for a hybrid system for voice processing using my existing Google Nest Minis that interface to the Hubitat, which then interfaces to HA. For me, zero setup costs, zero ongoing costs. I probably need to explain that further, so here goesā€¦.

First I emphasise that my solution requires a lot of time to set-up and needs a Hubitat device and Google Nest Mini(s), both of which I already have. I have not tried with Amazon Alexa devices but assume the same approach would apply. I also have implemented only switching on and off of devices. Each device to be controlled requires the following steps (Iā€™ll use the example of a light in my bathroom).
1. In Hubitat set up a virtual switch for the device that is required to be switched on and off in HA. My naming convention is to name this as Proxy Bathroom Light. Add this to the Maker API app in Hubitat.
2. I already had my Google Home linked to my Hubitat, so no extra work for me there. But this is an essential step.
3. In Google Home set up two automations for each device, one to switch on, one to switch off. My naming convention for these is Bathroom Light Off and Bathroom Light On. Each activated by a range of voice commands. To switch on I have used ā€œturn on bathroom lightā€, ā€œturn on light in bathroomā€ and ā€œbathroom light onā€. You could choose your own. The action for the switch on is to turn on Proxy Bathroom Light (ie the device name picked up from the Hubitat integration in Google Home). The Bathroom Light Off automation follows a similar pattern.
4. In HA, install the Hubitat integration and configure it to link to the Hubitat server.
5. In HA set up 4 automations for each device.
ā—¦ Proxy Bathroom Light Sync Off. Triggered by the HA entity Bathroom Light changing state to on. Action is a conditional block; if the Proxy Bathroom Light device is on, turn it off.
ā—¦ Proxy Bathroom Light Sync On. Triggered by the HA entity Bathroom Light changing state to on. Action is a conditional block; if the Proxy Bathroom Light device is off, turn it on.
ā—¦ Proxy Bathroom Light Turned Off. Triggered by the Proxy Bathroom Light device turning off. Action is a conditional block; if the HA entity Bathroom Light is on, switch it off.
ā—¦ Proxy Bathroom Light Turned On. Triggered by the Proxy Bathroom Light device turning on. Action is a conditional block; if the HA entity Bathroom Light is off, switch it on.

So a lot to do just to control a single light to switch in on and off. Iā€™ve replicated that for a few other devices: a fan, 3 heaters, 5 other lights, a door and to set the burglar alarm on leaving.

Iā€™m happy to answer any question on the above, and to post any code on request, but it is all simple stuff, just repetitive! Iā€™d also welcome any suggestions on doing things better within the framework above, or any other ways I could do things better. As time passes Iā€™ll monitor developments in HA voice offerings and, in time, maybe I will reach my goal of having that work locally and remove dependency on the internet and Google.

1 Like

Pretty good write up Peter.

FYI. My Google Speakers and Lenovo Smart Displays work fine with basic commands to Home Assistant. eg Turn on/off/dim to x percent Lounge Lights, Turn on/off the Bedroom TV. Or Turn Off All TVs if Iā€™m leaving home. It just works. I think I used the instructions from here https://www.youtube.com/watch?v=RqGi_GI0ltU.

Do not have Habitat, all devices are connected to HA, most switches are wireless - Shelly relays with a few Kasa plugs

If we just say ā€œHey Google Turn on the lightsā€ it will usually just turn on the lights in the room the speaker is. But from memory sometimes it acted on all of them so we usually specify room.

Havenā€™t tried it with Automations hadnā€™t occurred to me to do so. No use case for me.

Downside is its internet dependent. But thatā€™s Google for you.
I Would like to have completely local voice control. But waiting for the devices to improve.

Thanks very much for your feedback.

Just to be totally clear, all my devices are ZigBee and connect directly to HA. The Hubitat is used only as the ā€˜bridgeā€™ between Google and HA. I say something to Google, it turns on or off a virtual switch in Hubitat, which in turn triggers an automation in HA to switch on or off the ZigBee device. Iā€™ve not tried alternatives to Hubitat, but I would think the same could work with other ā€˜hubsā€™ for which integrations exist in both Google and HA. The benefit (to me) is that I had a Hubitat already, and it does not rely on the internet.

What I love about Google is itā€™s ability to specify the exact commands to obey. For instance, I have an electronically operated door to my shed which for fun I just set up in Google the trigger as ā€˜Sesameā€™. No long phrase needed, like "Open shed doorā€™.

A big thanks also for steering me towards the YouTube video of an alternative approach. Iā€™ll certainly give that a go.

1 Like

Understand your position. My point is I donā€™t use an extra ā€œhubā€ the google integration in HA does the work your Habitat is doing communicating with Google so one less step in the chain. No need for all the extra automations in Habitat. I havenā€™t tried it but I believe you can setup ā€œaliasesā€ on devices for voice assistants and I suspect you could create an automation in HA to ā€œOpen Sesameā€.

I donā€™t like having more than one system controlling my device automations but I accept that yes, sometimes it might be necessary and using Habitat as the go between as in your explanation may well be better.

Looking forward to hearing how you get on.

I just started to go through the video, and after accessing the google site hit this very quickly:

It looks like this pathway is no longer available, is that how you read it?