# 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.1] - 2026-02-01 ### Added - **Node Control API** - Master node can start/stop/restart peers via SSH - `POST /api/nodes//start` - Start rf-mapper on peer - `POST /api/nodes//stop` - Stop rf-mapper on peer - `POST /api/nodes//restart` - Restart rf-mapper on peer - `GET /api/nodes//status` - Check peer status - **Home Assistant Node Control** - rest_command integration for peer control - `rest_command.rf_mapper_jellystar_start/stop/restart` - `sensor.rf_mapper_jellystar_status` (running/stopped/unreachable) - **Termux/Android Support** - Graceful handling of Android limitations - Skip BT scanning on Termux (bleak requires D-Bus, not available on Android) - Location check now optional (uses config.yaml coordinates) ### Changed - Filter checkboxes now control display only, not scanning - WiFi and Bluetooth always scanned regardless of filter state - Filters only affect what's shown on map/radar ### Fixed - WiFi devices not appearing when filter unchecked at scan time - rf-mapper failing to start on Termux due to GPS timeout --- ## [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: " 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