Skip to content

feat(nodes): signal health sparklines and RSSI health badge#70

Open
iceice400 wants to merge 1 commit into
KMX415:mainfrom
iceice400:feat/signal-health-tracking
Open

feat(nodes): signal health sparklines and RSSI health badge#70
iceice400 wants to merge 1 commit into
KMX415:mainfrom
iceice400:feat/signal-health-tracking

Conversation

@iceice400

Copy link
Copy Markdown
Contributor

Summary

  • Extend GET /api/nodes/{id}/metrics_history with optional bucket_minutessignal_buckets (15-min RSSI/SNR aggregates)
  • Optional signal_health config (green_rssi_floor, yellow_rssi_floor, min_packets_per_hour) exposed via GET /api/config
  • Node cards: lazy-loaded canvas sparklines (IntersectionObserver) + green/yellow/red health badge from 1-hour rolling RSSI average

Why

Node cards only showed last-heard RSSI. Operators need trend-at-a-glance without opening the drawer. Reuses existing metrics API and SQLite packet history — no schema migration.

Type

  • Bug fix
  • Feature
  • Docs
  • Refactor
  • UI
  • Installer
  • Region support
  • Hardware change

Testing

  • Local unit tests
  • Tested on hardware
  • Dashboard tested on device
python -m unittest tests.test_signal_buckets tests.test_node_metrics_history -v

Manual checklist (on gateway):

  1. Nodes tab → cards with RSSI show sparkline slot + badge after scrolling into view
  2. Active node (≥5 pkts/hr) → badge green/yellow/red matches 1h avg RSSI
  3. Pass-through node (<5 pkts/hr) → badge hidden (no false red)
  4. Sparse beacon node → dashed connector between distant buckets in sparkline
  5. Edit signal_health thresholds in local.yaml → badge colour updates after refresh
  6. Node drawer still works (raw signal array unchanged)

Hardware: RAK7248 or Pi + HAT · US915

Impact

  • Parsing
  • Relay
  • TX
  • Radio driver
  • Region logic
  • UI + read-only API
  • Installer only

Risks: Low — read-only SQL; lazy fetch per visible card limits load. Drawer backward compatible.

AI-assisted?

  • Yes

Add 15-minute RSSI/SNR buckets via metrics_history, optional signal_health config, canvas sparklines on node cards with lazy IntersectionObserver loading, and green/yellow/red health badges from 1-hour rolling averages.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant