The little smart home platform that could

https://programming.dev/post/13034760

The little smart home platform that could - programming.dev

- Home Assistant is now part of the Open Home Foundation, a non-profit aiming to fight against surveillance capitalism and offer privacy, choice, and sustainability. - The foundation will own and govern all Home Assistant entities, including the cloud, and has plans for new hardware and AI integration. - Home Assistant aims to become a mainstream smart home option with a focus on privacy and user control, while also expanding partnerships and certifications.

Is HA not already the mainstream option for privacy and user control? Maybe I just live in a bubble, but it seems like it’s already the go-to if you care about those things.
I took it to mean they’re going to put it in prettier packaging, simplifying its use for the average Joe.
I’m totally cool with that. Even as a more technically-minded user, I see a lot of things that could be way more streamlined.
I totally agree! They’ve come a long way, but making it easier to use can only help grow support for the project.
Yeah I’m not using it yet, partly because I’m not at the home server level of Linux competency, but I do want to move towards it at some point
If you want the awesomeness of self-hosting with somewhat less drama, give unraid a look-see! Although if you are looking to just host HA and not have a full media center and other stuff, it could be overkill.
My attempts at self hosting have been mostly an attempt to set up jellyfin, *arr, and foundryvtt on an old computer at which point I realized I don’t really understand terminal or networks. I’m getting a bit more comfortable with my terminal in my desktop, but I’m going at a reasonable pace nowadays. I don’t have a ton of time or money to sink into it

If you want to skip ahead, there are also a few ways to get Home Assistant running that don’t need any level of Linux competency:

  • They sell their own devices that are more or less plug & play.
  • Installing Home Assistant OS on a Raspberry Pi is just flashing the image onto an SD card.
  • Installing Home Assistant OS onto a dedicated device involves shortly booting into Linux from USB to flash Home Assistant OS onto the internal disk.

If you don’t want to run Home Assistant OS, and instead want to run Home Assistant as one of several applications running on a Server, that’s when you need to start getting comfortable administrating a Linux server.

I didn’t realize their devices are plug and play. I’ve considered one before and probably will go that route if it’s that easy when the wife and I have more than a pair of light bulbs to control

Just do it. Quick and easy, and not that complex. Even if you only have a couple of light bulbs, now you can schedule them, automate them, integrate them with any voice assistant you may use

You may find you already have a lot more than just a pair of lightbulbs. Mine sees my router and stats, printer status, TV, speakers, thermostats, my phone, among things I got before HA

Well you have successfully doomed me to a day of attempting to deal with the same dang server error.

And here I thought that this might be a nice way to set up a few things my wife would like

I have been using it for years and still find some things confusing. Like idk why it’s so hard to figure out how to customize the dashboard and create new widgets for it. I’ve been a professional web dev for 8 years and if I’m struggling with it, you can bet most people aren’t even going to bother. Idk what’s so hard about providing simple html, css, and js like every other web framework.
yeah nothing ever makes me feel stupider than my home assistant, which half-works for random reasons, even though like, I can actually develop things. Woe unto anyone wading into that without any coding background/inclination or interest. I hadn’t really ever encountered YAML before working with HA (I’ve been using HA now for like 6 or 7 years I just realized).
I’ve been running HA for two years and barely understand YAML, let alone the main YAML config, which is keeping me from accomplishing a few things I want to do, like taking better control of my air filter.
I have a lengthy chat ring background, back to the days when it was common for spacing and line length and line endings to be significant to the code. Maturing out of that was one of the major advances in programming! I can’t comprehend people bringing that back: a pox in yank, and python, and similar, for bringing back the nightmares
Because it’s either full-auto, or full-manual, with no wiggle room in between. That being said, they have made the right moves in hiring the right people in the community to be ICs on the project to fix stuff like this, and they are killing it. Ex: they hired the Rhasspy dev a year ago, and he has already revamped the entire voice assist workflow in HA. Great work.

