configs(pumpingStation): realistic basin defaults + ramp-foot clarification

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) <noreply@anthropic.com>
This commit is contained in:
znetsixe
2026-05-12 14:51:10 +02:00
parent c7e561e593
commit 1b6b43349f

View File

@@ -267,14 +267,14 @@
}, },
"basin": { "basin": {
"volume": { "volume": {
"default": "1", "default": 50,
"rules": { "rules": {
"type": "number", "type": "number",
"description": "Total volume of empty basin in m3" "description": "Total volume of empty basin in m3"
} }
}, },
"height": { "height": {
"default": "1", "default": 4,
"rules": { "rules": {
"type": "number", "type": "number",
"description": "Total height of basin in m" "description": "Total height of basin in m"
@@ -288,11 +288,11 @@
} }
}, },
"inflowLevel": { "inflowLevel": {
"default": 2, "default": 1.5,
"rules": { "rules": {
"type": "number", "type": "number",
"min": 0, "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": { "outflowLevel": {
@@ -304,7 +304,7 @@
} }
}, },
"overflowLevel": { "overflowLevel": {
"default": 2.5, "default": 3.8,
"rules": { "rules": {
"type": "number", "type": "number",
"min": 0, "min": 0,
@@ -486,7 +486,7 @@
}, },
"levelbased": { "levelbased": {
"minLevel": { "minLevel": {
"default": 1, "default": 0.3,
"rules": { "rules": {
"type": "number", "type": "number",
"min": 0, "min": 0,
@@ -498,7 +498,7 @@
"rules": { "rules": {
"type": "number", "type": "number",
"min": 0, "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": { "stopLevel": {
@@ -507,11 +507,11 @@
"type": "number", "type": "number",
"nullable": true, "nullable": true,
"min": 0, "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": { "maxLevel": {
"default": 4, "default": 3.8,
"rules": { "rules": {
"type": "number", "type": "number",
"min": 0, "min": 0,