The /api/scan, /api/scans/<filename>, and /api/latest endpoints
now look up saved floor assignments from the database and include
them in responses. Previously only /api/scan/bt did this.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The updated_at timestamp should only change when user metadata
changes (floor, label, position, notes), not on every scan
observation. This was breaking peer sync because observation
timestamps were overwriting metadata timestamps.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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>
The scan_wifi() calls were using the default "wlan0" instead of
the configured interface from config.yaml. This broke WiFi scanning
on systems with non-standard interface names like wlo1.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Popups now stay open during live BT tracking updates
- Track open popup device ID and restore after marker refresh
- Update TASKS.md, TODO.md, PROJECT.md, ROADMAP.md
- Mark position smoothing, floor persistence as complete
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Store floor assignments in SQLite database for persistence
- Floor now saves correctly for live-tracked BT devices
- Add statistical movement detection (5-sample average + stddev)
- Require 1.5m + 2σ deviation to mark device as moving
- Reduces false positives from RSSI noise/fluctuations
- Add /api/device/floors endpoint for bulk floor retrieval
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
WiFi & Bluetooth signal mapping tool for Raspberry Pi with:
- WiFi scanning via iw command
- Bluetooth Classic/BLE device discovery
- RSSI-based distance estimation
- OUI manufacturer lookup
- Web dashboard with multiple views:
- Radar view (polar plot)
- 2D Map (Leaflet/OpenStreetMap)
- 3D Map (MapLibre GL JS with building extrusion)
- Floor-based device positioning
- Live BT tracking mode (auto-starts on page load)
- SQLite database for historical device tracking:
- RSSI time-series history
- Device statistics (avg/min/max)
- Movement detection and velocity estimation
- Activity patterns (hourly/daily)
- New device alerts
- Automatic data retention/cleanup
- REST API for all functionality
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>