Cloud Fleet Management
- Cloudflare Worker API — New cloud telemetry ingest, device config management, and fleet statistics endpoints at api.herbairpro.com
- Fleet Dashboard — New
/fleet page with device table, real-time stats cards, per-device telemetry charts, and remote config editor - Firmware HTTPS telemetry — Devices now POST telemetry to cloud every 5s and poll for config changes every 60s, alongside existing MQTT path
- KV + D1 storage — Device metadata in Cloudflare KV, time-series telemetry in D1 (SQLite at the edge)
- Cloudflare Pages — Frontend now deployed to Cloudflare Pages with adapter-cloudflare
Serial Dev Dashboard & Fan Breathing
- Serial Dev page — 10 Hz USB serial telemetry dashboard at
/dev for real-time firmware debugging - Breathing fan pattern — Sinusoidal fan modulation during SESSION state for dynamic airflow and visual feedback
- 3D viewer enhancements — Botanical effects, particle convection system, exploded/cutaway view modes
Initial Release
- ESP32-S3 firmware — Full device state machine (IDLE → HEATING → READY → SESSION → COOLDOWN), PID temperature control, safety systems (tilt, thermal fuse, over-temp, watchdog)
- Hardware support — GC9A01 round display, MAX6675 thermocouple, rotary encoder, NeoPixel LED ring, iris servo diffuser, 25 kHz fan PWM
- MQTT telemetry — 2-second publish interval with command subscription for remote control
- Node.js backend — Express + Socket.io + SQLite with MQTT bridge, safety monitoring, and REST API
- SvelteKit dashboard — Temperature gauge, fan indicator, heater status, safety panel, temperature chart, control panel
- 3D device viewer — Three.js + Rapier3D physics with interactive pod, real-time display texture, and convection particles
- Docker deployment — Full-stack docker-compose with Mosquitto, backend, and frontend services