Skip to content

Dashboard Examples

Pentafive edited this page Jan 25, 2026 · 3 revisions

Dashboard Examples

This page provides Home Assistant dashboard examples for the WSPR integration.

Dashboard Generator (Recommended)

The easiest way to create a dashboard is with the generator:

cd examples/dashboards
python3 generate_dashboard.py W1ABC -o my-dashboard.yaml

Options:

  • --no-global - Exclude global network statistics
  • --no-bands - Exclude per-band breakdown

See examples/dashboards/README.md for full documentation.


Quick Links:

Required HACS Frontend Cards

For the full dashboard experience, install these cards from HACS:

Card Purpose Install
mushroom Modern entity cards, chips, titles HACS → Frontend
mini-graph-card Simple trend charts with thresholds HACS → Frontend
apexcharts-card Advanced charts, comparisons HACS → Frontend

Minimum requirement: Basic entities card works without custom cards.


Basic Cards

Entities Card

type: entities
title: WSPR Monitor - W1ABC
entities:
  - entity: sensor.wspr_w1abc_total_spots
  - entity: sensor.wspr_w1abc_unique_stations
  - entity: sensor.wspr_w1abc_most_active_band
  - entity: sensor.wspr_w1abc_most_active_mode
  - entity: sensor.wspr_w1abc_max_distance
  - entity: sensor.wspr_w1abc_average_snr
  - entity: sensor.wspr_w1abc_spots_per_hour

Glance Card

type: glance
title: WSPR Activity
entities:
  - entity: sensor.wspr_w1abc_total_spots
    name: Spots
  - entity: sensor.wspr_w1abc_unique_stations
    name: Stations
  - entity: sensor.wspr_w1abc_most_active_band
    name: Band
  - entity: sensor.wspr_w1abc_most_active_mode
    name: Mode
  - entity: sensor.wspr_w1abc_feed_status
    name: Feed

Mushroom Cards

type: vertical-stack
cards:
  - type: custom:mushroom-title-card
    title: WSPR Monitor - W1ABC
    subtitle: Weak Signal Propagation Reporter

  - type: horizontal-stack
    cards:
      - type: custom:mushroom-entity-card
        entity: sensor.wspr_w1abc_total_spots
        name: Spots
        icon_color: blue
      - type: custom:mushroom-entity-card
        entity: sensor.wspr_w1abc_unique_stations
        name: Stations
        icon_color: green

  - type: horizontal-stack
    cards:
      - type: custom:mushroom-entity-card
        entity: sensor.wspr_w1abc_most_active_band
        name: Band
        icon_color: orange
      - type: custom:mushroom-entity-card
        entity: sensor.wspr_w1abc_most_active_mode
        name: Mode
        icon_color: purple

Activity & Propagation

Activity Trend with SNR Thresholds

type: vertical-stack
cards:
  - type: custom:mini-graph-card
    name: Spot Activity (24h)
    entities:
      - entity: sensor.wspr_w1abc_total_spots
        name: Spots
    hours_to_show: 24
    points_per_hour: 4
    line_width: 2
    line_color: "#1E88E5"
    show:
      labels: true
      points: false
      legend: false

  - type: custom:mini-graph-card
    name: SNR Quality (24h)
    entities:
      - entity: sensor.wspr_w1abc_average_snr
        name: SNR
    hours_to_show: 24
    line_width: 2
    color_thresholds:
      - value: -20
        color: "#F44336"
      - value: -15
        color: "#FFC107"
      - value: -10
        color: "#4CAF50"
    show:
      labels: true
      points: false

Extended Propagation Stats

