Data sourced from WSPRnet via WSPR.live. Both services are volunteer-maintained and free for the amateur radio community.
Disclaimer: This project is independently developed and is not affiliated with, endorsed by, or connected to WSPRnet or WSPR.live.
Bridge WSPR (Weak Signal Propagation Reporter) spot data from WSPR.live to Home Assistant for monitoring amateur radio propagation conditions.
- Real-time WSPR monitoring - Track your WSPR transmissions and receptions
- Dual deployment - Install via HACS (native integration) or Docker (external bridge)
- Rich statistics - Per-band metrics, distance stats, propagation scores
- Global network stats - Network-wide activity and max distances
- Mode tracking - WSPR-2, WSPR-15, and FST4W mode detection
- Flexible filtering - Filter by callsign, band, country, or distance
- WSPR-specific data - Includes power levels (dBm/Watts) and frequency drift (Hz/min)
- Dashboard generator - Create custom Lovelace dashboards for your callsign
Native Home Assistant integration with UI-based configuration.
- Open HACS in Home Assistant
- Click the menu (⋮) → Custom repositories
- Add
https://github.com/pentafive/wspr-ha-bridgeas Integration - Click Install
- Restart Home Assistant
- Go to Settings → Devices & Services → Add Integration → WSPR
External bridge that publishes to Home Assistant via MQTT.
git clone https://github.com/pentafive/wspr-ha-bridge.git
cd wspr-ha-bridge
cp .env.example .env
# Edit .env with your callsign and MQTT broker
docker compose up -d- Wiki Home - Overview and architecture
- WSPR Data Guide - Understanding WSPR fields (SNR, power, drift)
- Dashboard Examples - Home Assistant dashboard YAML
- Troubleshooting - Common issues and solutions
┌──────────────────┐
│ WSPR.live │
│ (ClickHouse DB) │
│ 2.7B+ spots │
└────────┬─────────┘
│ HTTP Poll (150s)
▼
┌────────────────────────────────┐
│ wspr-ha-bridge │
│ ┌─────────────┬─────────────┐ │
│ │ HACS │ Docker │ │
│ │ Integration │ Container │ │
│ │ (native) │ (MQTT) │ │
│ └─────────────┴─────────────┘ │
└────────────────┬───────────────┘
│
▼
┌──────────────────┐
│ Home Assistant │
│ • Sensors │
│ • Dashboards │
│ • Automations │
└──────────────────┘
| Feature | HACS Integration | Docker Container |
|---|---|---|
| Installation | HACS UI | docker compose |
| Configuration | Home Assistant UI | Environment variables |
| Updates | HACS automatic | Manual pull |
| Resource usage | Inside HA | Separate container |
| MQTT required | No | Yes |
| Best for | Most users | Separate hardware, advanced users |
- RX Mode (
rx): Monitor who received your signal (you're transmitting) - TX Mode (
tx): Monitor who you received (you're receiving) - Dual Mode (
dual): Monitor both directions
- Total spots, Unique stations
- Most active band, Most active mode
- Distance (min/avg/max)
- SNR (min/avg/max)
- Average TX power (dBm and Watts)
- Spots per hour
- DX ratio, Propagation score
- Feed status (health monitoring)
- Global spots (last 15 min)
- Global max/avg distance
- Network-wide unique transmitters/receivers
- Spot count for each HF band (160m through 6m)
- Includes per-band SNR, distance, and power averages
This bridge uses the WSPR.live public ClickHouse database:
- Database:
http://db1.wspr.live/ - Data latency: ~2-3 minutes from real-time
- Rate limit: 20 requests/minute (this bridge uses ~0.4 req/min)
- Historical data: 2.7+ billion spots
Verify WSPR.live connectivity without requiring MQTT:
export MY_CALLSIGN=W1ABC
export SCRIPT_DIRECTION=tx
python wspr-ha-bridge.py --testGenerate custom Lovelace dashboards for your callsign:
cd examples/dashboards
python generate_dashboard.py W1ABC -o my-dashboard.yamlOptions:
--no-global- Exclude global network statistics--no-bands- Exclude per-band breakdown-o FILE- Save to file instead of stdout
Requires: mushroom cards, mini-graph-card, apexcharts-card (HACS Frontend)
| Feature | pskr-ha-bridge | wspr-ha-bridge |
|---|---|---|
| Data Source | mqtt.pskreporter.info | db1.wspr.live |
| Data Model | Push (MQTT subscription) | Pull (HTTP polling) |
| Latency | Sub-second | 2-3 minutes |
| Modes | FT8, FT4, CW, etc. | WSPR, FST4W |
| Extra Data | — | Power (dBm/W), drift |
| Global Stats | Yes | Yes |
| Deployment | HACS + Docker | HACS + Docker |
- WSPR.live - Primary data source (2.7B+ spots, Grafana GUI)
- WSPRnet - Official WSPR network
- wspr.rocks - Enhanced visualization
- WSPR Watch - iOS app
- DXplorer - Propagation analysis
- WSPRdaemon - Multi-channel decoder
- WSJT-X - Original WSPR software
- pskr-ha-bridge - PSKReporter bridge
If you find this integration useful:
- Buy Me a Coffee — Support development of this and other HA integrations
This integration uses data from the WSPRnet network, accessed through the WSPR.live community database. Both are volunteer-run services that are free for amateur radio operators.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
This project is independently developed and is not affiliated with, endorsed by, or connected to WSPRnet or WSPR.live. WSPR spot data is sourced from the WSPR.live public database and originates from the WSPRnet network.
Contributions are welcome! Please read CONTRIBUTING.md for guidelines.
