Files
rf-mapper/TASKS.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

158 lines
6.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# RF Mapper - Active Tasks
**Sprint:** v1.1.0 - Production Hardening
**Updated:** 2026-02-01
**Current Version:** v1.0.1
---
## 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 |
| [x] | Multi-scanner peer sync | Bidirectional sync between scanner instances |
| [x] | Source scanner tracking | Synced devices positioned relative to source |
| [x] | Peer scanner markers | Show peer scanners on 3D map |
| [x] | Multi-node master dashboard | View peer node data without page redirect |
| [ ] | Unit test coverage | pytest for core modules |
| [ ] | Docker container | Containerized deployment |
---
## 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 |
| Multi-scanner peer sync | 2026-02-01 |
| Peer registration API | 2026-02-01 |
| Bidirectional device sync | 2026-02-01 |
| Source scanner tracking | 2026-02-01 |
| Peer scanner markers on 3D map | 2026-02-01 |
| v1.0.0 release | 2026-02-01 |
| Multi-node master dashboard | 2026-02-01 |
| Replace hcitool with bleak for BLE scanning | 2026-02-01 |
| Skip BT scanning on Termux/Android | 2026-02-01 |
| Node control API (start/stop/restart peers via SSH) | 2026-02-01 |
| Home Assistant node control integration | 2026-02-01 |
| Make Termux location check optional | 2026-02-01 |
| Fix filter to control display only (always scan both) | 2026-02-01 |
---
## Blockers
*No current blockers*
### ~~BT RSSI Acquisition~~ (RESOLVED)
**Problem:** Cannot get reliable RSSI values for Bluetooth devices
- `hcitool rssi <addr>` - 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
- **Peer Sync**: Multiple scanner instances can share device metadata
- Devices synced from peers retain source scanner info
- Positions calculated relative to detecting scanner (not local scanner)
- Peer scanners shown on 3D map as cyan markers
- Background sync every 30 seconds (configurable)
- **Master Dashboard**: Designated master node can view any peer's data
- Set `is_master: true` in config.yaml to enable
- Node selector dropdown appears in header
- Switch between local/peer views without page redirect
- Live tracking runs on selected peer node
- WebSocket connects to peer for real-time updates
- **Node Control API**: Master can start/stop/restart peers via SSH
- `POST /api/nodes/<id>/start|stop|restart`
- `GET /api/nodes/<id>/status`
- Integrated with Home Assistant via rest_command
- **Termux/Android Support**: BT scanning skipped (no D-Bus), location check optional
- **Filter Behavior**: WiFi/BT always scanned; filter controls display only