Files
rf-mapper/TODO.md
User 0e99232582 Switch to bleak for reliable BLE scanning with RSSI
- Replace hcitool-based BT scanning with bleak Python library
- Bleak provides reliable RSSI values via D-Bus/BlueZ
- BLE scan now finds devices that hcitool missed
- Update project docs to reflect resolved BT RSSI blocker
- Add bleak>=0.21.0 to dependencies

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 00:17:47 +01:00

227 lines
5.6 KiB
Markdown

# RF Mapper - TODO / Backlog
**Last Updated:** 2026-01-31
---
## 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
- [ ] Alert on device absence (left the area)
- [x] Data retention policies (auto-cleanup old data)
---
## 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
- [ ] Configurable TX power per device type
- [ ] Path loss exponent calibration wizard
- [ ] Environment presets (office, home, warehouse)
- [ ] Wall attenuation factor
- [ ] Multi-floor path loss adjustment
- [ ] 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
- [ ] SQLite database backend
- [ ] 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
- [ ] WebSocket for real-time updates
- [ ] GraphQL endpoint (optional)
- [ ] MQTT publishing
- [ ] Home Assistant auto-discovery
- [ ] 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
---
## 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