Compare commits

...

1 Commits

Author SHA1 Message Date
znetsixe
98052a16e7 docs(wiki): update Home.md to match WIKI_TEMPLATE §14-section standard
- Bump banner hash to 94b6616 (current HEAD)
- Section 9: add processOutputFormat + dbaseOutputFormat + enableLog fields
  that exist in settler.html but were absent from the config table
- Section 10: replace "Skipped" with precise stateless rationale
- Section 14: add item 5 — editor colour #e4a363 vs S88 #50a8d9 discrepancy,
  referencing node-red-flow-layout.md §16 for cleanup tracking
- Re-ran npm run wiki:all; AUTOGEN markers intact

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 21:05:00 +02:00

View File

@@ -1,6 +1,6 @@
# settler # 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. > If this banner is stale, the page may be out of date. Treat as informative, not authoritative.
## 1. What this node is ## 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 flowchart TB
subgraph editor["Node-RED editor form"] subgraph editor["Node-RED editor form"]
f1[Name] f1[Name]
f2[Position vs parent] f2[Process Output Format]
f3[Logging level] f3[Database Output Format]
f4[Logging level]
f5[Position vs parent]
end end
subgraph config["Domain config slice"] subgraph config["Domain config / nodeClass"]
c1[general.name] c1[general.name]
c2[functionality.positionVsParent] c2[processOutputFormat → nodeClass]
c3[general.logging.logLevel] c3[dbaseOutputFormat → nodeClass]
c4[general.logging.logLevel]
c5[functionality.positionVsParent]
end end
f1 --> c1 f1 --> c1
f2 --> c2 f2 --> c2
f3 --> c3 f3 --> c3
f4 --> c4
f5 --> c5
``` ```
| Form field | Config key | Default | Range | Where used | | Form field | Config key | Default | Range | Where used |
|---|---|---|---|---| |---|---|---|---|---|
| Name | `general.name` | `Settler` | string | display + Port-1 topic | | 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 | | Software type | `functionality.softwareType` | `settler` | string | parent-side router filter |
| Position vs parent | `functionality.positionVsParent` | `downstream` | enum: `upstream` / `atEquipment` / `downstream` | parent-side routing | | ID | `general.id` | `null` | nullable string | child registration key |
| Logging level | `general.logging.logLevel` | `info` | enum | logger threshold |
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 ## 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 ## 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` | | 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` | | 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` | | 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` |