Posts
All the articles I've posted.

Bye Bye, O2: Two Decades a Customer, Beaten by a £6.90 SIM
I'd been an O2 customer for decades, and their 5G had been bad the whole time - bad enough that I'd blamed my phone for it. A dead signal in a Sunday car park, ten minutes to spare, and an AI-suggested alternative later, I'd signed up for a rival SIM and watched it do in a car park what O2 couldn't do at home.

All the Gear, No Idea: What I Was Getting Wrong About Soldering
I don't solder often, and when I do it's always been bad - blobby joints, poor flow, the works. Today I found out why, almost by accident, watching a video about tip temperature. I'd been running my iron 100 degrees too cold for years.

I Was Wrong About Home Assistant
I always thought of Home Assistant as the red-headed stepchild of Google Home, with no real basis for it. I'd had it installed for ages and used it for small jobs Google couldn't do. Then I started asking more of it, and spent a day with Claude Code building a phone-first dashboard of bronze knobs, a dot-matrix display and push buttons. Here is why, what it looks like, and what went wrong on the way.

Colour palettes for interfaces
Nine colour palettes for dashboards, apps and sites, each previewed in dark and light where it has both.

Who Owns the State? Putting My IR Fans Behind Home Assistant Matter Hub
My ceiling fans, their lights, the bedroom TV and the aircon are all controlled by infrared, so none of them can say what state they're in. I had them in Google Home through the Broadlink app and in Home Assistant directly, and the two kept disagreeing. Here is how I made Home Assistant the only owner of that state and gave Google Home a Matter bridge to talk to it. Voice control now picks the right room's light without being told which.

A Smart Mirror from a Spare Pi 3, and the Browser I Ended Up Deleting
My ten-year-old bathroom mirror is dying, so I'm replacing it with two-way glass, a spare 22 inch monitor and a Raspberry Pi 3. It shows the time, the weather and what's playing, wakes when I walk up, and plays radio and YouTube Music. Making that smooth on a Pi 3 took me from Chromium to Cog to a native Qt app with no browser at all. Here is where it stands and how I got there.

A Touchscreen Remote for Home Assistant, and I Didn't Write a Line of It
Updated:In my last post I wrote off an ESP32 touchscreen remote. Then a ready-made Waveshare ESP32-C6 AMOLED board turned up, minus the battery it was supposed to include. Claude Code built the firmware and the Home Assistant side from my prompts, and by 7pm on the day it arrived it was working. Here is what it does, how it fits together, and where it went wrong.

The TV Remote I Needed Was an Air Mouse
Updated:The Home Assistant pages replaced my Harmony, but not the feel of a hardware remote. I searched for a TV remote and found Zigbee buttons, ESP32 touchscreens and e-ink. What worked was a 2.4GHz air mouse that Home Assistant sees as a keyboard. Here is the search, the wrinkles, and why the TV's own on-screen toasts made it usable.

Humanising Claude's Writing: What I Actually Use
A copy-and-paste 'humanise this text' prompt went past me, and I compared it with the voice-hygiene rules my Claude Code writing skill already has. The skill checks sentence shapes, not just banned words. Here is what it does, what it gets wrong on a technical post, and what I'd steal from the prompt.

Replacing My Harmony Remote: HDMI-CEC, Home Assistant and Claude Code
A Logitech Harmony only knows what it last told each device to do, never what's actually happening. Over two days, Claude Code and I built something that listens to the HDMI-CEC bus and each device's own API instead, then wrapped it in a phone remote in Home Assistant, with no IR at all. Here is what we built, why, and every wrong turn on the way.