I mean, I agree, but the target market of a lot of this stuff couldn’t care less. They want their hot tub synced up to their Outlook calendar or whatever, and can afford a monthly maintenance contract to keep that working.
For the rest of us, there’s this sort of odd limbo. Most people expect some kind of remote control app as part of their smart stuff, which means either going through an outside cloud service, or running your own server and contending with the fact that most of us don’t have a static IP. Of course there are services like no-ip, but again, you’re stuck using someone else’s cloud service, just for a much smaller part of the overall task.
My point at the end though is that I don’t necessarily want “all in one” control, whether open source or proprietary. I’ve seen what well-implemented smarthome looks like, and it does not (to me) seem worth the money or time. I’ll take the ecobee, maybe the security cameras, and I’ll even go though their commercial cloud to get that remote connectivity, but I’d rather keep my services separate, than go all-in on one hardware/provider/app.
I mean, that’s basically the option. Set up a domain, set up dynamic DNS, and safely do the right port forwarding and IP reservations in your router.
Unfortunately this is not easy for a lot of people, and the overall picture of home automation requires a combination of skills that not everyone has. Then they basically get two choices: pay for a company to maintain the system, or use someone else’s cloud. A lot of people will pick option 2.
Unlike a lot of DIY tasks, it’s not even one that I would suggest to someone who is hesitant. It’s not a “oh just try planting tomatoes this year, see how it turns out.” Someone who messes up their port forwarding rules could potentially open their home network to a lot of trouble.