esphome
-
A HUB75 Football Scoreboard That Only Needs WiFi
Yesterday's scoreboard needed Home Assistant, a HACS integration, and a blueprint. A day later there's a version where you flash the M-1 from a browser, join it to WiFi, tap your team on the device's own page, and that's the whole setup. The ESP32 talks to ESPN itself. This is what it took, including the bug that made every button on my fancy new page silently do nothing.
-
Turning a HUB75 Matrix into a Gameday Scoreboard
NFL kickoff week seemed like the right time to make my HUB75 matrix show live scores. One Saturday, 21 blueprint versions, and a lot of standing in the living room saying "run it again" later, my wall shows the game, my lights celebrate touchdowns, and switching teams is a dropdown instead of a reflash.
-
Reverse engineering a PixMob RF LED wristband to work with ESPHome
PixMob wristbands are the LED bands they hand out at concerts and games. I got the RF version working from ESPHome, packaged it as an external component, and documented it properly. The band now shows up in Home Assistant as a normal RGB light, and setting one up takes three blocks of YAML.
-
Upgrading the RTTTL play_buzzer action on my day off
A customer asked why our MTR-1 didn't have a nice RTTTL action like SMLIGHT's coordinators. We had the action all along, but the form for it in Home Assistant was a blank box, because the ESPHome API can't send a description. Two days later there are six PRs across three repos and the buzzer plays melodies from prefilled fields.
-
Improving the sen6x component in ESPHome
I redid a stalled ESPHome PR as six smaller ones, ran three rounds of adversarial review agents over the code, and then flashed it onto real hardware anyway. The hardware found two bugs the reviews never would have. Also my sensor was unpowered for half an hour and I blamed everything except the actual cause.
-
What I learned letting Claude edit a YouTube Short
I wanted a 37 second video of my doorbell playing the Pink Panther theme, and I didn't want to edit it. So I had Claude cut the whole thing in ffmpeg. It got there, eventually, after being confidently wrong about the same problem four times in a row and me refusing to accept it.
-
Simplifying the use of hidden networks in ESPHome
If your Wi-Fi network is hidden, the wifi config every ESPHome guide hands you won't connect, and nothing in the logs says why. The option that fixes it existed, it just wasn't accepted in the short form. It turned out there was no reason for that, so I sent a patch.
-
Improving the ESPHome captive portal
The screen that gets an ESPHome device onto WiFi lists the same network once per access point, so a mesh shows up three or four times at different signal strengths. Tapping the strong one does nothing the weak one doesn't, because the device only ever gets the network name, not the access point you picked. I checked the source, then sent a 220-byte fix upstream to collapse the list to one row per network.
-
Sometimes a sensor lies about what model it is: the SEN55 that said SEN54
Some AIR-1 units report themselves as a SEN54 over I2C even though the module inside is a SEN55, so ESPHome shut their NOx sensor off. It turned out NOx had never worked on those units at all. A small override option settled whether the hardware or the register was lying, and it ships in ESPHome 2026.7.2.
-
Building an air quality LED indicator for the AIR-1
The AIR-1 has three onboard RGB LEDs, so I made them show air quality at a glance. The feature itself is small. Getting there took longer than it should have, because I kept fixing things that weren't the problem. These are the dead ends and where it ended up.
-
Two days of ceiling dust, measured in eight rooms
I spent two days cutting sheetrock, disturbing old insulation, and scraping popcorn ceiling in the upstairs bathroom, with eight Apollo AIR-1 sensors watching the whole house. The two rooms off the bathroom spiked 20 to 30 times over, and the return air lifted every other room too. The room-by-room data, and why I wore a P100 the whole time.
-
The CAST-1 got a new DAC component and WizMote support
ESPHome 2026.6.0 added a built-in PCM5122 component, so we moved the Apollo CAST-1 off the community one we'd been using and added WizMote remote control in the same update. The move wasn't optional, the old component stopped loading on 2026.6.0, and the swap shipped with a silent-audio bug I had to chase down.