docs: Update project docs with ALERT command and v1.11 completion

This commit is contained in:
user
2026-02-14 17:42:02 +01:00
parent ce5205eb29
commit 00b3372a6d
4 changed files with 16 additions and 21 deletions

View File

@@ -22,11 +22,11 @@ Firmware and tooling for ESP32 CSI (Channel State Information) sensors used for
## Current State ## 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 - 3x ESP32-DevKitC V1 deployed with custom firmware
- 27 UDP commands (HELP, CONFIG, FACTORY, STATUS, CSI, CALIBRATE, PRESENCE, ...) - 31 UDP commands (ALERT, HELP, CONFIG, FACTORY, STATUS, PING, LOG, CSI, CALIBRATE, PRESENCE, ...)
- 26 NVS-persisted configuration keys - 28 NVS-persisted configuration keys
- UDP data streams: CSI_DATA, BLE_DATA, PROBE_DATA, ALERT_DATA, EVENT - UDP data streams: CSI_DATA, BLE_DATA, PROBE_DATA, ALERT_DATA, EVENT
- Remote management via UDP commands (port 5501) - Remote management via UDP commands (port 5501)
- OTA firmware updates (HTTP/HTTPS) with rollback - OTA firmware updates (HTTP/HTTPS) with rollback

View File

@@ -144,18 +144,19 @@ Note: Promiscuous mode (probe/deauth capture) disabled on original ESP32 — bre
- [x] Size optimization (`-Os`, saves ~75KB vs -O2) - [x] Size optimization (`-Os`, saves ~75KB vs -O2)
- [x] CSI ON/OFF toggle command (NVS persisted) - [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] HELP command (lists all commands with syntax)
- [x] CONFIG command (dump all running config key=value) - [x] CONFIG command (dump all running config key=value)
- [x] FACTORY command (erase NVS config + reboot) - [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 ## v1.12 - Monitoring & Multi-Target (unreleased)
- [ ] PING command (echo reply for connectivity tests) - [x] ALERT command (temp/heap thresholds, EVENT emission, 60s holdoff, NVS persisted)
- [ ] LOG command (runtime log level control)
- [ ] Multi-target (send data to 2+ UDP destinations) - [ ] 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/`) ## Web Backend (`~/git/esp32-web/`)

View File

@@ -30,9 +30,9 @@ Tracked separately in `~/git/esp32-web/TASKS.md`. Currently at v0.1.5.
- [ ] Multi-target (send UDP to 2+ destinations) - [ ] Multi-target (send UDP to 2+ destinations)
### P3 - Low ### P3 - Low
- [x] ALERT command — temp/heap threshold monitoring with EVENT emission (2026-02-14)
- [ ] Deep sleep mode with wake-on-CSI-motion - [ ] Deep sleep mode with wake-on-CSI-motion
- [ ] Battery-optimized duty cycling - [ ] Battery-optimized duty cycling
- [ ] Temp/heap alert thresholds (EVENT on overheat or low memory)
- [ ] AP+STA config portal (captive portal for initial setup) - [ ] AP+STA config portal (captive portal for initial setup)
### Documentation ### Documentation
@@ -217,11 +217,12 @@ Tracked separately in `~/git/esp32-web/TASKS.md`. Currently at v0.1.5.
## Notes ## Notes
- Adaptive threshold varies by environment; 0.001-0.01 is a good starting range - 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` - 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 (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 - 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,<hostname>,motion=... rate=... wander=...` - EVENT packets include sensor hostname: `EVENT,<hostname>,motion=... rate=... wander=...`
- Alert events: `EVENT,<hostname>,alert=heap free=<n> thresh=<n>` and `EVENT,<hostname>,alert=temp value=<n> thresh=<n>`
- ALERT_DATA format: `ALERT_DATA,<hostname>,<deauth|disassoc>,<sender_mac>,<target_mac>,<rssi>` or `ALERT_DATA,<hostname>,deauth_flood,<count>,<window_s>` - ALERT_DATA format: `ALERT_DATA,<hostname>,<deauth|disassoc>,<sender_mac>,<target_mac>,<rssi>` or `ALERT_DATA,<hostname>,deauth_flood,<count>,<window_s>`
- 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,<hostname>,<mac>,<rssi>,<ssid>` - PROBE_DATA format: `PROBE_DATA,<hostname>,<mac>,<rssi>,<ssid>`
- Probe requests deduped per MAC (default 10s cooldown, tunable via PROBERATE) - Probe requests deduped per MAC (default 10s cooldown, tunable via PROBERATE)
- mDNS service: `_esp-csi._udp` on data port (for sensor discovery) - mDNS service: `_esp-csi._udp` on data port (for sensor discovery)

View File

@@ -2,20 +2,13 @@
## Firmware ## 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 ### Features
- [ ] Multi-target (send UDP data to 2+ destinations simultaneously) - [ ] 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 - [ ] Deep sleep mode with wake-on-CSI-motion
- [ ] Battery-optimized duty cycling - [ ] Battery-optimized duty cycling
- [ ] AP+STA config portal (captive portal for initial setup) - [ ] AP+STA config portal (captive portal for initial setup)
### Testing ### Testing
- [ ] OTA rollback validation (flash bad firmware, verify auto-revert)
- [ ] Tune presence threshold per room with real-world testing - [ ] Tune presence threshold per room with real-world testing
- [ ] Power consumption measurements (per-mode: idle, CSI, BLE, probe) - [ ] Power consumption measurements (per-mode: idle, CSI, BLE, probe)
- [ ] Benchmark: CSI callback latency - [ ] Benchmark: CSI callback latency