Compare commits
1 Commits
dev-lzm
...
9427b64bbe
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9427b64bbe |
@@ -5,8 +5,6 @@
|
|||||||
// handler (the legacy nodeClass did it inline) — anything else inbound
|
// handler (the legacy nodeClass did it inline) — anything else inbound
|
||||||
// is passed straight through to source.handleInput.
|
// is passed straight through to source.handleInput.
|
||||||
|
|
||||||
const { convert } = require('generalFunctions');
|
|
||||||
|
|
||||||
exports.cmdStart = (source, msg) => {
|
exports.cmdStart = (source, msg) => {
|
||||||
source.handleInput('i_start', Boolean(msg.payload));
|
source.handleInput('i_start', Boolean(msg.payload));
|
||||||
};
|
};
|
||||||
@@ -20,17 +18,15 @@ exports.setRain = (source, msg) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
exports.dataFlow = (source, msg, ctx) => {
|
exports.dataFlow = (source, msg, ctx) => {
|
||||||
|
// The registry has already normalised any accepted shape (number, numeric
|
||||||
|
// string, or { value, unit }) to a number in m3/h and tagged msg.unit.
|
||||||
const log = ctx?.logger || source.logger;
|
const log = ctx?.logger || source.logger;
|
||||||
const value = Number(msg.payload?.value);
|
const value = Number(msg.payload);
|
||||||
const unit = msg.payload?.unit;
|
if (!Number.isFinite(value)) {
|
||||||
if (!Number.isFinite(value) || !unit) {
|
log?.warn?.(`data.flow payload must be numeric, got '${JSON.stringify(msg.payload)}'.`);
|
||||||
log?.warn?.('data.flow payload must include numeric value and unit.');
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let converted = value;
|
source.handleInput('input_q', { value, unit: msg.unit || 'm3/h' });
|
||||||
try { converted = convert(value).from(unit).to('m3/h'); }
|
|
||||||
catch (err) { log?.warn?.(`data.flow unit conversion failed: ${err.message}`); return; }
|
|
||||||
source.handleInput('input_q', { value: converted, unit: 'm3/h' });
|
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.setMode = (source, msg) => {
|
exports.setMode = (source, msg) => {
|
||||||
|
|||||||
@@ -32,11 +32,11 @@ module.exports = [
|
|||||||
{
|
{
|
||||||
topic: 'data.flow',
|
topic: 'data.flow',
|
||||||
aliases: ['input_q'],
|
aliases: ['input_q'],
|
||||||
payloadSchema: { type: 'object' },
|
// any: number, numeric string, or { value, unit } — the registry normalises
|
||||||
// Compound payload `{value, unit}` — handler converts internally to m3/h.
|
// all of them to a number in `unit` (m3/h) before the handler runs.
|
||||||
// Registry-level normalisation is skipped (the handler reads payload.value /
|
payloadSchema: { type: 'any' },
|
||||||
// payload.unit directly; flattening would break it).
|
unit: 'm3/h',
|
||||||
description: 'Push the upstream flow measurement (payload: {value, unit}).',
|
description: 'Push the upstream flow measurement (payload: number or {value, unit}).',
|
||||||
handler: handlers.dataFlow,
|
handler: handlers.dataFlow,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ The registry lives in `src/commands/index.js`. Each descriptor maps a canonical
|
|||||||
| `cmd.start` | `i_start` | any | — | Trigger / release the sampler start gate. |
|
| `cmd.start` | `i_start` | any | — | Trigger / release the sampler start gate. |
|
||||||
| `set.schedule` | `monsternametijden` | any | — | Replace the sampling-times schedule. |
|
| `set.schedule` | `monsternametijden` | any | — | Replace the sampling-times schedule. |
|
||||||
| `set.rain` | `rain_data` | any | — | Push current rain-event data into the sampler logic. |
|
| `set.rain` | `rain_data` | any | — | Push current rain-event data into the sampler logic. |
|
||||||
| `data.flow` | `input_q` | `object` | — | Push the upstream flow measurement (payload: {value, unit}). |
|
| `data.flow` | `input_q` | any | `volumeFlowRate` (default `m3/h`) | Push the upstream flow measurement (payload: number or {value, unit}). |
|
||||||
| `set.mode` | `setMode` | any | — | Switch the monster between auto / manual modes. |
|
| `set.mode` | `setMode` | any | — | Switch the monster between auto / manual modes. |
|
||||||
| `set.model-prediction` | `model_prediction` | any | — | Push the upstream rain-prediction snapshot used by the sampler. |
|
| `set.model-prediction` | `model_prediction` | any | — | Push the upstream rain-prediction snapshot used by the sampler. |
|
||||||
| `child.register` | `registerChild` | `string` | — | Register a child node (typically a measurement) with this monster. |
|
| `child.register` | `registerChild` | `string` | — | Register a child node (typically a measurement) with this monster. |
|
||||||
|
|||||||
Reference in New Issue
Block a user