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.
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 know someone living in a really high-end “smart” home. We’re talking about a ton of hardware and proprietary software controlling practically everything in the house. From one app in a phone or iPad, you can control everything from the security cameras to the heater to the pool.
It’s basically the pinnacle of what all this technology intends to achieve, and tbh, it’s all a bit of a pain.
Diagnosing anything in the house has an extra layer of work. Is it the pool heater not working? Oh, no, it’s the app not working. Security alert from the house? A fly walked across the camera lens. Everything acting weird all the sudden? Guess the shitty monopoly broadband cable provider in the city is having issues again.
The system only stays afloat because of a 24/7 service contract with a company that specializes in these houses. Give a few months without that support, and things will start falling apart.
I get that this is a different class from the products from Google and Amazon, or even the various open source products, but tbh, I’ll take fragmented over monolithic and overarching.
If the method does a long thing, the keep it long. I do a lot of data analysis and simulation, and so often people who came before had this urge to shorten methods, so we get:
Sometimes there’s a place for that, like if
calculation
could be swapped for a different function, or ifcalculation
is used all over the program. It’s a pretty good clue that something is up though when the signatures are almost identical. Of course, that has just led to people writing: