Brother Scanner Docker 2.0

Seven years ago I wrote about digitizing analog documents: A Brother MFC-L2700DW, its Linux driver in a Docker container on the DiskStation, two rewritten shortcut scripts that turn a simplex document feeder into a duplex workflow, and a small Tesseract service for the text recognition. That setup has scanned every letter that reached this house since, and the container has quietly collected users, issues and pull requests along the way. This year it got the overhaul it had earned. Version 2.0 is out, and this post is the tour.

Read More

Teaching a 30-Year-Old Kettler Ergometer New Tricks

In our attic stands a very old Kettler Golf M ergometer. It is a wonderfully indestructible machine: A permanent-magnet brake, a dial for the resistance, and a battery-powered console (an FB601) showing pulse, cadence and some “derived” numbers for speed and distance. What it does not have is any data interface. No serial port, no Bluetooth, nothing — the only connector is an analog plug for an ear-clip pulse receiver. Since I measure everything else in this house, that clearly could not stand. This is the story of wiring it up to an ESP32, a story that grew far beyond its original scope: Past a failed first approach, into Home Assistant, onto a chest strap, through an AI training coach posting to Matrix, and finally into a full role-playing game.

Read More

A New Smart Meter Gateway

As shown in some of my earlier posts, I run a fair number of services at home, and I like to measure things. Two of the things I measure are the electricity meters in the basement: one for the house and one for the heating. Both are modern meters with an optical (infrared) interface, and for years a small script has been reading them and pushing the numbers into MQTT, from where the rest of my homelab picks them up for dashboards and the occasional automation.

Read More

Calibrating IKEA Tradfri RGBW Lights

IKEA’s Tradfri series offers a very affordable entry into smart lighting, with a range of ZigBee-controlled RGB and RGBW bulbs. While they work well for color effects, there’s one glaring shortcoming: the RGB lights struggle to reproduce accurate white color temperatures. Warm whites can appear too pink or yellow, and cooler whites can lean slightly green or blue.

Read More

An n8n timer for an AI Agent

AI Agents are often limited to triggers by humans. This is a big limitation. I wanted my AI Agents to be able to schedule work for their future selves. Not Cron. Not a waiting loop. A proper “Hey, wake me up in 20 minutes and remind me what I was thinking” kind of timer. So I built a small workflow that acts as a self-activating timer. Any AI Agent can call it, hand over an interval and a prompt, and then, after the timer expires, the agent is pinged again with precisely the context it left behind. It turns out to be both incredibly simple and incredibly useful.

Read More