P11.6 diffuser wiki: banner hash + section 9 form completeness + section 14 category/colour notes

- Bump banner hash from 15cfb228cc02ee (latest HEAD).
- Section 9: add missing `number` form field; mark localAtmPressure /
  waterDensity as hidden defaults with no form row; update mermaid diagram.
- Section 14: add issue #5 (category 'wbd typical' vs 'EVOLV') and issue
  #6 (S88 colour already set — §16 note now stale).
- npm run wiki:all run prior to edit; AUTOGEN markers untouched.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
znetsixe
2026-05-11 21:04:57 +02:00
parent 8cc02eebc8
commit 6372bdc926

View File

@@ -1,6 +1,6 @@
# diffuser # diffuser
> **Reflects code as of `15cfb22` · regenerated `2026-05-11` via `npm run wiki:all`** > **Reflects code as of `8cc02ee` · 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
@@ -147,6 +147,7 @@ What lands on Port 0. Composed in `Diffuser.getOutput()`, then delta-compressed
```mermaid ```mermaid
flowchart TB flowchart TB
subgraph editor["Node-RED editor form"] subgraph editor["Node-RED editor form"]
f0[Zone number]
f1[Element count] f1[Element count]
f2[Diffuser density] f2[Diffuser density]
f3[Water height] f3[Water height]
@@ -155,13 +156,17 @@ flowchart TB
f6[Zone volume] f6[Zone volume]
end end
subgraph config["Domain config slice"] subgraph config["Domain config slice"]
c0[diffuser.number]
c1[diffuser.elements] c1[diffuser.elements]
c2[diffuser.density] c2[diffuser.density]
c3[diffuser.waterHeight] c3[diffuser.waterHeight]
c4[diffuser.headerPressure] c4[diffuser.headerPressure]
c5[diffuser.alfaFactor] c5[diffuser.alfaFactor]
c6[diffuser.zoneVolume] c6[diffuser.zoneVolume]
c7["diffuser.localAtmPressure (hidden)"]
c8["diffuser.waterDensity (hidden)"]
end end
f0 --> c0
f1 --> c1 f1 --> c1
f2 --> c2 f2 --> c2
f3 --> c3 f3 --> c3
@@ -172,13 +177,14 @@ flowchart TB
| Form field | Config key | Default | Range | Where used | | Form field | Config key | Default | Range | Where used |
|---|---|---|---|---| |---|---|---|---|---|
| Zone number | `diffuser.number` | `1` | int ≥ 1 | node label (`name_N`) |
| Element count | `diffuser.elements` | `1` | int ≥ 1 | per-element flow | | Element count | `diffuser.elements` | `1` | int ≥ 1 | per-element flow |
| Diffuser density | `diffuser.density` | `2.4` | > 0 | OTR curve key | | Diffuser density | `diffuser.density` | `2.4` | > 0 | OTR curve key |
| Water height | `diffuser.waterHeight` | `0` | ≥ 0 (m) | static head + kg O₂/h | | Water height | `diffuser.waterHeight` | `0` | ≥ 0 (m) | static head + kg O₂/h |
| Header pressure | `diffuser.headerPressure` | `0` | ≥ 0 (mbar) | air density correction | | Header pressure | `diffuser.headerPressure` | `0` | ≥ 0 (mbar) | air density correction |
| Alpha factor | `diffuser.alfaFactor` | `0.7` | 01 | oxygen-transfer correction | | Alpha factor | `diffuser.alfaFactor` | `0.7` | 01 | oxygen-transfer correction |
| Local atm. pressure | `diffuser.localAtmPressure` | `1013.25` | > 0 (mbar) | density baseline | | _(hidden default)_ | `diffuser.localAtmPressure` | `1013.25` | > 0 (mbar) | density baseline |
| Water density | `diffuser.waterDensity` | `997` | > 0 (kg/m³) | static head | | _(hidden default)_ | `diffuser.waterDensity` | `997` | > 0 (kg/m³) | static head |
| Zone volume | `diffuser.zoneVolume` | `0` | ≥ 0 (m³) | `oZoneOtr` | | Zone volume | `diffuser.zoneVolume` | `0` | ≥ 0 (m³) | `oZoneOtr` |
## 10. State chart ## 10. State chart
@@ -221,3 +227,5 @@ Screenshots under `wiki/_partial-screenshots/diffuser/` when produced. Docker co
| 2 | Supplier specs are hard-coded inside `_loadSpecs()` (GVA / ELASTOX-R). A configurable supplier registry is pending. | `specificClass.js _loadSpecs` | | 2 | Supplier specs are hard-coded inside `_loadSpecs()` (GVA / ELASTOX-R). A configurable supplier registry is pending. | `specificClass.js _loadSpecs` |
| 3 | No typed `MeasurementContainer` emission — `oOtr` / `oZoneOtr` cannot be subscribed via the generic `ChildRouter` handshake. Parents must read Port 0 messages. | CONTRACT.md `## Events emitted` | | 3 | No typed `MeasurementContainer` emission — `oOtr` / `oZoneOtr` cannot be subscribed via the generic `ChildRouter` handshake. Parents must read Port 0 messages. | CONTRACT.md `## Events emitted` |
| 4 | Warning / alarm thresholds are fixed (2 % / 10 % hysteresis); not yet config-driven. | `configure()` literals | | 4 | Warning / alarm thresholds are fixed (2 % / 10 % hysteresis); not yet config-driven. | `configure()` literals |
| 5 | **Node category mismatch:** `diffuser.html` registers under `category: 'wbd typical'` instead of `'EVOLV'`. All other platform nodes target `'EVOLV'` for consistent palette grouping in the editor. | `diffuser.html` line 3 |
| 6 | **S88 colour — resolved:** `diffuser.html` already declares `color: '#86bbdd'` (Equipment Module). The WIKI_TEMPLATE §16 note listing diffuser as having "no colour set" is stale and can be removed in the next template refresh. | `diffuser.html` line 4 |