znetsixe a83a85e958 fix(ps): persist stopLevel/holdLevel as numbers across editor save
Node-RED's auto-form-binding writes <input type="number"> values into the
node object as strings. The editor's setNumberField helper used strict
Number.isFinite(val) which rejects "0.5" and blanked the input on reopen,
so users saw their stopLevel/holdLevel values disappear after clicking Done.

- oneditsave: explicitly parseFloat stopLevel, holdLevel, and
  deadZoneKeepAlivePercent so they land in the node as numbers (matches the
  treatment of startLevel/maxLevel).
- oneditprepare: parseFloat node.holdLevel / node.deadZoneKeepAlivePercent
  before the Number.isFinite check so existing string-typed flows still
  render their saved values.
- index.js setNumberField: defensively coerce stringy numbers so this
  gotcha can't bite a future field.

Verified end-to-end in headless Chromium: type new values, click Done,
reopen — values persist and the stopLevel/holdLevel marker lines render
at the correct x in the level-based mode preview.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 19:21:59 +02:00
2025-10-07 18:05:54 +02:00

pumpingStation

Wet-well basin model and pump orchestration node for EVOLV.

The detailed documentation lives in wiki/:

  • wiki/functional-description.md defines the shared basin model, pipe reference semantics, safety points, net-flow selection, and child registration behaviour.
  • wiki/modes/ documents control-mode-specific behaviour. For v1.0 the editor exposes levelbased and manual; levelbased supports linear and log curves with separate rising/falling ramp semantics.
  • wiki/diagrams/basin-model.drawio.svg is the current source of truth for the generic basin model.
  • examples/basic-dashboard.flow.json provides a simple Node-RED Dashboard 2 flow with level, volume, demand, net-flow, and safety-state trends.
Description
No description provided
Readme 54 MiB
Languages
JavaScript 71.8%
HTML 28.2%