Files
esp32-web/TASKS.md
user b36b1579c7 feat: heartbeat detection and sensor metrics
- Heartbeat service: check_sensor_status (online/stale/offline)
- GET /sensors/heartbeat: status summary for all sensors
- POST /sensors/heartbeat: refresh heartbeat status
- GET /sensors/<hostname>/metrics: activity counts, recent events
- CLI command: flask check-heartbeats
- Added 7 new tests (34 total)
2026-02-05 21:23:55 +01:00

1.5 KiB

ESP32-Web Tasks

Last Updated: 2026-02-05

Current Sprint: v0.1.3 — Fleet Management

P1 - High

  • GET /api/v1/sensors/<id>/config — read sensor config
  • PUT /api/v1/sensors/<id>/config — update sensor config
  • POST /api/v1/sensors/<id>/ota — trigger OTA update
  • POST /api/v1/sensors/<id>/calibrate — trigger calibration

P2 - Normal

  • Sensor heartbeat timeout detection
  • Sensor metrics history endpoint

P3 - Low

  • Add pagination to all list endpoints
  • Add OpenAPI/Swagger spec
  • Add request logging middleware

Completed: v0.1.2 - OSINT Features

  • IEEE OUI database download (make oui)
  • MAC vendor lookup utility
  • BLE company_id mapping (30+ vendors)
  • Device profile enrichment in API
  • Export endpoints (devices.csv, devices.json, alerts.csv, probes.csv)
  • Auto-populate vendor on device creation

Completed: v0.1.1 - Server Management

  • Makefile start/stop/restart/status commands
  • Health endpoint with uptime tracking
  • CLI module (esp32-web command)
  • Initial database migration
  • Listen on all interfaces (0.0.0.0:5500)

Completed: v0.1.0 - Project Scaffold

  • Flask app factory pattern
  • SQLAlchemy 2.x models
  • API blueprint with endpoints
  • UDP collector with parsers
  • pytest fixtures and tests
  • Containerfile for podman
  • Makefile for common tasks

Notes

  • Sensors send data to UDP 5500
  • API listens on TCP 5500
  • Commands sent to sensors on UDP 5501
  • SQLite for dev, PostgreSQL for prod