I love my HA dashboard but it took seemingly far too much effort to get it sensible. I had to know how to ssh in and edit a locked YAML file and create new template sensors just so I could have some temperature sensors show as “50” instead of “50.0028472” or some shit.

I think they fixed that in an update though. But there’s always something that requires multiple extra layers of digging around.

Recently had to manually reinstall HA then restore from a backup manually because there was no GUI option. As software, HA is great, as a product usable by laypeople it still needs work

For technical people… Yes.

For people who aren’t that technical? No.

Don’t get me wrong, the Home Assistant Green and SkyConnect dongle is great and massively makes maintenance for the regular joe easier (no pis or other hardware that loads from the SD/hardware considerations).

But some stuff in UX would have to improve, which it already is doing ofcourse.

You would need to make touching a config file non existent. They’ve improved this over time, but not quite there I imagine.
It’s especially true when it comes to things like HACS. I love HA but I’ve also told everyone I know that, if I die, rip all that shit out and replace all the “smart” stuff with regular stuff.

Or …… I choose stuff that work’s normally, with “smart” being an addition.

  • Smart thermostat works exactly like a dumb one, if you’re not online and there’s nothing programmed.
  • Smart switches work exactly as a dumb one, if there’s no automation saying otherwise.
  • Alexa works exactly like Alexa, if there’s no integration with HA.
  • Flood sensors do beep, even if nothing is integrated to notify your phone

You’re not wrong and, to be fair, I’m mostly exaggerating when I say to rip out all the smart stuff.

Thermostat would stay, Alexa is being phased out but google home would stay, flood sensors I have at this time do not beep because of the stress is causes the pets just during normal testing, but those could be easily replaced.

However, I also have a ton of lighting, zigbee sensors, zigbee smart plugs, camera motion automations, alarm system automations, garage door automations, and other routines that can’t just be taken over by someone that has no desire to mess with HA. It’s not always about the functionality of the device itself, but what HA does to enhance it.

While I know I was claiming the opposite, it is actually an anxiety by of mine.

In my first townhouse I had wired in speakers, and network/cable/phone everywhere. There was a really nice structured wiring box tying it all together. It was beautiful.

When I sold, the realtor made me leave my speakers, my router, my switches, because she claimed it was part of the house and no one could use the wiring without it. What a load of BS that was, but when a home sale is on the line, no point in swearing the small stuff. After I factory reset things, what good does it do them over buying their own, wither own account, and a user manual?

Mine as well, i have a closet with a half rack with all my networking gear, NAS, UPS, proxmox server, etc. If I’m gone, it’s time for whoever lives here to just get a combined router/modem from the ISP and call it a day.

“can’t use the wiring” So in the old days they made people leave all their phones connected when they moved right? /s

As a technical person working in tech, I’ve heard of home assistant but only ever spoken to one or maybe two people that have actually tried it. It doesn’t seem that mainstream. Meanwhile, every smartphone has a proprietary assistant built in.

The assistant in your phone is not the same as home assistant.

Home assistant is mostly used to group all your smart home stuff and create automations.

Being a technical person myself, most people I know want to try it but don’t have the use for it due to living in appartments.

I had it briefly up and running and can only say... it's a bear, at least if you are trying to use it as a drop-in replacement with existing hardware. I'm sure I'll go back and sort it out at some point, but it left me just feeling tired and frustrated even when I had it doing most of what I wanted.

If you were thoughtful about hardware from the ground up, maybe it would be more straightforward, but I tried getting it running on just an old workstation with ubuntu installed on it that I use for very basic stuff like syncthing and it was just painful.

It would be nice to see better first-class add-on support. I found myself needing to SSH into a VM to get stuff into it, and even then it was twitchy in all the wrong ways. Would also be nice to see better support for the containerized version, because that's so much easier to distribute and execute compared to a VM. Next time I'll probably just try to do it all with docker and see if it hurts less, since I don't think any addons I was using were critical to begin with.

That said, if you're doing HA, get a dedicated piece of hardware for it. I suspect it vastly simplifies things.

