measurement: d6f8af4 -> <new>
Fixes a regression in the previous measurement editor commit where a
const Temporal Dead Zone error in oneditprepare aborted the function
before the asset / logger / position menu init ran. Menus are now
kicked off first, mode logic is guarded with try/catch and null-checks.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
measurement: 495b4cf -> d6f8af4
Makes Input Mode the top-level hierarchy in the editor: analog-only and
digital-only field blocks toggle visibility live based on the dropdown,
legacy nodes default to 'analog', channels JSON gets live validation,
and runtime logs an actionable warning when the payload shape doesn't
match the selected mode.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Bumps:
- nodes/generalFunctions 75d16c6 -> e50be2e (permissive unit check + measurement schema additions)
- nodes/measurement f7c3dc2 -> 495b4cf (digital mode + dispatcher fix + 59 new tests + rewritten README + UI)
Wiki:
- wiki/manuals/nodes/measurement.md — new user manual covering analog and
digital modes, topic reference, smoothing/outlier methods, unit policy,
and the pre-fix dispatcher bug advisory.
- wiki/sessions/2026-04-13-measurement-digital-mode.md — session note with
findings, fix scope, test additions, and dual-mode E2E results.
- wiki/index.md — links both pages and adds the missing 2026-04-13
rotatingMachine session entry that was omitted from the earlier commit.
Status: measurement is now trial-ready in both analog and digital modes.
71/71 unit tests green (was 12), dual-mode E2E on live Dockerized
Node-RED verifies analog regression and a three-channel MQTT-style
payload (temperature/humidity/pressure) dispatching independently with
per-channel smoothing.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Bumps:
- nodes/generalFunctions 024db55 -> 75d16c6 (FSM abort recovery + schema sync)
- nodes/rotatingMachine 07af7ce -> 17b8887 (interruptible sequences, dual-curve tests, rewritten README)
Wiki:
- wiki/manuals/nodes/rotatingMachine.md — new user manual covering inputs,
outputs, state machine, supported curves, and troubleshooting.
- wiki/sessions/2026-04-13-rotatingMachine-trial-ready.md — session note
with findings, fixes, test additions, and dual-curve E2E results.
- wiki/index.md — link both and bump updated date.
Status: rotatingMachine is now trial-ready. 91/91 unit tests green, live
Docker E2E verifies shutdown/emergency-stop during ramps and prediction
behaviour across both shipped pump curves (hidrostal-H05K-S03R,
hidrostal-C5-D03R-SHN1).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
rotatingMachine:
- Safety fixes: async input handler, emergencyStop case fix, null guards,
listener cleanup, tick loop race condition, editor timeout
- Prediction: remove efficiency rounding (was breaking NCog/BEP), fix
variant reads, curve anomaly detection
- 43 new tests (76 total)
machineGroupControl:
- Critical: fix flowmovement unit mismatch (m³/s sent where m³/h expected,
pumps never moved from minimum)
- Fix absolute scaling comparison bug, empty Qd block, empty-machines guards
- Add marginal-cost refinement loop: reduces gap to brute-force optimum
from 2.1% to <0.1%
- 2 new test files with NCog distribution and power comparison tests
generalFunctions:
- Fix 3 anomalous power values in hidrostal-H05K-S03R curve data
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- generalFunctions: fix infinite recursion in validateSchema when version string is in schema
- rotatingMachine: fix missing closing brace in emergencystop case block
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Fix Dockerfile.e2e to install EVOLV properly in Node-RED /data/
- Add measurement node E2E test flow with scaling (4-20mA to 0-5m)
- Add Grafana health check to run-e2e.sh
- Guard pumpingStation demo IIFE with require.main check
- All 10 EVOLV nodes load successfully in containerized Node-RED
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Update all submodule URLs from gitea.centraal.wbd-rd.nl to gitea.wbd-rd.nl
- Add settler as proper submodule in .gitmodules
- Add agent skills, function anchors, decisions, and improvements
- Add Docker configuration and scripts
- Add manuals and third_party docs
- Update .gitignore with secrets and build artifacts
- Remove stale .tgz build artifact
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>