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>
pumpingStation
Wet-well basin model and pump orchestration node for EVOLV.
The detailed documentation lives in wiki/:
wiki/functional-description.mddefines 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 exposeslevelbasedandmanual; levelbased supports linear and log curves with separate rising/falling ramp semantics.wiki/diagrams/basin-model.drawio.svgis the current source of truth for the generic basin model.examples/basic-dashboard.flow.jsonprovides a simple Node-RED Dashboard 2 flow with level, volume, demand, net-flow, and safety-state trends.
Description
Languages
JavaScript
71.8%
HTML
28.2%