Bokeh

Making sense of the mess in my head

Exploring Uncut - April 28th, 2025

It’s been a while since the last “Exploring Uncut” post, so without further ado, here’s a recap of some of the fun and important things from the past few weeks.

Home Assistant

I’ve been interested in home automation for a very (very) long time, nearly 40 years.
As a teenager, I had seen an article on how to control your home using some custom electronics on your Commodore 64. That piqued my curiosity and I started researching the available products and technologies.
Looking at X10, CEBus, Phast and drooling in front of Crestron touch panels (considered state of the art back then they were ridiculously tiny monochrome panels costing thousands of dollars).

As I started working and earning more money, I bought smart remote controls from Nevo, then Phillips Pronto. Eventually, this became my part time job and I went after all kinds of certifications: AMX VIP, RTi certified, Vantage, Crestron, Lutron, …

In the early 2010s, I came across OpenRemote, an open source project that, at the time, was focused on home automation. They were doing cool things, so I used it at home and joined the team.
But home automation is a complicated market and unless your community reaches some critical mass or you’re a major player that can somehow impose a standard (and even then, HomeKit is OK but it did not became a defacto standard), this will be a constant struggle. There will always be that one other device or one other protocol that you absolutely need to support.
The project moved away from the home market and is now an IoT platform focusing on use cases such as Energy Management, Fleet Management or Smart Cities. And part of my professional time is still spent as a member of this team.

I kept using it for my home for several years after the switch, but eventually I had to move on and find some other solution.
At the time, the main project I was working on (in the digital identity domain, nothing to do with home automation), was moving to kubernetes and micro-services. So as a research project, I developed a custom home automation system. The idea was to use an MQTT bus as the backbone and have each pod encapsulate a protocol adapter or some business logic. I developed each service using Java and SpringBoot and had a web UI developed with Angular and using MQTT over WebSocket. Eventually I implemented a native Swift client, mainly to have a UI accessible on my AppleTVs.

It was a great learning experience and fun to get it running but eventually the maintenance burden became too significant. Every new device I would have liked to add required custom development, and keeping up with the dependencies updates or fixing the occasional glitch was just too much.

So I decided to take the plunge and try Home Assistant. I’ve known about it for several years. It’s become the market leader, most of my geek friends are using it, but I never tried it.

For testing purposes, I installed it inside a VM on my Mac mini. I then went through the configuration steps and was amazed at how many devices were immediately discovered or could be added with a few clicks. In no time, I had a simple dashboard with control over some basic elements like lights, media players or security cameras.

Going further will still take a bit of reading or watching some videos. And we’ll see how stable the system will be and how much effort I’ll need to put into keeping it running, but so far I’m impressed with what I’ve seen.

I’ll still do some custom developments and experiments though, as I have ideas for small devices that I could interface using Embedded Swift (although I could change my mind when looking at ESPHome).

Computer History Museum videos

Some of you following me on Mastodon might have seen my #ThrowbackThursday toots, featuring all kinds of older software or hardware from several decades ago. Looking at that brings back memories of those times when, as a child, I was discovering computers and programming; experimenting with side projects as I ran into some cool new tech or previous jobs I worked at.
But unrelated to my personal experience, I feel strongly about the fact that knowing the history of our field is important. If you’re studying painting, literature, architecture or many other topics, you’ll take history classes. You’ll understand how we got here, how the techniques evolved over time and why, who were the key contributors.

I’ve got a big collection of books about the history of computers and software programming but I also sometimes re-read old technical books, as they convey the ideas underpinning the technology at the time. And I also watch several YouTube channels about retro computing and computing history.

Lately I’ve started watching several of the Oral History videos published by the Computer History Museum, where they have long-format interviews with key players in our field, giving them the opportunity to tell their story as they recall.

Being slightly biased towards Apple and NeXT history, I’ve started with interviews from Rich Page, Avie Tevanian and Bertrand Serlet.
Having seen the people speaking about macOS change over the years in the Apple keynotes, it’s funny to see the link with NeXT’s history. Avie was Bertrand’s boss and mentor, Bertrand worked with Scott Forestall on AppKit and later hired Craig Federighi to work on EOF.

Miscellaneous

I continued working on porting the examples from the Bluetooth Low Energy Fundamentals course from Nordic Developer Academy to Embedded Swift. I posted all examples from lesson 2 (see Embedded Swift version of the Nordic Dev Academy BLE examples) and have all examples from lesson 3 running (but a bit of cleaning is required before posting).

I’m now using Swiftly to manage my Swift toolchains. Overall it makes things easier but there are a couple of glitches still. I wrote about it in Swiftly and Swift 6.1 released.

And I just submitted two talk proposals for SwiftLeeds. Let’s see how that goes.

I really enjoy presenting at conferences, so if you have any topics you’d like to see me talk about, let me know on Mastodon and I’ll see if I can bring some interesting thoughts on the subject.