diff --git a/wiki/Home.md b/wiki/Home.md index a8b2e53..54d75ec 100644 --- a/wiki/Home.md +++ b/wiki/Home.md @@ -1,6 +1,6 @@ # settler -> **Reflects code as of `7bf464b` · regenerated `2026-05-11` via `npm run wiki:all`** +> **Reflects code as of `94b6616` · regenerated `2026-05-11` via `npm run wiki:all`** > If this banner is stale, the page may be out of date. Treat as informative, not authoritative. ## 1. What this node is @@ -179,32 +179,40 @@ Port 0 carries the 3-envelope Fluent stream directly; Port 1 (this snapshot) is flowchart TB subgraph editor["Node-RED editor form"] f1[Name] - f2[Position vs parent] - f3[Logging level] + f2[Process Output Format] + f3[Database Output Format] + f4[Logging level] + f5[Position vs parent] end - subgraph config["Domain config slice"] + subgraph config["Domain config / nodeClass"] c1[general.name] - c2[functionality.positionVsParent] - c3[general.logging.logLevel] + c2[processOutputFormat → nodeClass] + c3[dbaseOutputFormat → nodeClass] + c4[general.logging.logLevel] + c5[functionality.positionVsParent] end f1 --> c1 f2 --> c2 f3 --> c3 + f4 --> c4 + f5 --> c5 ``` | Form field | Config key | Default | Range | Where used | |---|---|---|---|---| | Name | `general.name` | `Settler` | string | display + Port-1 topic | -| ID | `general.id` | `null` | nullable string | child registration key | +| Process Output Format | `processOutputFormat` (nodeClass) | `process` | `process` / `json` / `csv` | Port-0 serialisation | +| Database Output Format | `dbaseOutputFormat` (nodeClass) | `influxdb` | `influxdb` / `json` / `csv` | Port-1 serialisation | +| Logging level | `general.logging.logLevel` | `info` | `debug` / `info` / `warn` / `error` | logger threshold | +| Position vs parent | `functionality.positionVsParent` | `downstream` | `upstream` / `atEquipment` / `downstream` | parent-side routing | | Software type | `functionality.softwareType` | `settler` | string | parent-side router filter | -| Position vs parent | `functionality.positionVsParent` | `downstream` | enum: `upstream` / `atEquipment` / `downstream` | parent-side routing | -| Logging level | `general.logging.logLevel` | `info` | enum | logger threshold | +| ID | `general.id` | `null` | nullable string | child registration key | -Settler has no operational config of its own — all behaviour is driven by the runtime state (`F_in`, `Cs_in`, `C_TS`). Tune behaviour by feeding it different reactor effluents or `C_TS` measurements. +Settler has no operational process config of its own — all behaviour is driven by runtime state (`F_in`, `Cs_in`, `C_TS`). Tune behaviour by feeding it different reactor effluents or `C_TS` measurements. ## 10. State chart -Skipped — settler is stateless. Each `stateChange` (or `data.influent`, or `quantity (tss)` update) recomputes the 3 Fluent streams from scratch. +Not applicable — settler is stateless. There is no FSM. Every trigger (`stateChange` from the reactor, `data.influent`, or a `quantity (tss)` update) causes a fresh recompute of the 3 Fluent streams from the current runtime state and the split immediately re-emits. ## 11. Examples @@ -240,3 +248,4 @@ One screenshot per tier where helpful. PNG ≤ 200 KB under `wiki/_partial-scree | 2 | TSS mass balance uses index 12 (`X_TS`) hard-coded — coupled tightly to ASM3 species ordering. | `getEffluent`, `_updateMeasurement` | | 3 | Settler depends on `mathjs` (~14 MB install) but only uses it transitively via reactor; no direct mathjs call in settler code. | `package.json` | | 4 | No flow-balance check at runtime — if particulate concentration drives F_s above F_in, the clamp masks an upstream bug rather than warning. | `getEffluent` | +| 5 | Editor colour is `#e4a363` (orange) in `settler.html` but S88 Unit level requires `#50a8d9` (blue). Diagrams in this wiki use the correct `#50a8d9`. Colour cleanup tracked in `.claude/rules/node-red-flow-layout.md` §16. | `settler.html` |