I Hate Maintaining Things
I like to start a lot of projects. New projects are fun. They have novelty and a lot to discover and implement. You can go from nothing to something functional in the span of a couple of hours and be really happy with it. Then, you go to bed, go to work, and find a new project to work on, one that's fun, has novelty, and has new things to discover and implement. You do this because the current project is no longer fun.
I have so many projects on the go at once that it's so overwhelming to change and go back to a different one. I'll rediscover something I started a few months ago and by the time I've dusted it off, got all the bits out, and started to work on it again, it's bedtime and I've not got any more time to fiddle with it.
As with all projects, the time you think something will take and the time it actually takes are different by several orders of magnitude. This would be really helpful if you thought something would take several months and only took fifteen minutes, but alas it's the other way round. Let's give a few examples.
I've got what is known in the industry as a smart home. What that really means is that some of my smart devices, instead of being controlled via a switch which will never, ever fail, are now being controlled via Wi-Fi and computers. Unless you're NASA, a switch is going to be more reliable than Wi-Fi and computers. Initially, having a smart home sounds like a really cool idea:
- It's a faff switching the light off then getting into bed in the dark → voice controlled lighting.
- When I pause a film I want the lights to come on → connect Plex to Home Assistant and setup an automation.
- It can get cold in the evening and I have an electric blanket → if I'm home an hour before bed, switch the electric blanket on.
- I forget to switch monitors and lights off when I leave the house → setup automations to kill these when I leave, and restore their state when I get back.
This sounds perfect, you setup the automation, et voilà! Everything works. You can do everything you could do before, but with a computer in the middle, saving that all important 5 seconds every day. All is good in the world, you never have to touch a light again, and your life has been improved to no end.
Oh, wait! That's not the case at all. First, you setup Home Assistant on your Raspberry Pi, but then you accidentally borked the server and deleted everything on it. No worries, you've got backups–right? Turns out when you first deployed Home Assistant you thought that backups weren't necessary. You'd try out the system, then make backups a thing once you were happy with it and knew it was going to be deployed in production. So these backups were never created in the first place, and now you get the joy of rebuilding every automation! That's fine, you profess, as you curse yourself under your breath and vow to always make backups a priority in the future.
Then, after deploying Home Assistant to a new machine, you again neglect the backups, and the SD card dies. You thought it'd be alright because you'll be using a dedicated Pi to run Home Assistant, and SD cards were really, really reliable. Finally, instead of implementing backups you do away with the on-device storage, and instead decide to spend several weeks figuring out network booting. All is good with the world, nothing else to go wrong, and so if nothing can go wrong, nothing will go wrong you muse.
Time for a slight network refresh, you think. What a fool, thinking that moving some devices to your IoT network won't break things, and what a fool, thinking that a dodgy Philips Hue emulation through Home Assistant would be reliable. Best of all, what a fool that you think Tuya are happy with you not sending data through their servers.
You think that it could be the access point, so you go down the rabbit hole of checking your theory that running a 5.8GHz network on your AP breaks the 2.4GHz network, thus disconnecting the smart plugs. This does turn out to be the case, so you reset the AP and update the firmware, and all should be well.
It's now a Sunday evening and all you want in the entire world is your smart plugs to start working again so that you can save yourself the chore of reaching round and down to where the wires go to switch the lights on and off again. Naturally, instead of actually fixing the problem, you start to blog about it instead, and by the end of the evening you are once again at the same impasse. Either, you work late into the night to fix the problem once and for all, or, more likely, you decide you value sleep and will switch the lights off by hand, one last time.
You come back to the issue a couple of weeks later with a fresh head, assuming that in your tiredness, you'd overlooked something simple. Because you've bought fifteen thousand different brands of smart plug, and flashed several different types of firmware across them, you now have no idea what is working and what is not, whether they're on the iot
or the home
LAN, and whether they talk to China or need to be coerced through some magic on your local network.
You wonder if it was ever worth moving away from the Amazon Alexa system that just works™ to your own local massively extensible system that doesn't talk to the internet was worth it, or if even going down the route of a smart home in the first place was a good idea. You begin to think about trying to total the hours spent on automating your home away, then fall into a deep state of sadness as you realise that irrespective of how long you've saved through automating your home life, the time spent fixing the system is much much greater.
And thereth ends the rant. Save yourself the fuss and just switch your lights on and off by hand.
I was originally going to go into more detail about different things I've got the pleasure of maintaining but then decided that one case study was probably sufficient. Any project you start seems to eventually become a chore to look after and we're all too used to the instant gratifications of the modern day to look at the bigger picture.
Think carefully before you dive into the Home Assistant rabbit hole, it's a deep one.