# EVOLV — End-to-End Example Flows Demo flows that show how multiple EVOLV nodes work together in a realistic wastewater-automation scenario. Each example is self-contained: its folder has a `flow.json` you can import directly into Node-RED plus a `README.md` that walks through the topology, control modes, and dashboard layout. These flows complement the per-node example flows under `nodes//examples/` (which exercise a single node in isolation). Use the per-node flows for smoke tests during development; use the flows here when you want to see how a real plant section behaves end-to-end. ## Catalogue | Folder | What it shows | |---|---| | [`pumpingstation-3pumps-dashboard/`](pumpingstation-3pumps-dashboard/) | Wet-well basin + machineGroupControl orchestrating 3 pumps (each with up/downstream pressure measurements), individual + auto control, process-demand input via dashboard slider or random generator, full FlowFuse dashboard. | ## How to import 1. Bring up the EVOLV stack: `docker compose up -d` from the superproject root. 2. Open Node-RED at `http://localhost:1880`. 3. Menu → **Import** → drop in the example's `flow.json` (or paste the contents). 4. Open the FlowFuse dashboard at `http://localhost:1880/dashboard`. Each example uses a unique dashboard `path` so they can coexist in the same Node-RED runtime. ## Adding new examples When you create a new end-to-end example: 1. Make a subfolder under `examples/` named `-`. 2. Include `flow.json` (Node-RED export) and `README.md` (topology, control modes, dashboard map, things to try). 3. Test it on a fresh Dockerized Node-RED — clean import, no errors, dashboard loads. 4. Add a row to the catalogue table above. ## Wishlist for future examples These are scenarios worth building when there's a session for it: - **Pump failure + MGC re-routing** — kill pump 2 mid-run, watch MGC redistribute to pumps 1 and 3. - **Energy-optimal vs equal-flow control** — same demand profile run through `optimalcontrol` and `prioritycontrol` modes side-by-side, energy comparison chart. - **Schedule-driven demand** — diurnal flow pattern (low at night, peak at 7 am), MGC auto-tuning over 24 simulated hours. - **Reactor + clarifier loop** — `reactor` upstream feeding `settler`, return sludge controlled by a small `pumpingStation`. - **Diffuser + DO control** — aeration grid driven by a PID controller from a dissolved-oxygen sensor. - **Digital sensor bundle** — MQTT-style sensor (BME280, ATAS, etc.) feeding a `measurement` node in digital mode + parent equipment node. - **Maintenance window** — entermaintenance / exitmaintenance cycle with operator handover dashboard. - **Calibration walk-through** — measurement node calibrate cycle with stable / unstable input demonstrations.