Update "Home"

2026-03-04 20:16:41 +00:00
parent 8f2f012cbf
commit da11d1ce38

153
Home.md

@@ -1 +1,152 @@
# EVOLV Wiki # EVOLV - Edge-Layer Evolution for Optimized Virtualization
EVOLV is an industrial automation platform built as a custom Node-RED package for real-time process control, monitoring, and optimization of wastewater treatment plants.
## Overview
| Property | Value |
|----------|-------|
| **Package** | `EVOLV` (npm) |
| **Version** | 1.0.29 |
| **Runtime** | Node-RED on Node.js |
| **Database** | InfluxDB (time-series telemetry) |
| **ML/AI** | TensorFlow.js (predictive models) |
| **Thermodynamics** | CoolProp |
| **Target** | Waterschap Brabantse Delta (NL) |
## Architecture
EVOLV provides **12 custom Node-RED nodes** plus a shared utility library (`generalFunctions`). Each node follows a **3-tier architecture**:
1. **Entry file** - Node-RED registration, HTTP endpoints for editor menus
2. **nodeClass** - Node-RED adapter layer (handles `RED.*` API calls)
3. **specificClass** - Pure domain logic (no framework dependencies, fully testable)
### Standard 3-Port Output
All process nodes use a consistent output pattern:
| Port | Purpose | Example |
|------|---------|---------|
| **Port 0** | Process data | Measurement values, calculated state |
| **Port 1** | InfluxDB telemetry | Time-series data for remote logging |
| **Port 2** | Registration / control | Parent-child communication, asset discovery |
### Canonical Units
All internal calculations use SI-derived canonical units:
| Quantity | Unit |
|----------|------|
| Pressure | Pa |
| Flow | m3/s |
| Power | W |
| Temperature | K |
## Node Inventory
| Node | Purpose | Parent |
|------|---------|--------|
| [rotatingMachine](https://gitea.wbd-rd.nl/RnD/rotatingMachine) | Individual pump/compressor/blower control | MGC or pumpingStation |
| [pumpingStation](https://gitea.wbd-rd.nl/RnD/pumpingStation) | Multi-pump station with hydraulic optimization | - |
| [machineGroupControl](https://gitea.wbd-rd.nl/RnD/machineGroupControl) | Coordinates multiple rotatingMachine children | - |
| [valve](https://gitea.wbd-rd.nl/RnD/valve) | Individual valve modeling and control | VGC |
| [valveGroupControl](https://gitea.wbd-rd.nl/RnD/valveGroupControl) | Coordinates multiple valve children | - |
| [reactor](https://gitea.wbd-rd.nl/RnD/reactor) | Biological reactor with ASM3 kinetics | - |
| [settler](https://gitea.wbd-rd.nl/RnD/settler) | Secondary clarifier / sludge settling | downstream of reactor |
| [monster](https://gitea.wbd-rd.nl/RnD/monster) | Multi-parameter biological process monitoring | - |
| [measurement](https://gitea.wbd-rd.nl/RnD/measurement) | Sensor signal conditioning and data quality | any parent node |
| [diffuser](https://gitea.wbd-rd.nl/RnD/diffuser) | Aeration system control | - |
| [dashboardAPI](https://gitea.wbd-rd.nl/RnD/dashboardAPI) | Grafana dashboard management and telemetry | - |
| [generalFunctions](https://gitea.wbd-rd.nl/RnD/generalFunctions) | Shared utility library (not a node) | - |
## Parent-Child Relationships
```
pumpingStation ----------> rotatingMachine (manages pumps with hydraulic context)
machineGroupControl ----> rotatingMachine (group coordination)
valveGroupControl ------> valve (group coordination)
reactor ----------------> settler (biological cascade; settler pulls effluent)
measurement ------------> any parent (registers via Port 2)
```
## Installation
### Prerequisites
- Node.js >= 18
- Node-RED >= 3.x
- InfluxDB 2.x (for telemetry)
- Docker (optional, for containerized deployment)
### npm Install
```bash
npm install EVOLV
```
### From Source
```bash
git clone --recurse-submodules https://gitea.wbd-rd.nl/RnD/EVOLV.git
cd EVOLV
npm install
```
### Docker
```bash
docker compose build nodered
docker compose up -d nodered
```
## Development
### Submodules
All nodes are git submodules. After cloning:
```bash
git submodule update --init --recursive
```
### Testing
Each node has 3 tiers of tests (basic, integration, edge):
```bash
node --test nodes/<nodeName>/test/basic/*.test.js
```
### Deploying Flows
Editing flow files alone does not deploy them. POST to the running Node-RED instance:
```bash
curl -X POST http://localhost:1880/flows -H "Content-Type: application/json" -d @flow.json
```
## Repository Structure
```
EVOLV/
nodes/ # All node submodules
dashboardAPI/
diffuser/
generalFunctions/ # Shared library
machineGroupControl/
measurement/
monster/
pumpingStation/
reactor/
rotatingMachine/
settler/
valve/
valveGroupControl/
.agents/ # AI agent skills and anchors
docker/ # Docker configuration
manuals/ # Node-RED reference docs
scripts/ # Utility and deployment scripts
package.json
docker-compose.yml
```