- PROJECT.md: Add peer sync feature description and architecture - ROADMAP.md: Update to v1.0.0, mark peer sync complete - TASKS.md: Add peer sync completed tasks, update sprint - TODO.md: Add multi-scanner section, mark items done - CHANGELOG.md: Add v0.4.0 (HA) and v1.0.0 (peer sync) entries Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
116 lines
4.0 KiB
Markdown
116 lines
4.0 KiB
Markdown
# Changelog
|
||
|
||
All notable changes to RF Mapper are documented here.
|
||
|
||
Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
||
|
||
---
|
||
|
||
## [1.0.0] - 2026-02-01
|
||
|
||
### Added
|
||
|
||
- **Multi-Scanner Peer Sync** - Multiple scanner instances share device metadata
|
||
- Peer registration API (`/api/peers/register`)
|
||
- Bidirectional sync (`/api/sync/devices`)
|
||
- Background sync thread (30s default interval)
|
||
- Automatic mutual registration between peers
|
||
- **Source scanner tracking** - Synced devices retain original detector info
|
||
- Devices positioned relative to detecting scanner, not local scanner
|
||
- Moving local scanner doesn't affect synced device positions
|
||
- **Peer scanner markers** - Show peer scanners on 3D map (cyan icons)
|
||
- Scanner identity configuration (id, name, floor, position)
|
||
- Timestamp-based conflict resolution for sync
|
||
|
||
### Changed
|
||
|
||
- Device positions now use peer's current position (live lookup)
|
||
- Popup shows "Source: <scanner>" for remotely-synced devices
|
||
|
||
---
|
||
|
||
## [0.4.0] - 2026-02-01
|
||
|
||
### Added
|
||
|
||
- **Home Assistant Integration** - Webhook-based presence tracking
|
||
- Scan results webhook (`rf_mapper_scan`)
|
||
- New device alerts webhook (`rf_mapper_new_device`)
|
||
- Device departure webhook (`rf_mapper_device_gone`)
|
||
- Configurable timeout for departure detection
|
||
- Scanner identity (id, name, floor) in webhooks
|
||
- Absence checker background thread
|
||
|
||
---
|
||
|
||
## [0.3.0] - 2026-02-01
|
||
|
||
### Added
|
||
|
||
- **3D Map Visualization** - MapLibre GL JS integration with building extrusion
|
||
- **Floor-based positioning** - Assign devices to floors, filter by floor
|
||
- **SQLite database** - Historical device tracking with 7 tables
|
||
- **Historical data API** - 15+ new endpoints for device history, stats, alerts
|
||
- **Live BT tracking mode** - 4-second scan interval with auto-start
|
||
- **Movement detection** - Statistical analysis (5-sample avg + 2σ threshold)
|
||
- **bleak BLE scanning** - Reliable RSSI via D-Bus/BlueZ (replaced hcitool)
|
||
- **Floor persistence** - Floor assignments saved in database
|
||
- **Popup persistence** - Device popups stay open during live updates
|
||
- **Custom distance override** - Manual distance setting via popup
|
||
- **Position smoothing** - Statistical averaging for stable positions
|
||
- **Filter-aware scanning** - Skip WiFi/BT based on toggle state
|
||
- **Auto-scan feature** - Background scanning with configurable interval
|
||
- **Device labeling** - Custom names via API
|
||
- **Favorite devices** - Mark important devices
|
||
- **Alert system** - New device detection, activity alerts
|
||
- **Activity patterns** - Hourly/daily usage analysis
|
||
- **Database cleanup** - Automatic and manual data retention
|
||
|
||
### Changed
|
||
|
||
- Switched from `hcitool` to `bleak` Python library for BLE scanning
|
||
- Improved distance estimation algorithm
|
||
- Enhanced web UI with real-time updates
|
||
|
||
### Fixed
|
||
|
||
- BT RSSI acquisition now reliable (bleak library)
|
||
- Floor assignments persist across page reloads
|
||
- Popups no longer close during live tracking
|
||
|
||
---
|
||
|
||
## [0.2.0] - 2026-01-25
|
||
|
||
### Added
|
||
|
||
- **World Map view** - Leaflet.js integration with device markers
|
||
- **2.5D visualization** - Height-based display
|
||
- **Auto-identify Bluetooth** - Device type inference from name/manufacturer
|
||
- **OUI lookup** - Manufacturer identification from MAC address
|
||
- **Signal quality indicators** - Visual strength representation
|
||
- **Request profiling** - Optional per-request performance analysis
|
||
- **Request logging** - Optional request logging to file
|
||
|
||
### Changed
|
||
|
||
- Improved CLI output formatting
|
||
- Better error handling for scan failures
|
||
|
||
---
|
||
|
||
## [0.1.0] - 2026-01-15
|
||
|
||
### Added
|
||
|
||
- Initial release
|
||
- **WiFi scanning** - Uses `iw` command
|
||
- **Bluetooth scanning** - Uses `hcitool` and `bluetoothctl`
|
||
- **CLI interface** - scan, visualize, analyze, list, config commands
|
||
- **Web interface** - Flask-based dashboard
|
||
- **Radar visualization** - ASCII and web-based radar view
|
||
- **Distance estimation** - RSSI-based path loss model
|
||
- **Configuration system** - YAML config with environment variable overrides
|
||
- **JSON data storage** - Scan results saved as JSON files
|
||
- **GPS support** - Reference position for mapping
|