Al and I were talking on the podcast about the Home Assistant home automation hub software. In particular, about how devilishly well designed it is for extensibility. It’s designed to be added on to, and that makes all of the difference.
That doesn’t mean that it’s trivial to add your own wacky control or sensor elements to the system, but that it’s relatively straightforward, and that it accommodates you. If your use case isn’t already covered, there is probably good documentation available to help guide you in the right direction, and that’s all a hacker really needs. As evidence for why you might care, take the RTL-HAOS project that we covered this week, which adds nearly arbitrary software-defined radio functionality to your setup.
And contrast this with many commercial systems that are hard to hack on because they are instead focused on making sure that the least-common-denominator user is able to get stuff working without even reading a single page of documentation. They are so focused on making everything that’s in-scope easy that they spend no thought on expansion, or worse they actively prevent it.
Of course, it’s not trivial to make a system that’s both extremely flexible and relatively easy to use. We all know examples where the configuration of even the most basic cases is a nightmare simply because the designer wanted to accommodate everything. Somehow, Home Assistant has managed to walk the fine line in the middle, where it’s easy enough to use that you don’t have to be a wizard, but that you can make it do what you want if you are, and hence it got spontaneous hat-tips from both Al and myself. Food for thought if you’re working on a complex system that’s aimed at the DIY / hacker crowd.

Some things are made possible, other things are denied. Try getting an out-of-tree generic aarch64 HAOS port to build, and you’ll see what I mean.
After ~6-weeks of work to get an image to boot successfully, only then do you discover (and it’s not documented) that they’ve locked the generic aarch64 docker images, presumably to protect their Nabucasa Green product. Once your new system boots, it has no available docker images to pull and run, thus remains non-competitive – A rude awakening to ‘open’ source, yielding extortionate hardware cost for all.
I wonder how often it occurs in the open source world that someone builds something just because they are unaware that the wheel has already been invented. When I first got an ESP8266 to do my bidding, I proceeded to build out an entire device-client-server ecosystem for it without ever learning Home Assistant was a thing. Now it does so many things that Home Assistant doesn’t (for example: allowing me to query ESP8266s with a command-line syntax similar to the Python REPL via web or serial) that I would have to give up too much to switch. But I have been looking at Home Assistant more lately in order to assimilate some of its better features.
Something similar, my brother is using an ESP8266 to control an IR diode so he can turn off his AVR receiver should he forget to turn it off himself.
Whilst struggling with getting the IR part working, I pointed out that the default firmware is a tcp serial converter, and his AVR has a serial port so the only thing he would need is a TTL-UART adapter. Or forget the ESP entirely; the AVR has network control via telnet + HTTP.
“Al and I were talking…” my brain read “A.I. were talking …” and not for the first time.
Mind was doing gambols – you recorded the podcast with a chatbot?? Its going to happen, but will we be able to tell? Turing test for HaD listeners, what’s that sound?
This reminds me one script we were shown in classroom that didn’t work because our teacher used Times New Roman and somewhere variable l (L) was out instead of 1 – or in reverse.
I never understood why someone would make a font with (almost) the same glyph for two separate characters; and why others would choose to use it. It’s the worst when displaying a password which you have to read and type in another system. Just plain cruel.
Those fonts were existing before code was a thing. Check the etymology of “font”
Hackaday uses proxima nova as a font, which was released in 2005. Ironically the big shift to sans serif fonts was because they were better readable on LCD’s and computer screens, but apparently the need to differentiate between I and l when reading passwords from screen was not a design requirement.
To my surprise some people think that sans serif fonts are a sign of wokeness https://www.nytimes.com/2025/12/09/us/politics/rubio-state-department-font.html
I actually make barcodes of some of the passwords at work. This way the clear text is not visible to customers and there is no need to revert to short, insecure, memorable passwords. Also no 0 vs O or other similar mixups.
I’d argue it’s more a symptom of commercial systems being designed to make money. There’s often little profitability in building something extensible. There’s no money in spending any more time than absolutely necessary than the bare minimum that sells. The same goes for repairability.
There’s also no money to be made in selling something that’s so complicated that 95% of people would end up returning it.
HA is great for me, but lots of technically competent friends I know would struggle with it, let alone the non-technical ones.
Don’t forget all the money LiftBastard and Chamberpot can make by charging people exorbitant amounts of money for their cloud services!
With all these complexity around I can finally understand Assembler.
HAOS is … weird. On one hand it is compatible with so many off-the-shelf devices, and makes it fantastically easy to make your own ESP32 or Pi Pico widgetry. On the other hand it can’t use a Bluetooth speaker or microphone, and inevitably insists that at some point you have to learn YAML to bypass the GUI.
My current bugbear is that I don’t seem to be able to send Signal messages without firing up some kind of Linux box, albeit ever so tiny.
On the other hand the Xmas lighting effects and home security system interfaces were child’s play.
It is cracked, but it lets in the light.