I installed it in a VM that’s running Unraid. It was pretty simple to set up that way. The hardest part was figuring out how to pass through the USB controller to the VM. Side note: if you’re building a home server, you should look into getting an extra PCI USB controller so you can dedicate them to different VMs if needed (or leave one for the host to use).

For routing to the open Internet, there’s a handy addon in HA to connect to Cloudflare Tunnel. It works great. The only catch is you need a domain name registered with Cloudflare. Of course, not needed if you only want to control it from LAN-connected devices.

That was the point that hit my limit, now that you mention it -- getting it to show up on a duckdns address on the https public internet. Not being able to make that work after fiddling with all kinds of contradictory guides nor with 2 or 3 completely different reverse proxy tools just left me mad.

Having HA just working locally didn't really make it a replacement for the big tech solutions that already work fairly smoothly. I'm sure I'll go back to get it the way I want one day, but the learning curve on any selfhosting is still pretty rough.

Yeah I had the traefik reverse proxy set up for a while until it updated to 2.x and all my configs broke. At that point I gave up and just paid for the nabu casa URL.
If you don’t want to deal with remote access hosting (which can be pretty involved), their cloud service Nabu Casa is $5 and this is exactly the functionality it provides - they don’t host your instance (you still need somewhere to run it locally, like a Pi or one of their devices) but it tunnels your instance out to their managed hosting and you can access it from any Internet connection.

I bought a dedicated mini PC for it, and if you just manage it using proxmox it’s pretty straightforward (if you already know how to do Linux things and paste the right commands from the tutorial in there).

There’s still stuff I need to fix to make it the only smart home controller, right now I have a ton of different stuff (switchbot, meross, Google home and HA).

It’s not really a “bear”, but it IS highly configurable down to the tiniest detail, so requires a certain level of technical expertise. Definitely not for a novice, but that’s what Amazon, Apple, and Google try to cover. I will say there are other options out there that are great for offline home automation, but HA is the most competent and complete.

I’d argue it’s a bear and I still use it. YAML is just fucking awful and I’m glad they’ve been hiding it more and more over the years but it’s still there. Zwave is still wildly confusing compared to something like a Habitat which is just plug and play (guess who has to just rebuild his zwave stuff from scratch). It’s also insanely organized where add ons are different than integrations.and are hidden in different menus, as are system functions and just… It’s a mess from UX POV. It’s also a nightmare to try to interact with the codebase or documentation or even ask questions, much less make a suggestion. As an aside to address the point of the article, I have absolutely zero worry that they will ever forget about power users, because I, and many other power users who have interacted with Paulus on boards before agree he is kind of an asshole who absolutely does not understand why anyone would want to do anything different than how he imagines it - including documentation or UX or whatever. Home Assistant is totally safe for power users.

Now of course I’m not trying to say it’s bad, just that it is kind of a bear even for the tech savvy. You can’t beat HA for being able to interface with absolutely anything. There’s almost always already an integration written. It can do anything, and if you’re persistent enough you can kludge together a solution that works in exactly the way you need. You might even be able to hide all the kludge from your spouse. It’s also all free, because Paulus and a hundred other devs contribute their time for free and they’re amazing for it. Absolutely awesome for power users. But being simple or easy just isn’t one of its many, many pros.

First off:

If you can’t grasp YAML, you’re in trouble in the future. It’s been around for decades at this point, and it’s a helluva lot more readable than JSON, which is the currently most transmitted format over the wire on the planet.

This is a “you” problem, not the rest of the world.

it’s a helluva lot more readable than JSON

Maybe for you, but definitely not for everyone. I can use it if I have to, but I find it very annoying to deal with significant whitespace.

YAML might be more readable than JSON, but it’s absolutely not easier to work with, either to write from scratch or troubleshoot. And honestly, for my purposes that doesn’t even make it easier to read. It’s easier to read if I’m showing it to my wife because there are fewer semicolons. As soon as you want to do anything with the information you’ve read, it’s garbage. YAML sucks, and I’ll just link to a much better rant than I can ever come up with: ruudvanasseldonk.com/…/the-yaml-document-from-hel…

