So, this post is going to be a little off-script for me. Consider it an editorial piece. It's not a 'how-to', but something I've been wanting to get off my chest for a while now. Where is Home Assistant headed? What are the strategic goals and who is the target audience?
I've been an avid Home Assistant user for nearly four years now... starting before the original release of Lovelace dashboards, version 0.82 I believe. Google Home and Amazon Alexa were still in their infancy.. as far as true smart home hub options.
Back then, if you wanted to do anything in Home Assistant other than some basic device controls, you had the daunting task of learning YAML (YAML Ain't Markup Language). YAML is a kinda' sorta' a programming language... the official definition is 'human friendly data serialization standard for all programming languages'. Now, I have a programming background. I'd been a programmer for about 10 years earlier in my career... and worked in multiple languages. But boy did I struggle with YAML. Required white space, lists vs. dictionaries, templates, etc. But I hung in there, read a lot of online resources and posted questions in forums and eventually got the hang of it. I now have it down pat. To date, I have around 400 automations, 200 scripts and hundreds of more sensors, inputs and ESPHome devices all in YAML. I don't have a single automation or script that was created with the somewhat recent UI automation and helper 'builders'.
Not that there is anything wrong with these 'builders' or wizards. Not everyone is willing or able to take the time to become an expert in YAML. But for those of us that are (and prefer it that way because it provides complete control and understanding of how a process works), you can see the writing on the wall that this is slowing being stripped away. Yeah... the development folks have claimed that YAML is never going away. And maybe it won't completely. But each new release seems to move more and more things into 'automatic integrations' and some of the newer features, like the automation debugger, can only be used on automations with a unique ID... a feature built in to the UI 'wizard' but not something that a normal manual YAML user would put into his/her code. So now you have a great debugging tool... something likely used by your more advanced users... the same ones that are most likely to write their own YAML. To use this nice feature, I had to go back and manually add unique IDs to 327 previous automations!
I get that the developers are trying to make Home Assistant more accessible and so that you don't have to be a computer programmer or engineer to set it up, configure and maintain it. More accessibility means more users. And an even larger community... get big enough, you start to get the attention of hardware makers and other big companies that could greatly benefit both the Home Assistant 'company' (Nabu Casa) and the user base as well.
And despite the prior release of Home Assistant 'Blue' and now Home Assistant 'Yellow'... attempts at plug-and-play devices for Home Assistant, there is still a very long way to go for true adoption by the non-techie crowd. Monthly releases, always with breaking changes, will eventually catch you off guard and require digging into configuration files or other code to get your devices working again. Sometimes there are nearly as many breaking changes as there are new features. Then there are the 6-8 (or more) release patches that come out to fix things missed in the (possibly too) short beta testing window.
And you also can't fall too far behind on your upgrades either. Skip a few months and then see a great new feature has been released that you really want, and you'll almost always end up with something hosed up by leaping ahead over multiple versions (I know this from experience)... and it will be practically guaranteed that you'll have to slog through multiple breaking change release notes to find the one that might have broke your automation or integration and then manually edit files somewhere along the way to get everything working again.
So, what does Home Assistant want to be when it "grows up"? Google and Amazon have come a very long way (and continue to advance rapidly) into becoming the de facto smart home automation hubs for the non-technical. It is highly unlikely Home Assistant will ever catch up in this particular market segment. As much as I love Home Assistant, I've never been able to convince a single person to even consider it... despite repeated attempts and talk of privacy and local control. And this is saying something, since I was the head of an IT shop... so these folks aren't necessarily a bunch of muggles and luddites. What do I hear repeatedly? Oh.. I have a Google Home, or I have an Alexa that can do all that.
But even beyond local control and privacy, Home Assistant has always had a couple of huge advantages over most other platforms. First, it allows you to bring devices from dozens, if not hundreds, of different manufacturers under a single umbrella and communicate with one another. Next, it has arguably the most robust and power automation engine out there (except for possibly NodeRed).
But with many of the recent changes in the smart home market, are these advantages being eroded? Amazon has added a Zigbee radio to their speaker, Google introduced a "Works with Google" program. And now with the Matter initiative officially being released, the quantity and diversity of devices these smart speakers can support will grow rapidly.... despite being cloud-based and Internet dependent.
There have also been rumors that Google is working on a script engine for creating home automation routines:
If you look at the above image closely, you might recognize the script... yep, it's YAML... with auto-completion! While there is no guarantee this will ever make it out of beta nor is it known just how powerful or flexible this script engine might be, the combination of Matter potentially making most devices available locally and a YAML-enabled script engine, how much does Home Assistant have left as an advantage? Yes, Google is likely going to harvest and use your data... and the system will still be susceptible to Internet outages. But how much does the average consumer care and understand? Odds are, they are already using a lot of cloud-based smart home devices already.
If Home Assistant cannot (and maybe shouldn't) try to catch up to Google and Amazon as the smart home hub of the masses, where does it belong? What is the long term strategy? Not to be a cynic, but is the ultimate goal to build up a large enough base to attract a big-money buyer? Then the founders and Nabu Casa employees cash out while the rest of us fall under the next Wink, Smartthings or other big company that will eventually shutter the whole operation?
Where does this leave Home Assistant? If it will never be an Alexa or Google Hub, then is it a niche market for those specifically interested in privacy and local control? If so, these are generally the more technically-oriented folks that are able and willing to learn the skills necessary to maintain it. Don't continue to take away those options and force your core base into wizards and 'behind-the-scenes' integrations that can't be edited and maintained. It seems like nearly every new release contains yet something else that has to be "removed from your configuration files" because it is now a built-in, automated integration. How long will it be before all of our custom Tasmota integrations have to be removed from YAML in favor of the 'automated' integration. Yes... you can say all day that even the integrations are open source and can be reviewed. But can I change or alter them to my needs? Do I now have to also learn the ins-and-outs of Python and the entire Home Assistant stack to understand the integration? Or fork the entire Home Assistant project? Previously if something broke during an upgrade, it was pretty easy to identify and fix the offending YAML code (and there was plenty of community support to help). Now, if an integration breaks, you are pretty much at the mercy of the developer (often Nabu Casa themselves) to fix it... sometimes quickly, sometimes not. Regardless, it's pretty much out of your hands now.
And here's another example:
This particular one took me nearly a full day to "fix" issues from the black box integration over what I had defined before. Some prior sensors were removed and others added... all completely out of my control now.
Don't get me wrong... I am all for improving Home Assistant. This includes the inclusion of the newer UI wizards for automations, scripts and helpers. If this can pull in those folks with some technical skills (but not necessarily folks that want to write a lot of YAML or Jinga templates), then plow ahead. But not at the expense of the core base that also want the ability of fine-tuned, individual control of their environment.
To be fair, the "official Home Assistant blog" posted an article speaking about the depreciation of YAML for integrations, the reasoning behind it and a kinda'/sorta' plan for the future in April 2020. You can read it here. Yes, it is a bit dated, but it does make some valid points for the decisions.... less breaking changes, easier upgrades, etc. But also take a look at some of the comments that make just as valid counterpoints.... particularly the point that the direction of Home Assistant is now being determined by a handful of paid employees and not by the community that built it. And this was over two years ago... before Matter and other advancements made by Amazon and Google.
Having personally being burnt by the likes of Wink, IFTTT, Philips Hue and others, is a time coming where I'll be burnt by Home Assistant in some manner? Is the time coming somewhere down the road where everything will be via the UI and built-in integrations? Will Home Assistant become the next Smartthings? I don't know... and I'm not sure anybody does.
I'd like to know the actual strategic plan for Home Assistant. What is the goal for the next five years? Who is the target audience... and who should it be? Is the eventual goal for everything to be done via the user interface, hiding any code from the end-users? Again, despite the claim that YAML is never going away, it sure seems to be less and less accessible with every update. I think users like myself that have invested hundreds (if not thousands) of hours in our Home Assistant environment would like to know the answer to the future plans for Home Assistant... and if we should start considering alternatives now if that direction doesn't match up with our personal goals.
I suspect there are strong opinions on both sides of the aisle here. One of the things I love about Home Assistant is the strong community. Like every community, there is a jerk or two (and I'd be shocked to not see a couple show up in the comments here), but overall it is also a very friendly and helpful community.
What do you think? Is Home Assistant heading in the right direction? Or are they discarding their core base that got them where they are today? Would you like to see the strategic plans and goals of what Home Assistant hopes to become and what they see as their future target audience? Let me know in the comments... but please keep the discussion civil! There's enough ugliness online already without bringing it into the great Home Assistant community!
</rant>
No comments:
Post a Comment
To help eliminate spam and to keep all conversations civil, submitted comments are moderated. Therefore your post may not show up immediately. Please be patient as most reviews are completed within a few hours.