feat(pumpingStation): realistic defaults, ramp-foot visual fix, manual-mode visibility, dashboard example
Editor + schema defaults - pumpingStation.html: drag-in defaults now reflect a realistic basin (volume=50 m³, height=4 m, inflowLevel=1.5, outflowLevel=0.2, overflowLevel=3.8, startLevel=1, stopLevel=0.5, minLevel=0.3, maxLevel=3.8). Old defaults left every level field null. Visual bug fix - src/editor/mode-preview.js: the level-based ramp curve in the editor was being drawn with foot=startLevel via buildPath(start, start, max). The runtime in control/levelBased.js has always used inflowLevel as the ramp foot. Pass buildPath(start, upFoot, max) where upFoot falls back to start when inflowLevel is missing, matching the runtime. Manual mode observability - src/specificClass.js: store last forwarded demand on this._manualDemand; surface as `mode` and `manualDemand` in getOutput(); call notifyOutputChanged() on forwardDemandToChildren and on changeMode so Port 0/1 emit even with no children registered. Status badge compacted to `mode | dir% | net m³/h` + `Qd=X m³/h` in manual mode. Examples cleanup - Drop stale 02-Integration.json, 03-Dashboard.json, basic-dashboard.flow.json, standalone-demo.js. - 01-Basic.json: numbered driver groups (1. Control mode … 4. Calibration), Debug-outputs group, fixed typos and HOW-TO-USE; Port 1 debug now active. - New 02-Dashboard.json: FlowFuse Dashboard 2.0 with Controls (7 buttons), Status (7 ui-text rows), Trends (4 ui-charts: level / volume / volume% / flow in-out-net), Raw output (ui-template dumping every Port 0 field). Fan-out function pattern-matches the 4-segment measurement keys by prefix instead of hardcoding childId, converts flow m³/s → m³/h, and caches last-known values so deltas never blank a row. - examples/README.md realigned to the two-file set. Wiki - Home.md: 5 image placeholders replaced with the provided screenshots (01-node-and-editor, 02-basic-flow, 03-wiring-standalone, 04-wiring-integrated) and the demo GIF (01-basic-demo). - Reference-Examples.md: shipped-files table reduced to 01-Basic + 02-Dashboard, Example-01 section uses the screenshot + GIF, Example-02 rewritten as Dashboard (kept screenshot/GIF callouts open for those captures), Example-03/Integration sections + their debug-recipes row removed. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
60
wiki/Home.md
60
wiki/Home.md
@@ -20,17 +20,7 @@ A `pumpingStation` models a wet-well lift station: one basin with sensors, and o
|
||||
|
||||
## How it looks in Node-RED
|
||||
|
||||
> [!IMPORTANT]
|
||||
> **Screenshot needed.** Drop a `pumpingStation` node onto a fresh Node-RED canvas and capture:
|
||||
> - The node tile itself (its colour, badge text, label).
|
||||
> - The full edit dialog when you double-click it (basin geometry section visible).
|
||||
>
|
||||
> Save as `wiki/_partial-screenshots/pumpingStation/01-node-and-editor.png` (PNG, target 1200×800, optimise to ≤ 200 KB).
|
||||
> Then replace this callout with:
|
||||
>
|
||||
> ```markdown
|
||||
> 
|
||||
> ```
|
||||

|
||||
|
||||
---
|
||||
|
||||
@@ -62,15 +52,7 @@ curl -X POST -H 'Content-Type: application/json' \
|
||||
http://localhost:1880/flow
|
||||
```
|
||||
|
||||
> [!IMPORTANT]
|
||||
> **Flow screenshot needed.** Open the imported `01-Basic.json` flow in the Node-RED editor and capture the whole tab. The inject row should be visible on the left, the pumpingStation in the middle, the debug taps on the right.
|
||||
>
|
||||
> Save as `wiki/_partial-screenshots/pumpingStation/02-basic-flow.png` (PNG, target 1600×900, optimise to ≤ 250 KB).
|
||||
> Replace this callout with:
|
||||
>
|
||||
> ```markdown
|
||||
> 
|
||||
> ```
|
||||

|
||||
|
||||
What to click in the dashboard after deploy:
|
||||
|
||||
@@ -79,21 +61,7 @@ What to click in the dashboard after deploy:
|
||||
3. `cmd.calibrate.level = 1.5 m` → the volume integrator syncs to a known level.
|
||||
4. Watch Port 0 in the debug pane: level rises, predicted volume integrates, demand follows the curve.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> **GIF needed.** Record the dashboard reacting to the four clicks above. 15–25 seconds is enough. Use `peek` (Linux), LICEcap (Win/Mac), or any screen recorder; convert to GIF and optimise:
|
||||
>
|
||||
> ```bash
|
||||
> # if you started from an mp4:
|
||||
> ffmpeg -i raw.mp4 -vf "fps=15,scale=720:-1" -loop 0 stage.gif
|
||||
> gifsicle -O3 --lossy=80 stage.gif -o final.gif
|
||||
> ```
|
||||
>
|
||||
> Save as `wiki/_partial-gifs/pumpingStation/01-basic-demo.gif` (target ≤ 1 MB).
|
||||
> Replace this callout with:
|
||||
>
|
||||
> ```markdown
|
||||
> 
|
||||
> ```
|
||||

|
||||
|
||||
---
|
||||
|
||||
@@ -103,27 +71,11 @@ The two patterns you'll see most.
|
||||
|
||||
### Standalone (`01-Basic.json`)
|
||||
|
||||
> [!IMPORTANT]
|
||||
> **Screenshot needed.** From the imported `01-Basic.json`, crop a tight view of just the inject column → pumpingStation → debug nodes. Skip the comment header.
|
||||
>
|
||||
> Save as `wiki/_partial-screenshots/pumpingStation/03-wiring-standalone.png` (PNG, target 1400×700).
|
||||
> Replace this callout with:
|
||||
>
|
||||
> ```markdown
|
||||
> 
|
||||
> ```
|
||||

|
||||
|
||||
### With a measurement child and an MGC parent (`02-Integration.json`)
|
||||
### With a measurement child and an MGC parent
|
||||
|
||||
> [!IMPORTANT]
|
||||
> **Screenshot needed.** From the imported `02-Integration.json`, capture the whole tab. The measurement node feeding the pumpingStation should be visible on the left; the MGC with its two `rotatingMachine` pumps on the right.
|
||||
>
|
||||
> Save as `wiki/_partial-screenshots/pumpingStation/04-wiring-integrated.png` (PNG, target 1600×900).
|
||||
> Replace this callout with:
|
||||
>
|
||||
> ```markdown
|
||||
> 
|
||||
> ```
|
||||

|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user