From 5281696a21da0ec279d25746dc8e7290b0ab3aaa Mon Sep 17 00:00:00 2001
From: "p.vanderwilt"
Date: Mon, 16 Jun 2025 16:53:07 +0200
Subject: [PATCH] Add recirculation pump node with input handling and flow
management
---
additional_nodes/recirculation-pump.html | 57 ++++++++++++++++++++++++
additional_nodes/recirculation-pump.js | 38 ++++++++++++++++
advanced-reactor.html | 4 +-
advanced-reactor.js | 4 +-
dependencies/reactor_class.js | 6 +--
package.json | 3 +-
6 files changed, 105 insertions(+), 7 deletions(-)
create mode 100644 additional_nodes/recirculation-pump.html
create mode 100644 additional_nodes/recirculation-pump.js
diff --git a/additional_nodes/recirculation-pump.html b/additional_nodes/recirculation-pump.html
new file mode 100644
index 0000000..2027a17
--- /dev/null
+++ b/additional_nodes/recirculation-pump.html
@@ -0,0 +1,57 @@
+
+
+
+
+
diff --git a/additional_nodes/recirculation-pump.js b/additional_nodes/recirculation-pump.js
new file mode 100644
index 0000000..ddf0602
--- /dev/null
+++ b/additional_nodes/recirculation-pump.js
@@ -0,0 +1,38 @@
+module.exports = function(RED) {
+ function recirculation(config) {
+ RED.nodes.createNode(this, config);
+ var node = this;
+
+ let name = config.name;
+ let F2 = parseFloat(config.F2);
+ let inlet = parseInt(config.inlet);
+
+ node.on('input', function(msg, send, done) {
+ switch (msg.topic) {
+ case "Fluent":
+ // conserve volume flow debit
+ let F1 = msg.payload.F;
+ let F_diff = Math.max(F1 - F2, 0);
+ let F2_corr = F1 < F2 ? F1 : F2;
+
+ let msg_F1 = structuredClone(msg);
+ msg_F1.payload.F = F_diff;
+
+ let msg_F2 = structuredClone(msg);
+ msg_F2.payload.F = F2_corr;
+ msg_F2.payload.inlet = inlet;
+
+ send([msg_F1, msg_F2]);
+ break;
+ default:
+ console.log("Unknown topic: " + msg.topic);
+ }
+
+ if (done) {
+ done();
+ }
+ });
+
+ }
+ RED.nodes.registerType("recirculation-pump", recirculation);
+};
diff --git a/advanced-reactor.html b/advanced-reactor.html
index a1a7ea7..6db1abe 100644
--- a/advanced-reactor.html
+++ b/advanced-reactor.html
@@ -1,7 +1,7 @@