type: entities
title: Propagation Statistics
entities:
  - entity: sensor.wspr_w1abc_farthest_station
    name: Farthest Station
  - entity: sensor.wspr_w1abc_dx_ratio
    name: DX Ratio (>5000km)
  - entity: sensor.wspr_w1abc_propagation_score
    name: Propagation Score
  - entity: sensor.wspr_w1abc_spots_last_hour
    name: Spots (1h)
  - type: section
    label: Distance Range
  - entity: sensor.wspr_w1abc_average_distance
  - entity: sensor.wspr_w1abc_max_distance
  - type: section
    label: SNR Range
  - entity: sensor.wspr_w1abc_min_snr
  - entity: sensor.wspr_w1abc_average_snr
  - entity: sensor.wspr_w1abc_max_snr
  - type: section
    label: Power
  - entity: sensor.wspr_w1abc_average_tx_power
    name: Avg Power (dBm)
  - entity: sensor.wspr_w1abc_average_tx_power_watts
    name: Avg Power (Watts)

DX Ratio & Propagation Gauges

type: horizontal-stack
cards:
  - type: gauge
    entity: sensor.wspr_w1abc_dx_ratio
    name: DX Ratio
    unit: "%"
    min: 0
    max: 100
    severity:
      green: 50
      yellow: 25
      red: 0
  - type: gauge
    entity: sensor.wspr_w1abc_propagation_score
    name: Propagation
    min: 0
    max: 1000
    severity:
      green: 500
      yellow: 200
      red: 0

Global Network Cards

Global Stats Glance

type: glance
title: WSPR Global Network
entities:
  - entity: sensor.wspr_w1abc_global_spots_15m
    name: Spots (15m)
  - entity: sensor.wspr_w1abc_global_max_distance
    name: Max Distance
  - entity: sensor.wspr_w1abc_global_average_distance
    name: Avg Distance

Global Network Detail

type: entities
title: Global WSPR Network
entities:
  - entity: sensor.wspr_w1abc_global_spots_15m
    name: Global Spots (15 min)
  - type: attribute
    entity: sensor.wspr_w1abc_global_spots_15m
    attribute: unique_transmitters
    name: Unique Transmitters
  - type: attribute
    entity: sensor.wspr_w1abc_global_spots_15m
    attribute: unique_receivers
    name: Unique Receivers
  - type: attribute
    entity: sensor.wspr_w1abc_global_spots_15m
    attribute: most_active_band
    name: Most Active Band
  - type: attribute
    entity: sensor.wspr_w1abc_global_spots_15m
    attribute: most_active_mode
    name: Most Active Mode
  - entity: sensor.wspr_w1abc_global_max_distance
  - entity: sensor.wspr_w1abc_global_average_distance

Per-Band Statistics

Band Activity Overview

type: glance
title: Band Activity
show_state: true
columns: 5
entities:
  - entity: sensor.wspr_w1abc_160m_spots
    name: 160m
  - entity: sensor.wspr_w1abc_80m_spots
    name: 80m
  - entity: sensor.wspr_w1abc_60m_spots
    name: 60m
  - entity: sensor.wspr_w1abc_40m_spots
    name: 40m
  - entity: sensor.wspr_w1abc_30m_spots
    name: 30m
  - entity: sensor.wspr_w1abc_20m_spots
    name: 20m
  - entity: sensor.wspr_w1abc_17m_spots
    name: 17m
  - entity: sensor.wspr_w1abc_15m_spots
    name: 15m
  - entity: sensor.wspr_w1abc_12m_spots
    name: 12m
  - entity: sensor.wspr_w1abc_10m_spots
    name: 10m

Band Activity Chart

type: custom:mini-graph-card
name: HF Band Activity (24h)
entities:
  - entity: sensor.wspr_w1abc_20m_spots
    name: 20m
    color: "#1E88E5"
  - entity: sensor.wspr_w1abc_40m_spots
    name: 40m
    color: "#43A047"
  - entity: sensor.wspr_w1abc_30m_spots
    name: 30m
    color: "#FFA726"
  - entity: sensor.wspr_w1abc_15m_spots
    name: 15m
    color: "#E53935"
  - entity: sensor.wspr_w1abc_10m_spots
    name: 10m
    color: "#8E24AA"
