# 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: 1. **Entry file** (`.js`) — registratie bij Node-RED, admin endpoints 2. **nodeClass** (`src/nodeClass.js`) — Node-RED adapter (tick loop, routing, status) 3. **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 ```bash git clone --recurse-submodules https://gitea.wbd-rd.nl/RnD/EVOLV.git cd EVOLV npm install ``` Submodules updaten: ```bash git submodule update --remote --merge ``` Enkel bouwblok installeren in Node-RED: ```bash mkdir -p ~/.node-red/nodes cp -r nodes/ ~/.node-red/nodes/ ``` ## Testen ```bash # Alle nodes bash scripts/test-all.sh # Specifieke node node --test nodes//test/basic/*.test.js node --test nodes//test/integration/*.test.js node --test nodes//test/edge/*.test.js ``` ## Documentatie - **`wiki/`** — Projectwiki met architectuur, bevindingen en metrics ([index](wiki/index.md)) - **`CLAUDE.md`** — Claude Code projectgids - **`manuals/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 rdlab@brabantsedelta.nl