- Add table of key docs with "When to Update" guidance - Include TASKS.md, TODO.md, ROADMAP.md, CHANGELOG.md - Add deployment section with node update commands - Add Multi-scanner sync and Termux support to key files Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
88 lines
3.8 KiB
Markdown
88 lines
3.8 KiB
Markdown
# RF Mapper - Claude Context
|
|
|
|
RF Environment Scanner for WiFi and Bluetooth signal mapping on Linux.
|
|
|
|
## Key Documentation (Maintain These!)
|
|
|
|
| File | Purpose | When to Update |
|
|
|------|---------|----------------|
|
|
| **[TASKS.md](TASKS.md)** | Current sprint tasks, priorities (P0-P3), status | Start/end of each work session |
|
|
| **[TODO.md](TODO.md)** | Backlog by category, completed items | When adding/completing features |
|
|
| **[ROADMAP.md](ROADMAP.md)** | Version milestones, long-term vision | When milestones change |
|
|
| **[CHANGELOG.md](CHANGELOG.md)** | Version history, notable changes | Each release |
|
|
| **[PROJECT.md](PROJECT.md)** | Goals, architecture, dependencies | Major architectural changes |
|
|
| **[USAGE.md](USAGE.md)** | User guide, CLI, web interface, API | When adding features |
|
|
| **[docs/CHEATSHEET.md](docs/CHEATSHEET.md)** | Quick reference commands | When adding features |
|
|
| **[INVENTORY.md](INVENTORY.md)** | Multi-node deployment info (gitignored) | When nodes change |
|
|
|
|
## Configuration
|
|
|
|
- **[config.yaml](config.yaml)** - Current configuration (GPS, web server, scanner, building settings)
|
|
- **[docs/HOME_ASSISTANT.md](docs/HOME_ASSISTANT.md)** - Home Assistant webhook integration
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
src/rf_mapper/
|
|
├── __main__.py # CLI entry point and argument parsing
|
|
├── scanner.py # WiFi/Bluetooth scanning (WifiNetwork, BluetoothDevice dataclasses)
|
|
├── config.py # Configuration management (Config, BuildingConfig, etc.)
|
|
├── database.py # SQLite database for device history and tracking
|
|
├── distance.py # RSSI to distance estimation
|
|
├── homeassistant.py # Home Assistant webhook integration
|
|
├── oui.py # MAC address manufacturer lookup
|
|
├── bluetooth_*.py # Bluetooth device identification and classification
|
|
├── visualize.py # ASCII radar and chart generation
|
|
├── profiling.py # CPU/memory profiling utilities
|
|
├── termux.py # Termux/Android environment detection
|
|
├── sync.py # Multi-scanner peer sync
|
|
└── web/
|
|
├── app.py # Flask application and API endpoints
|
|
├── templates/ # Jinja2 HTML templates (base.html, index.html)
|
|
└── static/ # CSS, JS, vendor libraries (Leaflet, MapLibre GL)
|
|
```
|
|
|
|
## Key Files for Common Tasks
|
|
|
|
| Task | Files |
|
|
|------|-------|
|
|
| Add CLI command | `src/rf_mapper/__main__.py` |
|
|
| Add API endpoint | `src/rf_mapper/web/app.py` |
|
|
| Modify data model | `src/rf_mapper/scanner.py`, `config.py` |
|
|
| Change web UI | `web/templates/index.html`, `static/js/app.js`, `static/css/style.css` |
|
|
| Add configuration | `src/rf_mapper/config.py`, `config.yaml` |
|
|
| Home Assistant integration | `src/rf_mapper/homeassistant.py`, `docs/HOME_ASSISTANT.md` |
|
|
| Multi-scanner sync | `src/rf_mapper/sync.py`, `web/app.py` |
|
|
| Termux/Android support | `src/rf_mapper/termux.py` |
|
|
|
|
## Running
|
|
|
|
```bash
|
|
source venv/bin/activate
|
|
python -m rf_mapper start # Start web server (background)
|
|
python -m rf_mapper status # Check if running
|
|
python -m rf_mapper stop # Stop server
|
|
python -m rf_mapper restart # Restart server
|
|
python -m rf_mapper scan -l room # CLI scan
|
|
python -m rf_mapper --help # All commands
|
|
```
|
|
|
|
## Deployment
|
|
|
|
See [INVENTORY.md](INVENTORY.md) for multi-node deployment details.
|
|
|
|
```bash
|
|
# Update and restart all nodes
|
|
cd ~/git/rf-mapper && source venv/bin/activate && git pull && python -m rf_mapper restart
|
|
ssh grokbox "cd ~/git/rf-mapper && source venv/bin/activate && git pull && python -m rf_mapper restart"
|
|
ssh jellystar "cd ~/git/rf-mapper && source venv/bin/activate && git pull && python -m rf_mapper restart"
|
|
```
|
|
|
|
## Tech Stack
|
|
|
|
- Python 3.10+, Flask, PyYAML, requests, bleak
|
|
- Leaflet.js (2D maps), MapLibre GL JS (3D maps)
|
|
- Linux tools: `iw`, bleak (BLE via D-Bus)
|
|
- SQLite for device history
|
|
- Home Assistant webhooks for integration
|