I got COVID again this week, which made it a hard slog to go through work hours (which I trimmed a bit) and pretty much impossible to do anything. And yet, I sort of persevered.
New ISP
But before that happened we switched ISPs (hurrah for symmetrical fiber connections). It’s been bittersweet because I really liked using the Vodafone network I built, but I got a much better deal for significantly less (never mind why), and moved back to MEO/Altice.
With the need to change our ONT/home gateway to something with a completely different configuration and decommission the five AirPort Extreme base stations we used to run in favor of newfangled Wi‑Fi 7 extenders, it turned out I had to do an inordinate amount of network tweaking.
That, incidentally, is why I recently set up new LAN switches and have been playing with various forms of network isolation and hacks for name resolution). Nothing like a good network challenge to keep things interesting.
HomeKit Side Quests
And what were the highest priority devices to reconfigure? Why, the air conditioners, of course. Since we changed the location of our Wi-Fi access points and at least two of them were (erroneously) bound to specific BSSIDs, I had to open all of them and update their configurations to ensure they were on the right network.
I also decided to replace all the Tasmota power plugs with Zigbee‑based ones, which is a pretty major home automation update and that led me to do a series of software upgrades, including updating our Node-RED dashboards to match the new device names and topics.
HomeLab Side Quests
And just to add to the fun, Proxmox 9.0 was released, so of course I upgraded my (currently only) 4‑node cluster.
That included the z83ii
I use as an extra quorum node, which typically has to be reinstalled atop a Debian 13 base. Everything works fine, and I now have new I/O and memory pressure charts that make it easier to keep track of cluster load.
Lessons Learned
So what did I learn as I painstakingly went through every single machine on my network?
- Using mDNS and
.local
is much better than hard‑coding IP addresses (I already knew that bit) or relying on the vagaries of home gateway resolvers (which are all just crummy). - You will never remember all the places where you had a
.lan
suffix set in some arcane configuration. - Remove all your VLANs before this kind of migration, and get a physical box to double NAT stuff you don’t want on the same LAN as your regular devices.
- Configure Wake‑on‑LAN on everything you care about, and keep track of the MAC addresses (I already had most of them listed in Obsidian, but not all).
- Having Tasmota devices for home automation is nice and all, but having to update the MQTT broker hostname on all of them is a major pain. Zigbee devices have no such issues, and I now have a much more reliable mesh network.
3D Printing
My KP3S Pro is layer‑shifting again, which I suspect is due to the increased heat despite my having put in a stronger fan a long while ago.
And this time, when it did it broke not one but two 3D Touch probe stalks in a row, which has effectively put it out of commission until I can repair it.
To be honest, I have started considering getting a new 3D printer altogether, since given the great results I get from the SK1 my needs have changed and I am more interested in a multi-material printer (not for fancy coloring, but for industrial materials and support structures)
Still, I am carrying on and have been working on a couple of ways to cool down my server closet that are nearly complete:

AI
I’ve been playing with GPT‑5 inside VS Code and am quite happy with it so far, mostly because it isn’t as overly enthusiastic as Claude.
On the projects I’m tweaking, it doesn’t tend to go off on wild tangents, which is a nice plus. It is also smart enough to check Python imports and understand which fail due to missing dependencies in the current environment instead of trying to install them.
It’s also especially good at writing documentation—I have it update SPEC.md
files after every significant code change I make (or it makes), and the results have been decent.
Impressively, it was able to take the entire source code for my site engine and produce a very good overview document, including features I had forgotten I implemented years ago.
Another thing I started looking into is speech synthesis, especially speech synthesis for video narration. The eagle-eyed might have spotted that I am (very slowly) starting a YouTube Channel (pretty obvious name, I know), and I’ve already decided that at least for the start, I will try to automate as much of the time-consuming parts as possible–and narration is pretty high up on the list.
Gaming Hacks
I can’t stop scratching the odd itch with life/tech hacks, so this weekend I managed to (feverishly) solve an issue that’s been bugging us for a while: How to switch the active Steam user on a headless box without resorting to a KVM.
I’ve had a small script to do it for a while, but nobody really wants to SSH into a machine to run it, and I had an epiphany when I was looking at the way HomeKit handles TVs–so I decided to write a HomeKit shim that looks like a TV with multiple inputs–pick the user account you want to activate (i.e., the “input”), hit Power to restart Steam, and you’re done.
The source is up on GitHub, and coupled with auto‑suspend and Wake‑on‑LAN (which the Steam Link client does automatically), it’s a pretty sweet solution to have a local streaming game server.
Not bad for a week or so, even if most of this weekend was spent dozing on the couch in a semi-feverish state…