commit 2ef3ca8deec8ea6a68b9b2b92f368ee3785fe22a Author: vps1_gitea_admin Date: Wed Mar 4 20:16:44 2026 +0000 Add "Home" diff --git a/Home.md b/Home.md new file mode 100644 index 0000000..30fbaf8 --- /dev/null +++ b/Home.md @@ -0,0 +1,109 @@ +# measurement + +Custom Node-RED node for sensor signal conditioning, scaling, smoothing, and data quality management. + +## Overview + +| Property | Value | +|----------|-------| +| **Version** | 1.0.0 | +| **Category** | Instrumentation | +| **Inputs** | 1 | +| **Outputs** | 3 (process / dbase / parent) | +| **Part of** | [EVOLV](https://gitea.wbd-rd.nl/RnD/EVOLV) | + +## Purpose + +The `measurement` node processes raw sensor signals into calibrated, smoothed measurement values. It provides: + +- **Linear scaling** from raw input range to engineering units +- **Signal smoothing** with multiple methods (moving average, etc.) +- **Simulator mode** for testing without physical sensors +- **Asset registration** for automatic discovery by parent nodes +- **Data quality** indicators + +## Configuration + +### Scaling + +| Field | Description | +|-------|-------------| +| `i_min` | Raw input minimum | +| `i_max` | Raw input maximum | +| `i_offset` | Input offset correction | +| `o_min` | Scaled output minimum | +| `o_max` | Scaled output maximum | + +### Smoothing + +| Field | Description | +|-------|-------------| +| `smooth_method` | Smoothing algorithm (dropdown) | +| `count` | Window size for smoothing | + +### Asset Identification + +| Field | Description | +|-------|-------------| +| `uuid` | Unique sensor identifier | +| `supplier` | Sensor manufacturer | +| `category` | Sensor category | +| `assetType` | **Critical** - must match parent node query exactly | +| `model` | Sensor model | +| `unit` | Engineering unit | + +### Other + +| Field | Description | +|-------|-------------| +| Simulator toggle | Enable/disable simulator mode | +| `positionVsParent` | Position relative to parent | +| `positionIcon` | Editor icon | +| `distance` | Distance from parent | + +## Critical Integration Notes + +**assetType matching:** The `assetType` field must exactly match what the parent node queries for. For example: +- `pumpingStation` and `monster` query for `assetType: "flow"` +- Using `"flow-electromagnetic"` will NOT match and the measurement will not register + +**Async registration:** The node exposes an HTTP endpoint at `/measurement/asset-reg` for asset registration. + +## Inputs and Outputs + +### Input (Port 0) +Raw sensor values (analog/digital signals). + +### Output Port 0 - Process Data +Scaled and smoothed measurement value with quality indicators. + +### Output Port 1 - InfluxDB Telemetry +Measurement time-series data. + +### Output Port 2 - Registration +Asset registration messages to parent nodes (pumpingStation, monster, MGC, etc.). + +## Parent Nodes + +Can register with any parent node that accepts measurements: +- [pumpingStation](https://gitea.wbd-rd.nl/RnD/pumpingStation) +- [monster](https://gitea.wbd-rd.nl/RnD/monster) +- [machineGroupControl](https://gitea.wbd-rd.nl/RnD/machineGroupControl) +- And others + +## Dependencies + +- [generalFunctions](https://gitea.wbd-rd.nl/RnD/generalFunctions) (MenuManager, configManager, assetApiConfig, assetUtils) + +## Technical Requirements + +- Node.js >= 18 +- Node-RED >= 3.x + +## Testing + +```bash +node --test test/basic/*.test.js +node --test test/integration/*.test.js +node --test test/edge/*.test.js +```