hours_to_show: 24
points_per_hour: 4
line_width: 2
show:
  labels: true
  legend: true
  state: true

Band Activity Bar Chart (ApexCharts)

type: custom:apexcharts-card
header:
  title: Band Activity
  show: true
chart_type: bar
series:
  - entity: sensor.wspr_w1abc_20m_spots
    name: 20m
    color: "#1E88E5"
  - entity: sensor.wspr_w1abc_40m_spots
    name: 40m
    color: "#43A047"
  - entity: sensor.wspr_w1abc_30m_spots
    name: 30m
    color: "#FFA726"
  - entity: sensor.wspr_w1abc_15m_spots
    name: 15m
    color: "#E53935"
  - entity: sensor.wspr_w1abc_10m_spots
    name: 10m
    color: "#8E24AA"

Health Monitoring

Feed Status Panel

type: entities
title: WSPR Feed Health
show_header_toggle: false
entities:
  - entity: sensor.wspr_w1abc_feed_status
  - type: attribute
    entity: sensor.wspr_w1abc_feed_status
    attribute: reason
    name: Status Reason
  - type: attribute
    entity: sensor.wspr_w1abc_feed_status
    attribute: latency
    name: Latency (seconds)
  - type: attribute
    entity: sensor.wspr_w1abc_feed_status
    attribute: total_fetches
    name: Total Fetches
  - type: attribute
    entity: sensor.wspr_w1abc_feed_status
    attribute: fetch_errors
    name: Fetch Errors

Conditional Alert Card

type: conditional
conditions:
  - entity: sensor.wspr_w1abc_feed_status
    state_not: healthy
card:
  type: markdown
  content: |
    ## ⚠️ WSPR Feed Status: {{ states('sensor.wspr_w1abc_feed_status') }}

    **Reason:** {{ state_attr('sensor.wspr_w1abc_feed_status', 'reason') }}

    Check network connectivity or WSPR.live status.

Automations

Alert on DX Achievement

automation:
  - alias: "WSPR DX Alert"
    trigger:
      - platform: numeric_state
        entity_id: sensor.wspr_w1abc_max_distance
        above: 15000
    action:
      - service: notify.mobile_app
        data:
          title: "WSPR DX Alert!"
          message: >
            New DX: {{ state_attr('sensor.wspr_w1abc_farthest_station', 'distance_km') | round(0) }} km
            to {{ states('sensor.wspr_w1abc_farthest_station') }}

Band Opening Alert

automation:
  - alias: "WSPR 10m Band Opening"
    trigger:
      - platform: numeric_state
        entity_id: sensor.wspr_w1abc_10m_spots
        above: 5
        for:
          minutes: 10
    action:
      - service: notify.mobile_app
        data:
          title: "10m Band Opening!"
          message: "{{ states('sensor.wspr_w1abc_10m_spots') }} spots on 10m"

Entity Naming

Pattern

Entity IDs follow this pattern:

  • Main sensors: sensor.wspr_{callsign}_{sensor_name}
  • Band sensors: sensor.wspr_{callsign}_{band}_spots

Examples

Sensor Entity ID
Total Spots sensor.wspr_w1abc_total_spots
Most Active Band sensor.wspr_w1abc_most_active_band
Most Active Mode sensor.wspr_w1abc_most_active_mode
Max Distance sensor.wspr_w1abc_max_distance
Avg SNR sensor.wspr_w1abc_average_snr
Avg Power (Watts) sensor.wspr_w1abc_average_tx_power_watts
Global Spots sensor.wspr_w1abc_global_spots_15m
20m Band Spots sensor.wspr_w1abc_20m_spots
Feed Status sensor.wspr_w1abc_feed_status

Checking Your Entities

Use Developer Tools > States and filter by "wspr" to find your exact entity IDs.