- Node control API (start/stop/restart peers via SSH) - Home Assistant node control integration - Termux/Android: skip BT scanning, optional location check - Filter controls display only, always scan both WiFi/BT Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
269 lines
7.4 KiB
Markdown
269 lines
7.4 KiB
Markdown
# RF Mapper - TODO / Backlog
|
|
|
|
**Last Updated:** 2026-02-01
|
|
**Current Version:** v1.0.1
|
|
|
|
---
|
|
|
|
## Historical Data & Device Tracking (Priority)
|
|
|
|
- [x] SQLite database for device history
|
|
- [x] Store every scan result with timestamp
|
|
- [x] Track first_seen / last_seen per device
|
|
- [x] RSSI history per device (time series)
|
|
- [x] Calculate average/min/max RSSI per device
|
|
- [x] Device appearance frequency statistics
|
|
- [x] Motion detection from RSSI patterns
|
|
- [x] Velocity estimation from distance changes
|
|
- [ ] Movement trajectory visualization
|
|
- [ ] Device presence heatmap over time
|
|
- [ ] Historical playback mode (scrub through time)
|
|
- [x] Device activity patterns (daily/weekly)
|
|
- [x] Alert on new device detection
|
|
- [x] Alert on device absence (left the area) - via HA webhook
|
|
- [x] Data retention policies (auto-cleanup old data)
|
|
|
|
---
|
|
|
|
## Multi-Scanner / Peer Sync
|
|
|
|
- [x] Scanner identity configuration
|
|
- [x] Peer registration API
|
|
- [x] Bidirectional device sync
|
|
- [x] Timestamp-based conflict resolution
|
|
- [x] Source scanner tracking for synced devices
|
|
- [x] Peer scanner markers on map
|
|
- [x] Background sync thread
|
|
- [x] WebSocket real-time sync (instead of polling)
|
|
- [ ] Automatic peer discovery via mDNS/Bonjour
|
|
- [x] Sync RSSI history for trilateration
|
|
- [x] Master dashboard: view peer node data without redirect
|
|
- [x] Node control API (start/stop/restart peers via SSH)
|
|
- [x] Home Assistant integration for node control
|
|
- [ ] Web UI for peer management
|
|
- [ ] Sync conflict resolution UI
|
|
|
|
---
|
|
|
|
## Scanning
|
|
|
|
- [ ] Support multiple WiFi interfaces
|
|
- [ ] Scan specific channels only (faster)
|
|
- [ ] Hidden network detection
|
|
- [ ] WPA3 detection
|
|
- [ ] 5GHz/6GHz band identification
|
|
- [ ] Bluetooth LE advertisement parsing
|
|
- [ ] iBeacon/Eddystone protocol support
|
|
- [ ] BLE service UUID decoding
|
|
- [ ] Scan scheduling with cron expressions
|
|
- [ ] Concurrent WiFi + BT scanning
|
|
|
|
---
|
|
|
|
## Distance & Positioning
|
|
|
|
- [x] Manual position override for devices with assigned floor
|
|
- [ ] Configurable TX power per device type
|
|
- [ ] Path loss exponent calibration wizard
|
|
- [ ] Environment presets (office, home, warehouse)
|
|
- [ ] Wall attenuation factor
|
|
- [ ] Multi-floor path loss adjustment
|
|
- [x] Trilateration from multiple scan points
|
|
- [ ] Kalman filter for position smoothing
|
|
- [ ] Dead reckoning with IMU (if available)
|
|
- [ ] Fingerprinting-based positioning
|
|
- [ ] Machine learning position estimation
|
|
|
|
---
|
|
|
|
## Visualization
|
|
|
|
- [ ] Dark/light theme toggle
|
|
- [ ] Custom marker icons per device type
|
|
- [ ] Signal strength color gradient
|
|
- [ ] Animated radar sweep effect
|
|
- [ ] Mini-map in corner
|
|
- [ ] Fullscreen mode
|
|
- [ ] Split view (radar + map)
|
|
- [ ] Device clustering at zoom levels
|
|
- [ ] Floor plan image overlay
|
|
- [ ] Custom building polygon drawing
|
|
- [ ] SVG export for diagrams
|
|
- [ ] Device trail/path visualization
|
|
- [ ] Speed/direction indicators on moving devices
|
|
|
|
---
|
|
|
|
## Statistics & Analytics
|
|
|
|
- [ ] Dashboard with device counts over time
|
|
- [ ] Signal quality trends per device
|
|
- [ ] Busiest hours/days heatmap
|
|
- [ ] Device type distribution pie chart
|
|
- [ ] Manufacturer breakdown
|
|
- [ ] Floor occupancy statistics
|
|
- [ ] Motion events timeline
|
|
- [ ] Exportable reports (PDF)
|
|
|
|
---
|
|
|
|
## Data & Storage
|
|
|
|
- [x] SQLite database backend
|
|
- [x] Automatic scan rotation/cleanup
|
|
- [ ] Compressed JSON storage
|
|
- [ ] Cloud backup option
|
|
- [ ] Import from other tools (Kismet, etc.)
|
|
- [ ] Merge scans from multiple sessions
|
|
- [ ] Data anonymization option
|
|
- [ ] GDPR compliance features
|
|
|
|
---
|
|
|
|
## API & Integration
|
|
|
|
- [ ] OpenAPI/Swagger documentation
|
|
- [x] WebSocket for real-time updates
|
|
- [ ] GraphQL endpoint (optional)
|
|
- [ ] MQTT publishing
|
|
- [x] Home Assistant webhook integration (scan results, new device, departure)
|
|
- [ ] Home Assistant auto-discovery (MQTT)
|
|
- [x] Webhook on device events
|
|
- [ ] Prometheus metrics endpoint
|
|
- [ ] Grafana dashboard template
|
|
- [ ] Node-RED integration nodes
|
|
|
|
---
|
|
|
|
## Security
|
|
|
|
- [ ] Optional authentication (basic/token)
|
|
- [ ] HTTPS support
|
|
- [ ] Rate limiting
|
|
- [ ] Audit logging
|
|
- [ ] MAC address randomization detection
|
|
- [ ] Rogue AP detection
|
|
- [ ] Deauth attack detection
|
|
- [ ] Known device allowlist
|
|
|
|
---
|
|
|
|
## Performance
|
|
|
|
- [ ] Async scanning with asyncio
|
|
- [ ] Scan result caching
|
|
- [ ] Lazy loading for large device lists
|
|
- [ ] WebWorker for frontend processing
|
|
- [ ] Gzip compression for API responses
|
|
- [ ] Database query optimization
|
|
- [ ] Memory profiling and optimization
|
|
|
|
---
|
|
|
|
## DevOps
|
|
|
|
- [ ] GitHub Actions CI/CD
|
|
- [ ] Automated testing on PR
|
|
- [ ] Docker multi-arch builds
|
|
- [ ] Helm chart for Kubernetes
|
|
- [ ] Ansible playbook for deployment
|
|
- [ ] systemd service with watchdog
|
|
- [ ] Log rotation configuration
|
|
- [ ] Health check endpoint
|
|
|
|
---
|
|
|
|
## Documentation
|
|
|
|
- [ ] Video tutorial
|
|
- [ ] Architecture diagrams (Mermaid)
|
|
- [ ] Troubleshooting guide
|
|
- [ ] FAQ section
|
|
- [ ] Contribution guidelines
|
|
- [ ] Code of conduct
|
|
- [ ] Security policy
|
|
- [ ] Changelog automation
|
|
|
|
---
|
|
|
|
## Hardware Support
|
|
|
|
- [ ] External USB WiFi adapters
|
|
- [ ] External USB Bluetooth adapters
|
|
- [ ] RTL-SDR integration
|
|
- [ ] HackRF support
|
|
- [ ] ESP32 as remote scanner node
|
|
- [ ] Raspberry Pi Pico W support
|
|
- [ ] GPS module integration (for mobile scanning)
|
|
- [ ] PoE-powered deployment
|
|
|
|
---
|
|
|
|
## Ideas / Research
|
|
|
|
- [ ] Crowd-sourced device fingerprints
|
|
- [ ] AI-based device classification
|
|
- [ ] Augmented reality view (WebXR)
|
|
- [ ] Voice control integration
|
|
- [ ] Mesh network topology mapping
|
|
- [ ] Time-based access patterns
|
|
- [ ] Anomaly detection
|
|
- [ ] Digital twin integration
|
|
|
|
---
|
|
|
|
## Technical Debt
|
|
|
|
- [ ] Refactor scanner.py (too large)
|
|
- [ ] Split app.py into blueprints
|
|
- [ ] Type hints for all functions
|
|
- [ ] Consistent error handling
|
|
- [ ] Remove deprecated code paths
|
|
- [ ] Update dependencies
|
|
- [ ] Fix linting warnings
|
|
- [ ] Improve test coverage (target: 80%)
|
|
|
|
---
|
|
|
|
## Completed
|
|
|
|
- [x] Check if OpenStreetMap provides 3D view capabilities
|
|
- [x] Allow placement of height (floor) in the building for device positioning
|
|
- [x] Implement 3D navigable map (using MapLibre GL JS with building extrusion)
|
|
- [x] Device floor assignment UI (click device to assign floor)
|
|
- [x] SQLite database for historical device tracking
|
|
- [x] RSSI time-series history with statistics
|
|
- [x] Movement detection and velocity estimation
|
|
- [x] Device labeling and favorites
|
|
- [x] New device alerts
|
|
- [x] Automatic data retention/cleanup
|
|
- [x] Reliable BLE scanning with bleak library
|
|
- [x] Statistical movement detection (reduces false positives)
|
|
- [x] Floor persistence in database
|
|
- [x] Popup persistence during live updates
|
|
- [x] Manual position override (drag-drop for floor-assigned devices)
|
|
- [x] Home Assistant webhook integration (scan, new device, departure)
|
|
- [x] Multi-scanner peer sync (v1.0.0)
|
|
- [x] Bidirectional device metadata sync
|
|
- [x] Source scanner tracking for synced devices
|
|
- [x] Peer scanner markers on 3D map
|
|
- [x] WebSocket real-time sync
|
|
- [x] Termux/Android environment detection with prerequisite checks
|
|
- [x] Multi-scanner trilateration for device positioning
|
|
- [x] Signal coverage heat map visualization
|
|
- [x] Multi-node master dashboard (view peer data in single UI)
|
|
- [x] Node control API (start/stop/restart peers via SSH)
|
|
- [x] Home Assistant node control integration
|
|
- [x] Termux/Android: skip BT scanning gracefully (no D-Bus)
|
|
- [x] Termux/Android: optional location check
|
|
- [x] Filter controls display only, always scan both WiFi/BT
|
|
|
|
---
|
|
|
|
## Won't Do (Decided Against)
|
|
|
|
- ~~Active WiFi probing~~ - Too intrusive, passive only
|
|
- ~~Packet injection~~ - Legal concerns
|
|
- ~~Deauth capabilities~~ - Malicious use potential
|
|
- ~~Commercial tracking~~ - Privacy concerns
|