Reverse-Engineering the Vornado EOS 9's RF Remote

I bought a Vornado EOS 9 for the bedroom, a Wirecutter pick. It came with a remote, no protocol listed anywhere, no FCC ID that turned up anything useful. Flipper’s frequency analyzer put it near 433 MHz, and Read mode came back with no protocol match, which meant it wasn’t going to be one of the well-known families. (Read mode isn’t broken: pointed at my actual front-door bell, it decodes CAME 12bit at 315 MHz instantly, no histogram needed. The fan’s protocol is just genuinely unlisted.) So it was Read RAW and reverse engineering from scratch, or nothing. ...

August 4, 2026 · 30 min · Derek Welty

Tracking Indoor vs Outdoor Temperature in an SF Apartment

I needed AA and AAA batteries and grabbed an IKEA TIMMERFLOTTE while I was at it. Zigbee temperature and humidity sensor, $8. I put it in my living room: middle of the apartment, between all the windows, so a reasonable representative reading. No real plan. Ten days of data later, I have a clear picture of how this apartment moves heat — and it is not great. Setup The TIMMERFLOTTE logs over Zigbee to Home Assistant. It reports on state change rather than on a fixed interval, so the data is dense: I get a reading whenever temp shifts by about 0.1°F. For outdoor data I’m using Pirate Weather, a privacy-respecting API that pulls from NOAA, exposed as a template sensor in HA: ...

July 29, 2026 · 5 min · Derek Welty

Free OTA TV Anywhere, Using a Box I Already Had

My TV antenna lived behind my TV in the living room. Reception was inconsistent: if someone walked between the antenna and the window, the signal dropped. If I forgot to pull it out and angle it before sitting down, I got nothing. I had an HDHomeRun FLEX DUO from a previous place where I had the antenna setup dialed in. I moved and never got around to setting it up again at the new apartment. The antenna behind the TV was the placeholder that never got fixed. This week I fixed it, and the same day I finished, I used it to watch the FIFA World Cup from an airport lounge and a plane on the way home from a trip, free, with no cable subscription. That felt worth writing up. ...

July 19, 2026 · 6 min · Derek Welty

Self-Hosted Obsidian Sync on a Raspberry Pi with Tailscale

Two spare Pis sitting around. Already running AdGuard, so Pi-hole was off the table. I wanted something actually useful. I’ve been paying $10/month for Obsidian Sync. The vault lives on my hardware anyway — it felt like paying rent on my own stuff. The alternative: run CouchDB on a Pi, point the Self-hosted LiveSync plugin at it, and use Tailscale to make the Pi reachable from anywhere without port forwarding or a public IP. E2E encrypted, zero ongoing cost, fully under my control. ...

June 26, 2026 · 7 min · Derek Welty

TRMNL X BYOS: Self-Hosting the Server Before the Device Arrives

I ordered a TRMNL X e-ink display to put on my desk. It’s a 7.5" e-paper panel that polls a server for images and refreshes on a schedule. TRMNL has a cloud service, but I’m not paying a subscription for a display I can host myself — and BYOS (Bring Your Own Server) mode is the whole reason I bought the X model over the cheaper ones. The device hasn’t arrived yet. The server is already running. ...

April 23, 2026 · 3 min · Derek Welty

IKEA Varmblixt as a Home Assistant Status Light

I wanted a passive ambient display that tells me something useful without picking up my phone — weather at a glance during the day, a wind-down mode at night, green at 6:30am if it’s worth cycling to work. The IKEA Varmblixt is $30, Zigbee-native, and pairs directly to ZHA without an IKEA hub. Pairing Not obvious. There’s no reset button. To enter pairing mode, power-cycle the lamp 12 times in rapid succession — plug, unplug, plug, unplug… It flashes white 3–4 times when it’s ready. A smart plug makes this way easier than fumbling with the physical outlet. Source ...

April 13, 2026 · 5 min · Derek Welty

Building Molty: A Telegram Assistant with Memory and Scheduled Checks

ChatGPT worked fine for one-off questions, but it was isolated from the systems I actually use: calendar, email, Strava, GitHub, Obsidian, Spotify, and the half-finished project notes scattered across repos. I wanted a small assistant I could run myself, with persistent memory, scheduled checks, and enough tool access to be useful without turning into a full product. So I built Molty. Architecture Molty runs on OpenClaw — an open agent platform that handles the gateway infrastructure: Telegram integration, LLM API routing, and session management. It runs on a Hostinger VPS. I didn’t build any of that. What I built is everything layered on top: the memory system, integrations, heartbeat logic, and skills. ...

April 8, 2026 · 6 min · Derek Welty

Building a Concert Discovery Tool with Spotify and Venue Scrapers

I kept missing shows I would have gone to. The data was public, but checking it required a weird amount of manual attention: venue calendars, Spotify history, ticket prices, neighborhoods, and a final “would I actually leave the apartment for this?” filter. I built a weekly concert digest into Molty, my Telegram-based assistant. Every Monday morning it checks SF venues, matches artists against my Spotify library, and sends a ranked list of shows. ...

March 29, 2026 · 5 min · Derek Welty