Compare commits

..

1 Commits

Author SHA1 Message Date
znetsixe
b373727338 wiki: rewrite Home.md per visual-first 14-section template
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 21:05:29 +02:00

View File

@@ -1,6 +1,6 @@
# rotatingMachine # rotatingMachine
> **Reflects code as of `afc304b` · regenerated `2026-05-11` via `npm run wiki:all`** > **Reflects code as of `1a9f533` · 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
@@ -206,21 +206,28 @@ Composed in `io/output.js → buildOutput(this)`, then delta-compressed.
~~~json ~~~json
{ {
"state": "warmingup", "state": "warmingup",
"flow.predicted.downstream.default": 0.00345, "ctrl": 42.5,
"flow.predicted.atequipment.default": 0.00345, "mode": "auto",
"power.predicted.atequipment.default": 1820, "runtime": 0.0014,
"flow.predicted.downstream.default": 12.4,
"flow.predicted.atequipment.default": 12.4,
"flow.predicted.max.dashboard-sim-upstream": 22.1,
"flow.predicted.min.dashboard-sim-upstream": 0,
"power.predicted.atequipment.default": 18.2,
"pressure.measured.upstream.dashboard-sim-upstream": 101325, "pressure.measured.upstream.dashboard-sim-upstream": 101325,
"pressure.measured.downstream.dashboard-sim-downstream": 145000, "pressure.measured.downstream.dashboard-sim-downstream": 145000,
"temperature.measured.atequipment.default": 15, "temperature.measured.atequipment.dashboard-sim-upstream": 15,
"atmPressure.measured.atequipment.default": 101325, "atmPressure.measured.atequipment.dashboard-sim-upstream": 101325,
"predictionHealth": { "predictionQuality": "warming",
"quality": "warming", "predictionConfidence": 0.35,
"confidence": 0.35, "predictionPressureSource": "dashboard-sim",
"pressureSource": "dashboard-sim", "predictionFlags": ["pressure_init_warming"],
"flags": ["pressure_init_warming"] "pressureDriftLevel": 0,
}, "pressureDriftSource": null,
"cog": 0.62, "NCog": 0.71, "pressureDriftFlags": ["nominal"],
"absDistFromPeak": 0.04, "relDistFromPeak": 0.12 "cog": 0.62, "NCog": 0.71, "NCogPercent": 62,
"effDistFromPeak": 0.04, "effRelDistFromPeak": 0.12,
"moveTimeleft": 0, "maintenanceTime": 0
} }
~~~ ~~~
@@ -231,24 +238,22 @@ Position labels are normalised to lowercase in MeasurementContainer keys (`atequ
```mermaid ```mermaid
flowchart TB flowchart TB
subgraph editor["Node-RED editor form"] subgraph editor["Node-RED editor form"]
f1[Asset model dropdown] f1[Asset — supplier / category / model / unit]
f2[Mode current] f2[Position vs parent]
f3[Position vs parent] f3[State times: startup / warmup / shutdown / cooldown]
f4[State times: starting, warmingup, ...] f4[Movement mode + reaction speed]
f5[Movement mode + speed] f5[Process output format]
f6[Position min / max / initial] f6[Database output format]
f7[Allowed sources / actions per mode] f7[Logger — level / enabled]
f8[Output unit (flow, pressure, power)]
end end
subgraph cfg["Domain config slice"] subgraph cfg["Domain config slice"]
c1[asset.model] c1[asset.model / asset.unit / asset.supplier / asset.category]
c2[mode.current] c2[functionality.positionVsParent]
c3[functionality.positionVsParent] c3[time.starting / warmingup / stopping / coolingdown]
c4[time.starting / warmingup / stopping / coolingdown] c4[movement.mode / movement.speed]
c5[movement.mode / speed / maxSpeed / interval] c5[output.process]
c6[position.min / max / initial] c6[output.dbase]
c7[mode.allowedSources / allowedActions] c7[general.logging]
c8[general.unit / asset.unit]
end end
f1 --> c1 f1 --> c1
f2 --> c2 f2 --> c2
@@ -257,22 +262,21 @@ flowchart TB
f5 --> c5 f5 --> c5
f6 --> c6 f6 --> c6
f7 --> c7 f7 --> c7
f8 --> c8
``` ```
| Form field | Config key | Default | Range | Where used | | Form field | Config key | Default | Range | Where used |
|---|---|---|---|---| |---|---|---|---|---|
| Asset model | `asset.model` | `Unknown` | string (must resolve in curve loader) | `_setupCurves` | | Asset model | `asset.model` | `Unknown` | string (must resolve in curve loader) | `_setupCurves` |
| Mode | `mode.current` | `auto` | enum (`auto`, `manual`) | `flowController.handle` source check | | Asset flow unit | `asset.unit` | `m3/h` | unit string | unit policy `output.flow` |
| Position vs parent | `functionality.positionVsParent` | `atEquipment` | enum | child-register payload + event suffix | | Position vs parent | `functionality.positionVsParent` | `atEquipment` | enum (`upstream`, `atEquipment`, `downstream`) | child-register payload + event suffix |
| State time — starting | `time.starting` | `10` (s) | ≥ 0 | FSM timing | | State time — starting | `time.starting` | `10` (s) | ≥ 0 | FSM timing |
| State time — warmingup | `time.warmingup` | `5` (s) | ≥ 0 | FSM timing | | State time — warmingup | `time.warmingup` | `5` (s) | ≥ 0 | FSM timing |
| State time — stopping | `time.stopping` | `5` (s) | ≥ 0 | FSM timing | | State time — stopping | `time.stopping` | `5` (s) | ≥ 0 | FSM timing |
| State time — coolingdown | `time.coolingdown` | `10` (s) | ≥ 0 | FSM timing | | State time — coolingdown | `time.coolingdown` | `10` (s) | ≥ 0 | FSM timing |
| Movement mode | `movement.mode` | `dynspeed` | enum (`staticspeed`, `dynspeed`) | position trajectory | | Movement mode | `movement.mode` | `staticspeed` | enum (`staticspeed`, `dynspeed`) | position trajectory |
| Movement speed | `movement.speed` | `1` | ≤ `maxSpeed` | trajectory rate | | Reaction speed | `movement.speed` | `1` | ≤ `maxSpeed` | trajectory ramp rate (%/s) |
| Position min/max | `position.min` / `position.max` | `0` / `100` | numeric | setpoint clamp | | Process output format | `output.process` | `process` | enum (`process`, `json`, `csv`) | Port 0 formatter |
| Output unit (flow) | `general.unit` | `l/s` | unit string | unit policy `output.flow` | | Database output format | `output.dbase` | `influxdb` | enum (`influxdb`, `json`, `csv`) | Port 1 formatter |
## 10. State chart ## 10. State chart