Compare commits

..

3 Commits

Author SHA1 Message Date
znetsixe
f5fd8039f5 style: palette swatch → (domain-hue redesign 2026-05-21)
Sidebar swatch now follows function family rather than S88 level, so the
palette is visually identifiable instead of monochromatically blue. Editor-group
rectangles in flow.json still follow S88 — only the registerType color changed.
Full table + rationale: superproject .claude/rules/node-red-flow-layout.md §10.0
and .claude/refactor/OPEN_QUESTIONS.md (2026-05-21 entry).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-21 15:05:58 +02:00
znetsixe
bf645cfe68 docs: fix stale test/README claim — diffuser has runtime files
The README claimed "Placeholder structure (diffuser currently has no
runtime module files)" but `src/nodeClass.js`, `src/specificClass.js`
(284-line OTR/ΔP model), and `src/commands/` all exist. Updated to
describe the actual layout.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 15:59:17 +02:00
znetsixe
37ecfe5726 docs(wiki): regenerate topic-contract AUTOGEN block via wiki-gen
Replaces the agent-written placeholder inside Reference-Contracts.md with
the authoritative table generated from src/commands/index.js. Both the
BEGIN and END markers are normalized to the canonical form used by
`@evolv/wiki-gen`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 10:11:47 +02:00
3 changed files with 19 additions and 10 deletions

View File

@@ -5,7 +5,7 @@
<script type="text/javascript">
RED.nodes.registerType('diffuser', {
category: 'EVOLV',
color: '#86bbdd',
color: '#6EB5E5',
defaults: {
name: { value: '', required: true },
number: { value: 1, required: true },
@@ -113,6 +113,7 @@ RED.nodes.registerType('diffuser', {
<label for="node-input-dbaseOutputFormat"><i class="fa fa-database"></i> Database Output</label>
<select id="node-input-dbaseOutputFormat" style="width:60%;">
<option value="influxdb">influxdb</option>
<option value="frost">frost</option>
<option value="json">json</option>
<option value="csv">csv</option>
</select>

View File

@@ -1,3 +1,11 @@
# diffuser Test Suite Layout
Placeholder structure (diffuser currently has no runtime module files).
`test/{basic,integration,edge}/` — standard EVOLV three-tier test
structure. The diffuser runtime modules live at `src/nodeClass.js`,
`src/specificClass.js`, and `src/commands/`; they implement the OTR /
ΔP aeration model and the `data.airFlow` / `set.kla` topic handlers
documented in `CONTRACT.md`.
Helpers shared across tiers belong in `test/helpers/`.
Run: `node --test test/basic test/integration test/edge`.

View File

@@ -13,16 +13,16 @@
The registry lives in `src/commands/index.js`. Each descriptor maps a canonical `msg.topic` to its handler in `src/commands/handlers.js`; aliases emit a one-time deprecation warning the first time they fire.
<!-- BEGIN AUTOGEN: topic-contract — populate via wiki-gen tool (TODO) -->
<!-- BEGIN AUTOGEN: topic-contract -->
| Canonical topic | Aliases | Payload | Unit | Effect |
|:---|:---|:---|:---|:---|
| `data.flow` | `air_flow` | `number` | `volumeFlowRate` (default `m3/h`) | Push the measured air flow into the diffuser model. Clamps to &ge; 0 and recomputes OTR. |
| `set.density` | `density` | `number` | bottom-coverage % | Update the diffuser bottom-coverage % used as the OTR curve family key. |
| `set.water-height` | `height_water` | `number` | m | Update the water column height above the diffusers. Clamps to &ge; 0 and recomputes static head + total pressure. |
| `set.header-pressure` | `header_pressure` | `number` | mbar (gauge) | Update the header (supply) pressure above atmospheric. Feeds air-density correction. |
| `set.elements` | `elements` | `number` | integer > 0 | Update the count of active diffuser elements. Drives per-element flow and total membrane area. |
| `set.alfa-factor` | `alfaFactor` | `number` | dimensionless (typically 0&ndash;1) | Update the alpha correction used in the kg O₂/h calculation. |
|---|---|---|---|---|
| `data.flow` | `air_flow` | `number` | `volumeFlowRate` (default `m3/h`) | Push the measured air flow into the diffuser model. |
| `set.density` | `density` | `number` | — | Update the air density used in OTR / SOTR calculations. |
| `set.water-height` | `height_water` | `number` | | Update the water column height above the diffusers (m). |
| `set.header-pressure` | `header_pressure` | `number` | | Update the header (supply) pressure feeding the diffusers (mbar). |
| `set.elements` | `elements` | `number` | | Update the count of active diffuser elements. |
| `set.alfa-factor` | `alfaFactor` | `number` | — | Update the alfa factor used in oxygen-transfer correction. |
<!-- END AUTOGEN: topic-contract -->