Add "Home"

2026-03-04 20:16:41 +00:00
commit a4678cec38

114
Home.md Normal file

@@ -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
```