Home Assistant: Using AI to make a WSPR Ham Radio Integration

How I Brought Live WSPR Propagation to My Home Assistant Dashboard

AI

4/22/20252 min read

WSPR in Home Assistant
WSPR in Home Assistant

Building a WSPR Home Assistant Integration

I'm a big fan of Home Assistant and recently got back into amateur radio. One mode that really interests me is WSPR (Weak Signal Propagation Reporter). It's fascinating—my radio hears weak signals from all over the world, and I get to see where they're coming from on a map. Simple idea, loads of fun. I can transmi to and see who hears me.

I wanted to bring this into Home Assistant, but there wasn't an easy way to do it so I decided to try building something myself.

Honestly, I'm not a programmer, and the thought of sharing code online made me nervous. But with a bit of curiosity, help from ChatGPT and Claude, and a lot of trial and error, I managed to piece together a working integration. And yep—I've even put it on GitHub (gulp!).

🛠 Why Create a WSPR Integration?

I love seeing where my signals go and who I can hear. WSPR is all about propagation—how far your signal travels under different conditions. I was using PSKReporter and WSPRnet, but I wanted something directly in Home Assistant dashboard.

So here’s what I aimed for:

  • Pull my live WSPR RX and TX spots into Home Assistant.

  • Show distance, SNR, band—and even work out the country from the callsign.

  • Record my furthest distances received and transmitted.

  • Track trends in propagation, right from my dashboard.

🚀 How I Built It

With no real coding experience, I relied on AI to help me along. It was a mix of copy-paste, trial-and-error, and slowly figuring things out.

Here’s what came together:

  • Data Source: WSPR.live was perfect—fast, open, reliable.

  • Custom Integration: I built two Home Assistant sensors:

    • sensor.wspr_live_rx_spots: for stations I received.

    • sensor.wspr_live_tx_spots: for stations that received me.

  • Country Lookup: Added live lookup so it can show the country for each callsign.

  • Band Mapping: Instead of raw frequencies, I mapped them to bands like 20M, 40M—just easier to read.

  • Distance Records: Using input helpers and templates, Home Assistant now tracks my best RX and TX distances automatically.

  • Dashboard Display: I created cards showing tables of spots, SNR-over-time charts, and a little record summary that updates itself.

📸 What It Looks Like

Now, right in Home Assistant, I can see:

  • Who I’m hearing

  • Who’s hearing me

  • How things change hour-by-hour

  • And which signal made it the furthest

⚙️ Under the Hood

The integration:

  • Grabs fresh data from WSPR.live every 30–60 minutes

  • Filters and processes the JSON data

  • Adds extra info: time, callsigns, SNR, distance, band, and country

  • Makes it all available inside Home Assistant as sensors

And the best bit? It all runs locally—no extra servers or cloud stuff needed.

📚 Final Thoughts

I’ve learned so much through this little project—not just about Home Assistant or WSPR, but about what’s possible when you mix open-source platforms, curiosity, and a bit of help from AI.

It’s still early days, and like I said, I was nervous putting this on GitHub. But if you’re into ham radio and Home Assistant, I think you’ll get a real kick out of seeing your radio activity show up in real time on your dashboard.

✅ You can check it out here (please be kind!): Dtwo-sys/wspr_live

Home Assistant WSPR Project
Home Assistant WSPR Project