Files
ESP32-ThermoPro-Bridge/frontend/README.md
T
Keith Solomon 9e32b1b179 feat: add PWA frontend for CYD ThermoPro dashboard
Add a Flask backend + SQLite + HTML/CSS/JS PWA that:
- Polls the CYD /api/latest endpoint
- Stores readings, sessions, and freeform notes in SQLite
- Displays probe cards with target setpoints and preset options
- Renders temperature history with Chart.js
- Serves a PWA manifest and dark-themed dashboard

Also update cyd-bridge/README.md with verified bringup instructions.
2026-07-20 20:14:48 -05:00

1.3 KiB

ThermoPro CYD Frontend

A Progressive Web App (PWA) that consumes the CYD ThermoPro Bridge API, stores session history in SQLite, and displays probe temperatures with charts, target setpoints, and freeform notes.

Architecture

LXC/container
├── Python backend (FastAPI/Flask)
│   ├── Polls CYD /api/latest periodically
│   ├── Stores readings + sessions + notes in SQLite
│   └── Serves the static PWA and API
└── PWA (HTML/CSS/JS)
    ├── Dashboard with probe cards
    ├── Temperature history charts
    ├── Target setpoint editor
    └── Session notes

Requirements

  • Python 3.10+
  • flask, requests, gunicorn (or uvicorn if FastAPI)
  • SQLite (stdlib)

Running locally

cd frontend
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install -r requirements.txt
python app.py

Then open http://localhost:5000.

Configuration

The backend needs to know the CYD IP. Set the environment variable:

export CYD_BASE_URL=http://192.168.2.55

or edit the default in config.py.

Deployment

Serve the app behind a reverse proxy (e.g. Caddy or Nginx) in an LXC. The backend will continue polling the CYD as long as it can reach the device.