diff --git a/pumpingStation.html b/pumpingStation.html
index 749ad8c..1dc7bca 100644
--- a/pumpingStation.html
+++ b/pumpingStation.html
@@ -53,7 +53,16 @@
hasDistance: { value: false },
distance: { value: 0 },
distanceUnit: { value: "m" },
- distanceDescription: { value: "" }
+ distanceDescription: { value: "" },
+
+ // control strategy
+ controlMode: { value: "none" },
+ startLevel: { value: null },
+ stopLevel: { value: null },
+ minFlowLevel: { value: null },
+ maxFlowLevel: { value: null },
+ flowSetpoint: { value: null },
+ flowDeadband: { value: null }
},
@@ -129,6 +138,32 @@
: 0;
}
+ // control mode toggle UI
+ const toggleModeSections = (val) => {
+ document.querySelectorAll('.ps-mode-section').forEach((el) => el.style.display = 'none');
+ const active = document.getElementById(`ps-mode-${val}`);
+ if (active) active.style.display = '';
+ };
+
+ const modeSelect = document.getElementById('node-input-controlMode');
+ if (modeSelect) {
+ modeSelect.value = this.controlMode || 'none';
+ toggleModeSections(modeSelect.value);
+ modeSelect.addEventListener('change', (e) => toggleModeSections(e.target.value));
+ }
+
+ const setNumberField = (id, val) => {
+ const el = document.getElementById(id);
+ if (el) el.value = Number.isFinite(val) ? val : '';
+ };
+
+ setNumberField('node-input-startLevel', this.startLevel);
+ setNumberField('node-input-stopLevel', this.stopLevel);
+ setNumberField('node-input-minFlowLevel', this.minFlowLevel);
+ setNumberField('node-input-maxFlowLevel', this.maxFlowLevel);
+ setNumberField('node-input-flowSetpoint', this.flowSetpoint);
+ setNumberField('node-input-flowDeadband', this.flowDeadband);
+
//------------------- END OF CUSTOM config UI ELEMENTS ------------------- //
},
oneditsave: function () {
@@ -151,6 +186,18 @@
node.refHeight = document.getElementById("node-input-refHeight").value || "";
node.enableDryRunProtection = document.getElementById("node-input-enableDryRunProtection").checked;
node.enableOverfillProtection = document.getElementById("node-input-enableOverfillProtection").checked;
+
+ // control strategy
+ node.controlMode = document.getElementById('node-input-controlMode').value || 'none';
+
+ const parseNum = (id) => parseFloat(document.getElementById(id)?.value);
+ node.startLevel = parseNum('node-input-startLevel');
+ node.stopLevel = parseNum('node-input-stopLevel');
+ node.minFlowLevel = parseNum('node-input-minFlowLevel');
+ node.maxFlowLevel = parseNum('node-input-maxFlowLevel');
+ node.flowSetpoint = parseNum('node-input-flowSetpoint');
+ node.flowDeadband = parseNum('node-input-flowDeadband');
+
},
});
@@ -160,7 +207,7 @@