Not to sound negative, it reads like the author quickly dismissed HA without a great reason so they could build their solution.

There's a lot of home devices beyond ZigBee, with a large community supporting them. Beyond ZigBee, we will see Matter devices also cropping up over time.

I do like the idea of being in control of one's automation software. The risk that I've seen though is when one ends up spending more time on building the software than the automation, which can happen when one writes their own integrations from scratch (i.e. not using Z2MQTY, ESPHome, HA, etc).

With that all said, I like HA as the central programmable hub, but have come to dislike the proliferation of ecosystems that require add-ons I'm mostly looking at Sonoff devices that tie you to ewelink and phone home in opaque ways.

I'm personally probably going to go with Matter for store-purchased and DIY devices. I'm already nearly done with our first DIY devices at home. A light strip for the kitchen, that has some sensors for useful automation.

Not rolling my own solution makes it easier for me to build a few devices for friends later.

HA is _very_ good for integrating stuff, mostly due to it being the de facto standard for DIY home automation. Basically if something has any kind of API that can be accessed in any way, someone has already made a HA integration for it.

On the other hand, it's absolutely crap at doing complex automations. The Web UI gives me heartburn any time I need to make it do anything else than simple "if temperature is over 40 on this, do this" things.

The UI does make complex automations _possible_ for non-programmers. But for me, every time I click on the UI or attempt to "program" using the convoluted YAML syntax I keep thinking "this would've been like 5 lines in an actual language...".

Thus: I use Node RED for the more complex stuff paired with an external program I made that connects to the HA Mosquitto server and pokes stuff directly when needed.

Pyscript adds rich Python scripting to HASS : https://github.com/custom-components/pyscript

An example script:

    @state_trigger("security.rear_motion == '1' or security.side_motion == '1'")
    @time_active("range(sunset - 20min, sunrise + 20min)")
    def motion_light_rear():
        """Turn on rear light for 5 minutes when there is motion and it's dark"""
        task.unique("motion_light_rear")
        log.info(f"triggered; turning on the light")
        if light.outside_rear != "on":
            light.turn_on(entity_id="light.outside_rear", brightness=255)
        task.sleep(300)
        light.turn_off(entity_id="light.outside_rear")
It's what made me ditch node red after going down the same path.