From 1b6b43349fd4cc45860f1bb23d5c1ce0d35fb7fa Mon Sep 17 00:00:00 2001 From: znetsixe Date: Tue, 12 May 2026 14:51:10 +0200 Subject: [PATCH] configs(pumpingStation): realistic basin defaults + ramp-foot clarification MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Schema defaults now match a realistic 50 m³ × 4 m basin (volume=50, height=4, inflowLevel=1.5, overflowLevel=3.8, maxLevel=3.8, minLevel=0.3). stopLevel default stays null so the hysteresis remains opt-in for programmatic configs (per levelBased.js:111-113); the editor HTML supplies 0.5 m as the drag-in default. startLevel description corrected: the ramp foot is inflowLevel, not startLevel — demand stays at 0 % across [startLevel, inflowLevel] and scales 0 → 100 % across [inflowLevel, maxLevel]. The previous text claimed [startLevel, maxLevel], contradicting the runtime. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/configs/pumpingStation.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/configs/pumpingStation.json b/src/configs/pumpingStation.json index 9f98f08..2848e82 100644 --- a/src/configs/pumpingStation.json +++ b/src/configs/pumpingStation.json @@ -267,14 +267,14 @@ }, "basin": { "volume": { - "default": "1", + "default": 50, "rules": { "type": "number", "description": "Total volume of empty basin in m3" } }, "height": { - "default": "1", + "default": 4, "rules": { "type": "number", "description": "Total height of basin in m" @@ -288,11 +288,11 @@ } }, "inflowLevel": { - "default": 2, + "default": 1.5, "rules": { "type": "number", "min": 0, - "description": "Bottom/invert height of the inlet pipe measured from the basin floor (m)." + "description": "Bottom/invert height of the inlet pipe measured from the basin floor (m). Acts as the ramp foot in levelbased control: demand stays at 0 % below inflowLevel and scales 0 → 100 % across [inflowLevel, maxLevel]." } }, "outflowLevel": { @@ -304,7 +304,7 @@ } }, "overflowLevel": { - "default": 2.5, + "default": 3.8, "rules": { "type": "number", "min": 0, @@ -486,7 +486,7 @@ }, "levelbased": { "minLevel": { - "default": 1, + "default": 0.3, "rules": { "type": "number", "min": 0, @@ -498,7 +498,7 @@ "rules": { "type": "number", "min": 0, - "description": "Pump-on threshold and ramp foot. Below this level demand is 0 %; at or above it demand scales 0 → 100 % across [startLevel, maxLevel] using the configured curve (linear or log). When enableShiftedRamp is on, this also serves as the bottom of the held-then-ramp curve during draining." + "description": "Pump-on threshold (engagement edge for stopLevel hysteresis). Demand stays at 0 % between startLevel and inflowLevel — the ramp foot is inflowLevel, not startLevel. The ramp itself scales 0 → 100 % across [inflowLevel, maxLevel]. When enableShiftedRamp is on, startLevel also serves as the bottom of the held-then-ramp curve during draining." } }, "stopLevel": { @@ -507,11 +507,11 @@ "type": "number", "nullable": true, "min": 0, - "description": "Optional pump-off threshold. When set, PS sends an explicit turnOffAllMachines command to MGC the moment level drops below stopLevel. Independent of the ramp scaling — does NOT shift where the ramp starts. Pair with a startLevel above stopLevel to get hysteresis (pumps engage at startLevel rising, disengage at stopLevel falling). Must be ≥ minLevel and ≤ startLevel." + "description": "Optional pump-off threshold. When set, PS sends an explicit turnOffAllMachines command to MGC the moment level drops below stopLevel. Independent of the ramp scaling — does NOT shift where the ramp starts. Pair with a startLevel above stopLevel to get hysteresis (pumps engage at startLevel rising, disengage at stopLevel falling). Must be ≥ minLevel and ≤ startLevel. NOTE: schema default stays null so omitting stopLevel keeps the hysteresis inactive (matching levelBased.js); the editor HTML provides a realistic 0.5 m default for drag-in UX." } }, "maxLevel": { - "default": 4, + "default": 3.8, "rules": { "type": "number", "min": 0,