commit a4678cec38b0d8dfb57a0251296f691b736d6f66 Author: vps1_gitea_admin Date: Wed Mar 4 20:16:41 2026 +0000 Add "Home" diff --git a/Home.md b/Home.md new file mode 100644 index 0000000..3609960 --- /dev/null +++ b/Home.md @@ -0,0 +1,114 @@ +# pumpingStation + +Custom Node-RED node for multi-pump station management with hydraulic optimization and multiple control strategies. + +## Overview + +| Property | Value | +|----------|-------| +| **Version** | 1.0.0 | +| **Category** | Process Control | +| **Inputs** | 1 | +| **Outputs** | 3 (process / dbase / parent) | +| **Part of** | [EVOLV](https://gitea.wbd-rd.nl/RnD/EVOLV) | + +## Purpose + +The `pumpingStation` node manages a collection of `rotatingMachine` child nodes as a complete pumping station. It provides: + +- **Basin hydraulics modeling** with volume, height, and overflow calculations +- **Multiple control modes**: manual, level-based, and flow-based +- **Safety protections**: dry-run protection and overfill protection +- **PID flow control** with configurable gains and rate limiting +- **Simulator mode** for testing without physical equipment + +## Configuration + +### Basin Geometry + +| Field | Unit | Description | +|-------|------|-------------| +| `basinVolume` | m3 | Total basin volume | +| `basinHeight` | m | Basin height | +| `heightInlet` | m | Inlet height reference | +| `heightOutlet` | m | Outlet height reference | +| `heightOverflow` | m | Overflow threshold height | +| `refHeight` | m | Reference height datum | +| `basinBottomRef` | m | Basin bottom reference | + +### Safety + +| Field | Description | Default | +|-------|-------------|---------| +| `enableDryRunProtection` | Prevent pump damage from dry running | - | +| `dryRunThresholdPercent` | Level % below which pumps stop | - | +| `enableOverfillProtection` | Prevent basin overflow | - | +| `overfillThresholdPercent` | Level % above which alarm triggers | - | + +### Control Modes + +#### Manual Mode +Direct operator control of individual pumps. + +#### Level-Based Control + +| Field | Unit | Description | +|-------|------|-------------| +| `startLevel` | m | Level at which pumps start | +| `stopLevel` | m | Level at which pumps stop | +| `minFlowLevel` | m | Minimum flow threshold level | +| `maxFlowLevel` | m | Maximum flow threshold level | + +#### Flow-Based Control (PID) + +| Field | Description | +|-------|-------------| +| `flowSetpoint` | Target flow rate | +| `flowDeadband` | Acceptable deviation from setpoint | +| `Kp` | Proportional gain | +| `Ki` | Integral gain | +| `Kd` | Derivative gain | +| Derivative filter | Low-pass filter on D term | +| Rate limits | Max rate of change for control output | + +## Child Nodes + +This node manages **[rotatingMachine](https://gitea.wbd-rd.nl/RnD/rotatingMachine)** children. Pumps register themselves via Port 2 messages. + +**Important:** Measurement nodes with `assetType: "flow"` (not `"flow-electromagnetic"`) are required for flow-based control to work correctly. + +## Inputs and Outputs + +### Input (Port 0) +- Level measurements +- Flow measurements +- Control mode changes +- Setpoint updates + +### Output Port 0 - Process Data +Station state including basin level, total flow, active pump count, control mode. + +### Output Port 1 - InfluxDB Telemetry +Time-series data for all station parameters. + +### Output Port 2 - Registration +Parent communication and child discovery messages. + +## Dependencies + +- [generalFunctions](https://gitea.wbd-rd.nl/RnD/generalFunctions) (MenuManager, configManager) + +## Technical Requirements + +- Node.js >= 18 +- Node-RED >= 3.x +- At least one `rotatingMachine` child node configured +- `measurement` node with `assetType: "flow"` for flow-based control + +## Testing + +```bash +node --test test/basic/*.test.js +node --test test/integration/*.test.js +node --test test/edge/*.test.js +```