# RF Mapper - TODO / Backlog **Last Updated:** 2026-02-01 --- ## 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) --- ## 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 - [ ] 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 - [ ] 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) --- ## 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