spaxel/dashboard
jedarden 15c491ffea feat: implement anomaly detection and security mode
Implements comprehensive anomaly detection system that learns normal household
patterns over 7+ days and alerts on deviations. Transforms spaxel into a basic
home security system.

Core features:
- Normal behaviour model: statistical tracking of occupancy patterns per
  (hour_of_week, zone_id) slot with expected occupancy, typical person count,
  and typical BLE devices
- Four anomaly types: unusual hour presence, unknown BLE device, motion during
  away mode, unusual dwell duration
- Security mode: lowered thresholds, immediate alerts, bypasses quiet hours
- Auto-away/disarm: automatic security mode activation based on BLE device
  presence (15min absence, auto-disarm on device return)
- Alert chain: staged notifications (dashboard → push → webhook → escalation)
- WebSocket integration: real-time anomaly broadcasts to dashboard

API endpoints:
- GET/POST /api/mode: system mode control (home/away/sleep)
- GET /api/security/status: current security state

Tests cover all anomaly types, alert chain timing, security mode thresholds,
auto-away/disarm, acknowledgement flow, and cooldown deduplication.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 09:48:44 -04:00
..
css feat: complete floor plan dashboard UI 2026-04-09 08:37:08 -04:00
js feat: implement anomaly detection and security mode 2026-04-09 09:48:44 -04:00
index.html feat: complete floor plan dashboard UI 2026-04-09 08:37:08 -04:00
jest.config.js feat(dashboard): interactive onboarding wizard for ESP32-S3 node provisioning 2026-03-28 02:36:58 -04:00
package-lock.json feat(dashboard): interactive onboarding wizard for ESP32-S3 node provisioning 2026-03-28 02:36:58 -04:00
package.json feat(dashboard): interactive onboarding wizard for ESP32-S3 node provisioning 2026-03-28 02:36:58 -04:00