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

6.0 KiB
Raw Permalink Blame History

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