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>
This commit is contained in:
31
wiki/Home.md
31
wiki/Home.md
@@ -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` |
|
||||||
|
|||||||
Reference in New Issue
Block a user