Files
rf-mapper/TASKS.md
User 7cc7c47805 feat: add Home Assistant integration and improve CLI/UI
Home Assistant Integration:
- New homeassistant.py module with webhook support
- Webhooks for scan results, new devices, and device departures
- Absence detection with configurable timeout
- Documentation in docs/HOME_ASSISTANT.md

CLI Improvements:
- Replace 'web' command with start/stop/restart/status
- Background daemon mode with PID file management
- Foreground mode for debugging (--foreground)

Web UI Enhancements:
- Improved device list styling and layout
- Better floor assignment UI
- Enhanced map visualization

Documentation:
- Add CHANGELOG.md
- Add docs/API.md with full endpoint reference
- Add docs/CHEATSHEET.md for quick reference
- Update project documentation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 03:31:02 +01:00

3.9 KiB
Raw Blame History

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 <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