1d0dd45d9a379e714f10aea48c667ddd1522b3ed
All 12 submodules + parent EVOLV are now on the `development` branch
with the platform refactor complete:
generalFunctions 7372d12 Phase 1 platform infra (additive)
BaseNodeAdapter / BaseDomain / UnitPolicy
ChildRouter / LatestWinsGate / HealthStatus
commandRegistry / statusBadge / statusUpdater
stats — 113 unit tests
pumpingStation 52d3889 Phase 2 — concern split + integration
basin/measurement/control/safety/io/commands
specificClass 1039→245 lines, 102 tests
measurement 42a0333 Phase 3 — Channel-based analog + BaseDomain
simulator/calibration/commands extracted
specificClass 716→244 lines, 96 tests
machineGroupControl bb2f3be Phase 4 — concern split + integration
groupOps/totals/combinatorics/optimizer/
efficiency/dispatch/commands
specificClass 1808→336 lines, 77 tests
rotatingMachine e058fe9 Phase 5 — concern split + integration
curves/prediction/drift/pressure/state/
measurement/flow/display/commands
specificClass 1760→400 lines, 196 tests
valve e27135b Phase 6 platform refactor + concern split
valveGroupControl e02cd1a Phase 6 platform refactor + concern split
diffuser 0ec9dd1 Phase 6 platform refactor (port 4→3)
monster 2a6a0bc Phase 6 platform refactor + concern split
settler b8247fc Phase 6 platform refactor (reactor link kept)
reactor 7bf464b Phase 6 platform refactor + kinetics/ split
dashboardAPI 2874608 Phase 6 — commandRegistry only (no BaseDomain;
passive HTTP server — see OPEN_QUESTIONS.md)
493 basic tests pass platform-wide (12/12 nodes green).
All canonical input topics (set.* / cmd.* / data.* / child.* / query.* /
evt.*) live alongside legacy aliases with one-time deprecation warnings.
Topic-rename cycle (P7) elapses across one release before alias removal.
Decisions taken during the refactor are recorded in
.claude/refactor/OPEN_QUESTIONS.md (resolved entries + carryovers for
Phase 8.5 cleanup, Phase 9 wiki, and Phase 10 test rewrite).
Ready for review on a per-submodule basis. Promotion to main is gated
on Docker E2E (per-node trial-ready criteria) — not part of this commit.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
EVOLV — Edge-Layer Evolution for Optimized Virtualization
Node-RED custom nodes package voor de automatisering van afvalwaterzuiveringsinstallaties. Ontwikkeld door het R&D-team van Waterschap Brabantse Delta. Volgt de ISA-88 (S88) batch control standaard.
Nodes
| Node | Functie | S88-niveau |
|---|---|---|
| rotatingMachine | Individuele pomp/compressor/blower aansturing | Equipment |
| machineGroupControl | Multi-pomp optimalisatie (BEP-Gravitation) | Unit |
| pumpingStation | Pompgemaal met hydraulische context | Unit |
| valve | Individuele klep modellering | Equipment |
| valveGroupControl | Klep groep coordinatie | Unit |
| reactor | Biologische reactor (ASM kinetiek) | Unit |
| settler | Nabezinker / slibscheiding | Unit |
| monster | Multi-parameter biologische monitoring | Equipment |
| measurement | Sensor signaalconditionering | Control Module |
| diffuser | Beluchting aansturing | Equipment |
| dashboardAPI | InfluxDB telemetrie + FlowFuse dashboards | — |
| generalFunctions | Gedeelde bibliotheek (predict, PID, convert, etc.) | — |
Architectuur
Elke node volgt een drie-lagen patroon:
- Entry file (
<naam>.js) — registratie bij Node-RED, admin endpoints - nodeClass (
src/nodeClass.js) — Node-RED adapter (tick loop, routing, status) - specificClass (
src/specificClass.js) — pure domeinlogica (fysica, toestandsmachines)
Drie output-poorten per node: Port 0 = procesdata, Port 1 = InfluxDB telemetrie, Port 2 = registratie/besturing.
Installatie
git clone --recurse-submodules https://gitea.wbd-rd.nl/RnD/EVOLV.git
cd EVOLV
npm install
Submodules updaten:
git submodule update --remote --merge
Enkel bouwblok installeren in Node-RED:
mkdir -p ~/.node-red/nodes
cp -r nodes/<bouwblok-naam> ~/.node-red/nodes/
Testen
# Alle nodes
bash scripts/test-all.sh
# Specifieke node
node --test nodes/<nodeName>/test/basic/*.test.js
node --test nodes/<nodeName>/test/integration/*.test.js
node --test nodes/<nodeName>/test/edge/*.test.js
Documentatie
wiki/— Projectwiki met architectuur, bevindingen en metrics (index)CLAUDE.md— Claude Code projectgidsmanuals/node-red/— FlowFuse en Node-RED referentiedocumentatie.agents/— Agent skills, beslissingen en function-anchors
Licentie
Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)
Gebruik, aanpassing en verspreiding is toegestaan voor niet-commerciele doeleinden, mits naamsvermelding naar Waterschap Brabantse Delta. Voor commercieel gebruik is voorafgaande toestemming vereist.
Contact
Description
Languages
JavaScript
40%
HTML
39.4%
Shell
13.4%
Python
6%
Dockerfile
1.2%