Files
rf-mapper/TODO.md
User 9c9f27e55f docs: update TASKS, TODO, CHANGELOG for v1.0.1
- 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>
2026-02-01 17:06:00 +01:00

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