- 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>
7.4 KiB
7.4 KiB
RF Mapper - TODO / Backlog
Last Updated: 2026-02-01 Current Version: v1.0.1
Historical Data & Device Tracking (Priority)
- SQLite database for device history
- Store every scan result with timestamp
- Track first_seen / last_seen per device
- RSSI history per device (time series)
- Calculate average/min/max RSSI per device
- Device appearance frequency statistics
- Motion detection from RSSI patterns
- Velocity estimation from distance changes
- Movement trajectory visualization
- Device presence heatmap over time
- Historical playback mode (scrub through time)
- Device activity patterns (daily/weekly)
- Alert on new device detection
- Alert on device absence (left the area) - via HA webhook
- Data retention policies (auto-cleanup old data)
Multi-Scanner / Peer Sync
- Scanner identity configuration
- Peer registration API
- Bidirectional device sync
- Timestamp-based conflict resolution
- Source scanner tracking for synced devices
- Peer scanner markers on map
- Background sync thread
- WebSocket real-time sync (instead of polling)
- Automatic peer discovery via mDNS/Bonjour
- Sync RSSI history for trilateration
- Master dashboard: view peer node data without redirect
- Node control API (start/stop/restart peers via SSH)
- 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
- 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
- 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 webhook integration (scan results, new device, departure)
- Home Assistant auto-discovery (MQTT)
- 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
- Check if OpenStreetMap provides 3D view capabilities
- Allow placement of height (floor) in the building for device positioning
- Implement 3D navigable map (using MapLibre GL JS with building extrusion)
- Device floor assignment UI (click device to assign floor)
- SQLite database for historical device tracking
- RSSI time-series history with statistics
- Movement detection and velocity estimation
- Device labeling and favorites
- New device alerts
- Automatic data retention/cleanup
- Reliable BLE scanning with bleak library
- Statistical movement detection (reduces false positives)
- Floor persistence in database
- Popup persistence during live updates
- Manual position override (drag-drop for floor-assigned devices)
- Home Assistant webhook integration (scan, new device, departure)
- Multi-scanner peer sync (v1.0.0)
- Bidirectional device metadata sync
- Source scanner tracking for synced devices
- Peer scanner markers on 3D map
- WebSocket real-time sync
- Termux/Android environment detection with prerequisite checks
- Multi-scanner trilateration for device positioning
- Signal coverage heat map visualization
- Multi-node master dashboard (view peer data in single UI)
- Node control API (start/stop/restart peers via SSH)
- Home Assistant node control integration
- Termux/Android: skip BT scanning gracefully (no D-Bus)
- Termux/Android: optional location check
- Filter controls display only, always scan both WiFi/BT
Won't Do (Decided Against)
Active WiFi probing- Too intrusive, passive onlyPacket injection- Legal concernsDeauth capabilities- Malicious use potentialCommercial tracking- Privacy concerns