From 00b3372a6dff8aaa37b0fdb04077a7b48cd4c9c6 Mon Sep 17 00:00:00 2001 From: user Date: Sat, 14 Feb 2026 17:42:02 +0100 Subject: [PATCH] docs: Update project docs with ALERT command and v1.11 completion --- PROJECT.md | 6 +++--- ROADMAP.md | 15 ++++++++------- TASKS.md | 9 +++++---- TODO.md | 7 ------- 4 files changed, 16 insertions(+), 21 deletions(-) diff --git a/PROJECT.md b/PROJECT.md index 998d496..0f418f8 100644 --- a/PROJECT.md +++ b/PROJECT.md @@ -22,11 +22,11 @@ Firmware and tooling for ESP32 CSI (Channel State Information) sensors used for ## Current State -### Firmware: v1.10.3 (+ unreleased v1.11 changes) +### Firmware: v1.11.0 (+ unreleased v1.12 changes) - 3x ESP32-DevKitC V1 deployed with custom firmware -- 27 UDP commands (HELP, CONFIG, FACTORY, STATUS, CSI, CALIBRATE, PRESENCE, ...) -- 26 NVS-persisted configuration keys +- 31 UDP commands (ALERT, HELP, CONFIG, FACTORY, STATUS, PING, LOG, CSI, CALIBRATE, PRESENCE, ...) +- 28 NVS-persisted configuration keys - UDP data streams: CSI_DATA, BLE_DATA, PROBE_DATA, ALERT_DATA, EVENT - Remote management via UDP commands (port 5501) - OTA firmware updates (HTTP/HTTPS) with rollback diff --git a/ROADMAP.md b/ROADMAP.md index 1b3657e..16d2c21 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -144,18 +144,19 @@ Note: Promiscuous mode (probe/deauth capture) disabled on original ESP32 — bre - [x] Size optimization (`-Os`, saves ~75KB vs -O2) - [x] CSI ON/OFF toggle command (NVS persisted) -## v1.11 - Diagnostics & Usability (unreleased) +## v1.11 - Diagnostics & Usability [DONE] - [x] HELP command (lists all commands with syntax) - [x] CONFIG command (dump all running config key=value) - [x] FACTORY command (erase NVS config + reboot) -- [ ] Tag and OTA deploy to fleet +- [x] PING command (echo reply for connectivity tests) +- [x] LOG command (runtime log level control) +- [x] RSSI RESET command (reset min/max counters) +- [x] OTA rollback validation (crasher firmware + bootloader rollback confirmed) +- [x] Tagged v1.11.0 and OTA deployed to all 3 sensors -## v1.12 - Firmware Polish -- [ ] PING command (echo reply for connectivity tests) -- [ ] LOG command (runtime log level control) +## v1.12 - Monitoring & Multi-Target (unreleased) +- [x] ALERT command (temp/heap thresholds, EVENT emission, 60s holdoff, NVS persisted) - [ ] Multi-target (send data to 2+ UDP destinations) -- [ ] Temp/heap alert thresholds (EVENT on overheat or low memory) -- [ ] OTA rollback validation test ## Web Backend (`~/git/esp32-web/`) diff --git a/TASKS.md b/TASKS.md index 36e5142..aa5e76b 100644 --- a/TASKS.md +++ b/TASKS.md @@ -30,9 +30,9 @@ Tracked separately in `~/git/esp32-web/TASKS.md`. Currently at v0.1.5. - [ ] Multi-target (send UDP to 2+ destinations) ### P3 - Low +- [x] ALERT command — temp/heap threshold monitoring with EVENT emission (2026-02-14) - [ ] Deep sleep mode with wake-on-CSI-motion - [ ] Battery-optimized duty cycling -- [ ] Temp/heap alert thresholds (EVENT on overheat or low memory) - [ ] AP+STA config portal (captive portal for initial setup) ### Documentation @@ -217,11 +217,12 @@ Tracked separately in `~/git/esp32-web/TASKS.md`. Currently at v0.1.5. ## Notes - Adaptive threshold varies by environment; 0.001-0.01 is a good starting range -- NVS keys (26 total): `send_rate`, `tx_power`, `adaptive`, `threshold`, `ble_scan`, `target_ip`, `target_port`, `hostname`, `boot_count`, `csi_mode`, `hybrid_n`, `auth_secret`, `flood_thresh`, `flood_window`, `scan_rate`, `probe_rate`, `powersave`, `presence`, `pr_thresh`, `bl_nsub`, `bl_amps`, `chanscan`, `chanscan_int`, `led_quiet`, `csi_enabled` -- UDP commands (23 total): STATUS, CONFIG, RATE, POWER, TARGET, HOSTNAME, CSI, CSIMODE, ADAPTIVE, THRESHOLD, BLE, SCANRATE, PROBERATE, CALIBRATE, PRESENCE, CHANSCAN, LED, POWERSAVE, AUTH, FLOODTHRESH, OTA, POWERTEST, PROFILE, IDENTIFY, REBOOT, FACTORY, HELP +- NVS keys (28 total): `send_rate`, `tx_power`, `adaptive`, `threshold`, `ble_scan`, `target_ip`, `target_port`, `hostname`, `boot_count`, `csi_mode`, `hybrid_n`, `auth_secret`, `flood_thresh`, `flood_window`, `scan_rate`, `probe_rate`, `powersave`, `presence`, `pr_thresh`, `bl_nsub`, `bl_amps`, `chanscan`, `chanscan_int`, `led_quiet`, `csi_enabled`, `alert_temp`, `alert_heap` +- UDP commands (28 total): STATUS, CONFIG, RATE, POWER, TARGET, HOSTNAME, CSI, CSIMODE, ADAPTIVE, THRESHOLD, BLE, SCANRATE, PROBERATE, CALIBRATE, PRESENCE, CHANSCAN, LED, POWERSAVE, AUTH, FLOODTHRESH, ALERT, OTA, POWERTEST, PROFILE, PING, LOG, RSSI RESET, IDENTIFY, REBOOT, FACTORY, HELP - EVENT packets include sensor hostname: `EVENT,,motion=... rate=... wander=...` +- Alert events: `EVENT,,alert=heap free= thresh=` and `EVENT,,alert=temp value= thresh=` - ALERT_DATA format: `ALERT_DATA,,,,,` or `ALERT_DATA,,deauth_flood,,` -- STATUS fields: `uptime=`, `uptime_s=`, `heap=`, `rssi=`, `channel=`, `tx_power=`, `rate=`, `csi_rate=`, `hostname=`, `version=`, `adaptive=`, `motion=`, `ble=`, `target=`, `temp=`, `csi_count=`, `boots=`, `rssi_min=`, `rssi_max=`, `csi=`, `csi_mode=`, `hybrid_n=`, `auth=`, `flood_thresh=`, `powersave=`, `presence=`, `pr_score=`, `chanscan=`, `led=`, `nvs_used=`, `nvs_free=`, `nvs_total=`, `part_size=`, `built=`, `idf=`, `chip=` +- STATUS fields: `uptime=`, `uptime_s=`, `heap=`, `rssi=`, `channel=`, `tx_power=`, `rate=`, `csi_rate=`, `hostname=`, `version=`, `adaptive=`, `motion=`, `ble=`, `target=`, `temp=`, `csi_count=`, `boots=`, `rssi_min=`, `rssi_max=`, `csi=`, `csi_mode=`, `hybrid_n=`, `auth=`, `flood_thresh=`, `powersave=`, `presence=`, `pr_score=`, `chanscan=`, `led=`, `alert_temp=`, `alert_heap=`, `nvs_used=`, `nvs_free=`, `nvs_total=`, `part_size=`, `built=`, `idf=`, `chip=` - PROBE_DATA format: `PROBE_DATA,,,,` - Probe requests deduped per MAC (default 10s cooldown, tunable via PROBERATE) - mDNS service: `_esp-csi._udp` on data port (for sensor discovery) diff --git a/TODO.md b/TODO.md index 61b57ae..eba55cf 100644 --- a/TODO.md +++ b/TODO.md @@ -2,20 +2,13 @@ ## Firmware -### Commands -- [ ] PING command (echo reply for connectivity tests) -- [ ] LOG command (runtime `esp_log_level_set()` control) -- [ ] RSSI RESET command (reset min/max counters) - ### Features - [ ] Multi-target (send UDP data to 2+ destinations simultaneously) -- [ ] Temp/heap alert thresholds (emit EVENT on overheat or low memory) - [ ] Deep sleep mode with wake-on-CSI-motion - [ ] Battery-optimized duty cycling - [ ] AP+STA config portal (captive portal for initial setup) ### Testing -- [ ] OTA rollback validation (flash bad firmware, verify auto-revert) - [ ] Tune presence threshold per room with real-world testing - [ ] Power consumption measurements (per-mode: idle, CSI, BLE, probe) - [ ] Benchmark: CSI callback latency