Compare commits

...

1 Commits

Author SHA1 Message Date
znetsixe
53c25f2d10 docs(wiki): rewrite Home.md to 14-section template — bump banner + fix gaps
- Banner hash updated to 8540328 (was stale 2a6a0bc).
- Section 9: flag constraints.flowmeter not wired in buildDomainConfig
  (effectively always true at runtime); add nominalFlowMin / flowMax /
  maxRainRef rows that were missing from the config table.
- Section 12: add two new debug recipes — measurement child ignored
  (assetType must be "flow", not "flow-electromagnetic") and flowmeter=false
  has no runtime effect.
- Section 14 #3: expand flowmeter limitation to call out buildDomainConfig gap.
- Section 14 #5: add S88 colour cleanup note (#4f8582 teal → #50a8d9 Unit).
- AUTOGEN markers untouched; npm run wiki:all re-ran cleanly before commit.

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

View File

@@ -1,6 +1,6 @@
# monster
> **Reflects code as of `2a6a0bc` · regenerated `2026-05-11` via `npm run wiki:all`**
> **Reflects code as of `8540328` · 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
@@ -262,8 +262,11 @@ flowchart TB
| Max weight (kg) | `constraints.maxWeight` | `23` | ≤ 23 | bucket overload |
| Empty bucket weight (kg) | `asset.emptyWeightBucket` | `3` | ≥ 0 | `bucketWeight` |
| Sub-sample volume (mL) | `constraints.subSampleVolume` | `50` | fixed | per-pulse volume |
| Flowmeter present | `constraints.flowmeter` | `true` | bool | proportional vs time mode |
| Flowmeter present | `constraints.flowmeter` | `true` | bool | ⚠️ In schema but NOT wired in `buildDomainConfig` — effectively always `true` at runtime. |
| Min sample interval (s) | `constraints.minSampleIntervalSec` | `60` | ≥ 0 | cooldown guard |
| Nominal flow min (m³/h) | `constraints.nominalFlowMin` | `0` | ≥ 0 | lower bound for rain-driven flow prediction band |
| Flow max (m³/h) | `constraints.flowMax` | `0` | ≥ 0 | upper bound for rain-driven flow prediction band |
| Max rain reference | `constraints.maxRainRef` | `10` | > 0 | rain-index that maps to `flowMax` |
| Intake speed (m/s) | `constraints.intakeSpeed` | `0.3` | ≥ 0 | informational |
| Intake diameter (mm) | `constraints.intakeDiameter` | `12` | ≥ 0 | informational |
@@ -290,9 +293,11 @@ One screenshot per tier where helpful. PNG ≤ 200 KB under `wiki/_partial-scree
| `pulse` never fires | Is `running` true? Check `validateFlowBounds` log — invalid bounds short-circuits the run. | `parameters/parameters.js` |
| Pulses arrive too fast / skipped | Cooldown guard active. Inspect `missedSamples` + `minSampleIntervalSec`. | `sampling/samplingProgram.js → _maybeEmitPulse` |
| `q` always zero | Measured-flow child not registered, manual flow not pushed. Watch Port 2 + `data.flow` history. | `flow/flowTracker.js` |
| Measurement child ignored at register | Child's `config.asset.type` is set to something other than `"flow"` (e.g. `"flow-electromagnetic"`). Monster only accepts `asset.type = "flow"` or unset. Set `asset.type: "flow"` on the measurement node. | `specificClass.js → _wireMeasurementChild` |
| `nextDate` not arming | `set.schedule` payload didn't include matching `aquonSampleName` row. | `schedule/schedule.js → regNextDate` |
| `sumRain` zero with rain input | `rainAggregator.update` ran while `running=true` (skipped). | `specificClass.js → updateRainData` |
| Bucket overfilled before `stop_time` | `m3PerPuls` rounded down; check `predFlow` vs effective `q`. | `sampling/samplingProgram.js → _beginRun` |
| `flowmeter=false` has no effect | `constraints.flowmeter` is in the schema but not wired in `buildDomainConfig`. The sampling program always runs in proportional mode. | `src/nodeClass.js → buildDomainConfig` |
> Never ship `enableLog: 'debug'` in a demo — fills the container log within seconds and obscures real errors. Use only for live debugging.
@@ -308,5 +313,6 @@ One screenshot per tier where helpful. PNG ≤ 200 KB under `wiki/_partial-scree
|---|---|---|
| 1 | Edge test `sampling-guards.edge.test.js` cooldown-guard case is a pre-existing failure — the cooldown skip increments `missedSamples` but the assertion expects a different timing. | `test/edge/sampling-guards.edge.test.js` |
| 2 | `set.mode` and `set.model-prediction` are reserved — handlers delegate to optional methods that don't exist yet. | `commands/handlers.js` |
| 3 | Time-only mode (`flowmeter=false`) is not exercised — the sampling program assumes a flow source. | `sampling/samplingProgram.js` |
| 3 | Time-only mode (`flowmeter=false`) is not exercised — the sampling program assumes a flow source. `constraints.flowmeter` is also not forwarded in `buildDomainConfig`. | `sampling/samplingProgram.js`, `src/nodeClass.js` |
| 4 | Sub-sample volume hard-coded at 50 mL (schema enforces `min=max=50`). | `generalFunctions/src/configs/monster.json` |
| 5 | S88 colour cleanup pending: node editor colour is `#4f8582` (teal) in `monster.html`. Correct Unit-level colour is `#50a8d9`. Section 2 diagram already uses the correct colour. The editor node tile must be updated separately. | `monster.html``color:` field |