Second off, if you’d been using Zwave in Home Assistant for many years, you’d know they’ve changed their integration (no wait! It’s an add-on now! No wait, it’s also an integration still too!) multiple times, including breaking changes. That’s what I’m talking about. Of course I know zwave is a protocol - it’s a protocol that Hubitat supports better. They also support Zigbee better (yes I use both). Admittedly part of that is built in hardware, but also it’s a better UI, a consistent UI, and not just… changing how things work so old hardware doesn’t work anymore.

I dunno man, we can disagree on HA’s choices but maybe make sure you even know what you’re talking about before being a dick for no reason. Then again, you opened with being a dick about me being the problem because I “can’t grasp YAML” when I said I don’t like it so I don’t even know why I’m engaging. Just piss off.

The yaml document from hell

As a data format, yaml is extremely complicated and it has many footguns. In this post I explain some of those pitfalls by means of an example, and I suggest a few simpler and safer yaml alternatives.

Addons are just docker containers at the end of the day so as long as you know how to spin up a docker container, you’re not adding much. And as long as you know how to spin up a docker container I don’t think you’d have much issue getting the dockerized version working.
They have the ‘Nabu Casa’ entity, which I thought was doing well. Last I heard, all their subscriptions were doing well, as were the dedicated devices they sell. Don’t see them doing anything but accelerating growth as interest in this space, availability of useful devices grows.
Their biggest risk right now is doing something to lose the trust of the community. Most users have zero money actually invested in home assistant, as opposed to something like Alexa and Google home. That makes it a lot easier to jump ship to an alternative. I think that’s a big part of why they’ve started the foundation.
To become mainstream the install process for a fully featured setup needs massive work.
In what way? It’s dirt simple to get started.
For you maybe. You think your grandma could set up home assistant?
Yeah, that’s all Alexa and Google have on home assistant. Not to mention that sometimes you have to write yaml to create automations.
That doesn’t feel like a fair comparison. For the same level of setup you can get with Alexa and Google, I feel like it’s easy. If you want complex automations, sure you can yaml, but you’ll be doing things you couldn’t with Alexa or Google

Yeah, that’s all Alexa and Google have on home assistant.

That seems like a massive thing though. If the average Joe can’t even install the product, then it doesn’t matter if it has way more features than its competitors.

If average joe can’t be assed to to some research, the product isn’t for average joe and that’s a good thing. Because designing a product for average joe has a lot of drawbacks.
It’d be tough, but I guess we could dig her up and try?

How are skills issue the fault of an open source project that follows open source paradigms and works like every other piece of open source software?

Why do we care? I sure as fuck don’t and I contribute to a lot of FOSS projects.

You think my grandma fucks with Google Home or Apple Homekit?

Not everyone is up to the task anyway.

It’s a rhetorical question, you’re missing the entire rhetoric of it…

Which is that not everyone is technically inclined, actually most aren’t, so the majority of everyone is not going to be capable of operating a technically demanding system.

I do understand what you’re saying, but not everyone will or should self host.

I don’t know when you’ve tried the setup, but it’s gotten to a point where i do find it very easy.

If you go the way with a pre built device too, all you have to do is creating an account and plenty device pop up immediately without any further steps.

The new step by step automation creation was all which was left to improve.

If you fail at that, you probably fail at other solutions too

You can buy preinstalled hardware like the Home Assistant Green if you aren’t up for it.
I’m still confused by the different versions of HA. Does that version include all of the features? Or is it the basic install that’s easiest to install?
Yes home assistant green comes preinstalled with everything you need, you can use addons, etc. Just buy it, plug it in and start going.
I run it in a docker container and it works great.

For others, beware that in a docker, each plugin needs its own docker container.

I run everything in docker except for HA which I run in a VM (HaOS) which makes it super easy to use.

each plugin needs its own docker container.

What are you talking about? This is simply not true.