Home Automation Mar 11, 2026 5 min read

Good Morning, Los Angeles: Life with an AI DJ

Every morning, Benedict Weatherstone--an AI-powered NPR-style radio host--kicks off the day with a bespoke news report for an audience of two.

At five o’clock, my watch taps me gently on my wrist. I turn off my alarm, and the house comes to life: shades open. Coffee brews. Lights turn on.

I use this quiet time to putter. I unload the dishwasher. I fill Miles’ water bowls. I tinker with projects. I scroll feeds. Just before seven, I get an alert that Kathryn is awake. I bring her a cup of coffee and we chat while Miles does his morning thing. Then, a familiar voice plays over the HomePod.

How It All Works

The system is simpler than it might sound. Home Assistant assembles a prompt from live data—the time, weather conditions, anything relevant on the calendar, reminders, things I want Benedict to know about—and fires it at the Claude API. Claude writes a script. That script goes to ElevenLabs, which renders it as audio. Home Assistant plays the audio file over the HomePod. That’s it. Four steps, three services.

What makes it feel like more than plumbing is the prompt. Here’s a representative example:

You are Benedict Weatherstone, an NPR-style news reporter in Los Angeles delivering the morning news brief. Write in a fluid, organic style without section labels. This transcript will be read by a text-to-speech agent, so don't use emoji or include inline metadata. Use the following vocal tags where contextually appropriate: [sighs], [excited], [mischievously], [laughs]...

Include the following details:

- Personality: dry and sardonic
- Day and time: Monday, March 11, 2026 7:12 am
- Current weather: sunny, 72º
- Forecast: sunny, high of 84º
- Sunset is at 6:57 pm, and is forecast to be beautiful
- UV index: 7
- Allergy index: 6.4
- 6 days until trip to Palm Springs
- Remember to put trash bins out tonight
- Formula 1 is racing in China this week.

The vocal tags are an ElevenLabs feature—hints to the TTS engine about how to deliver a line. Getting Benedict to land a joke required figuring out that the model needs to be told when to laugh, not just what’s funny. The “personality” line sets the tone of the script. Swap dry and sardonic for something else entirely and you get a completely different show—same infrastructure, different vibe.

Home Assistant is doing the unglamorous work of stitching this together: pulling weather from an integration, checking the calendar, surfacing relevant reminders, formatting it all into that bullet list, and orchestrating the API calls in sequence. The intelligence lives in Claude. The voice lives in ElevenLabs. HA acts as the producer.

The Trigger

The briefing could just fire at 7:00 AM every morning. That would be easy to build and almost always wrong.

Some mornings Kathryn sleeps in. Some mornings we’re out the door early. A fixed schedule means the briefing plays to an empty bedroom, or interrupts something, or fires before the coffee is ready. None of that is the end of the world, but it’s the difference between a system that feels alive and one that feels like a cron job.

Instead, the automation watches for the moment we’re actually settled. Kathryn’s alarm turns off. The bedroom door opens. A few conditions are checked, a short delay fires, and Benedict starts talking.

Getting the logic right took some trial and error—there are enough sensors and conditions involved that it occasionally misfires, and probably always will. But the target behavior is right often enough that it’s become part of the rhythm of the morning.

Benedict Weatherstone, Correspondent

The voice was the part I spent the most time on. Anyone can pipe a text-to-speech readout through a speaker. I wanted something with a little more personality than a weather widget with a mouth.

The prompt casts Benedict as an NPR-style correspondent delivering a morning brief for Los Angeles. Dry, a little sardonic, conversational—the kind of voice that makes weather feel like it has stakes. ElevenLabs handles the actual delivery, but the personality lives entirely in the prompt. Claude writes the lines; ElevenLabs reads them. Getting the two to feel like one thing required trial and error.

A few touches I’m particularly fond of: if the forecast is sunny, Benedict is instructed to use the exact phrase “blue skies and golden sunshine all along the way,” a nod to the late David Lynch, who spent years delivering LA weather reports on YouTube. It felt like the right kind of tribute for a morning show that only two people will ever hear.

And if ever a prompt includes the number 69, be it a forecasted temperature or the days remaining until an important event, he is instructed to immediately follow with a “nice,” as required by law.

Hey There, Night Owls

The same pipeline runs at the other end of the day.

Just after we’ve crawled into bed, a second briefing plays—this one delivered by Stephen Holloway, late-night DJ. Where Benedict is crisp and sardonic, Stephen is the spiritual cousin of Symphony Sid: that late-night jazz radio presence, the kind of voice you’d expect to find at the end of an FM dial.

The content shifts too. Less news, more checklist. Did the dishwasher run? Is the coffee queued for tomorrow? What’s the weather going to be? It’s the kind of rundown you’d otherwise do in your head while staring at the ceiling—except Stephen does it for you, in a voice that makes forgetting to start the dishwasher sound almost poetic.

I’m not trying to 10× my productivity. I just wanted mornings that felt intentional: a house that knows when the day is starting and when it’s winding down, and has something worth saying about both. Benedict and Stephen are how I got there.

Iteration·Notes .blog
© 2026