# RF Mapper - Active Tasks **Sprint:** v0.3.0 - 3D Visualization **Updated:** 2026-02-01 --- ## Priority Levels - **P0** - Critical / Blocking - **P1** - High / Current sprint - **P2** - Medium / Next sprint - **P3** - Low / Backlog ## Status Legend - `[ ]` Todo - `[~]` In Progress - `[x]` Done - `[-]` Blocked --- ## P0 - Critical | Status | Task | Notes | |--------|------|-------| | [x] | Fix Bluetooth RSSI acquisition | Switched to `bleak` Python library for reliable BLE scanning with RSSI | --- ## P1 - High Priority (Current Sprint) | Status | Task | Notes | |--------|------|-------| | [x] | MapLibre GL JS integration | 3D map with building extrusion | | [x] | Floor-based positioning | Devices assigned to floors | | [x] | Floor selector UI | Dropdown to filter by floor | | [x] | Custom distance override | Set manual distance via popup | | [x] | Manual position override | Drag-and-drop for floor-assigned devices | | [x] | Live BT tracking mode | 4-second scan interval | | [x] | Moving device detection | Purple markers for RSSI changes | | [x] | Filter-aware scanning | Skip WiFi/BT based on toggle | | [x] | Improve BT discovery reliability | Using bleak library for BLE scanning | | [x] | Document API endpoints | docs/API.md | | [x] | Create CHEATSHEET.md | Quick reference guide | | [x] | Home Assistant webhook integration | Scan results, new device, departure alerts | --- ## P2 - Medium Priority (Next Sprint) | Status | Task | Notes | |--------|------|-------| | [x] | Position smoothing | Statistical averaging (5 samples + stddev) | | [x] | Device trails | Show movement history on map (for moving devices) | | [ ] | Signal strength graph | Per-device RSSI over time | | [ ] | Scan history browser | View past scans in UI | | [ ] | Export functionality | Download scan data as CSV | --- ## P3 - Low Priority (Backlog) | Status | Task | Notes | |--------|------|-------| | [x] | SQLite persistence | Historical device tracking enabled | | [x] | Device labeling | Custom names via API | | [x] | Home Assistant integration | Webhook-based (scan, new device, departure) | | [ ] | Docker container | Containerized deployment | | [ ] | Unit tests | pytest coverage | --- ## Completed This Sprint | Task | Completed | |------|-----------| | 3D map view with MapLibre | 2026-01-31 | | Floor assignment in popup | 2026-01-31 | | Custom distance setting | 2026-01-31 | | Live tracking button | 2026-01-31 | | Purple moving indicators | 2026-01-31 | | Smart scanning (filter-aware) | 2026-01-31 | | SQLite historical database | 2026-02-01 | | Bleak BLE scanning (reliable RSSI) | 2026-02-01 | | Auto-start live BT tracking | 2026-02-01 | | Statistical movement detection | 2026-02-01 | | Floor persistence in database | 2026-02-01 | | Popup persistence during updates | 2026-02-01 | | API documentation (docs/API.md) | 2026-02-01 | | CHEATSHEET.md quick reference | 2026-02-01 | | CHANGELOG.md version history | 2026-02-01 | | Device trails for moving devices | 2026-02-01 | | Manual position override (drag-drop) | 2026-02-01 | | Home Assistant webhook integration | 2026-02-01 | --- ## Blockers *No current blockers* ### ~~BT RSSI Acquisition~~ (RESOLVED) **Problem:** Cannot get reliable RSSI values for Bluetooth devices - `hcitool rssi ` - Only works for connected devices - `bluetoothctl info` - No RSSI for cached devices **Solution:** Switched to `bleak` Python BLE library which provides reliable RSSI via D-Bus/BlueZ. --- ## Notes - BLE scanning now uses `bleak` Python library (reliable RSSI via D-Bus) - WiFi scanning works well with `iw` command - Live BT tracking auto-starts on page load (4-second scan interval) - Historical data stored in SQLite database with auto-cleanup - Movement detection uses statistical analysis (5-sample avg + 2σ threshold) - Floor assignments persist in database across page reloads - Popups stay open during live tracking updates - Manual position override: drag floor-assigned device markers to set custom position