Restore diffuser in three-layer architecture

This commit is contained in:
Rene De Ren
2026-03-12 16:32:20 +01:00
parent 71d600b4dd
commit 0570df208c
6 changed files with 589 additions and 840 deletions

View File

@@ -1,89 +1,68 @@
<!--
brabantse delta kleuren:
#eaf4f1
#86bbdd
#bad33b
#0c99d9
#a9daee
#0f52a5
#50a8d9
#cade63
#4f8582
#c4cce0
-->
<script type="text/javascript">
RED.nodes.registerType('diffuser',{
category: 'digital twin',
color: '#a9daee',
defaults: {
name: {value:""},
number :{value:0, required:true},
i_elements: {value:0, required:true}, // number of diffusers in this particular zone or segment
i_diff_density: {value:0,required:true}, // what is the diffuser density in the zone in %
i_m_water: {value:0,required:true},
alfaf: {value:0.7,required:true}
},
inputs:1,
outputs:4,
inputLabels: "Usage see manual",
outputLabels: ["process","object","Dbase","parent"],
icon: "font-awesome/fa-tint",
//define label function
label: function() {
return this.name + "_" + this.number || "diffuser";
},
oneditprepare: function() {
},
oneditsave: function(){
}
});
</script>
<script type="text/html" data-template-name="diffuser">
<!-------------------------------------------INPUT NAME / TYPE ----------------------------------------------->
<div class="form-row">
<label for="node-input-name"><i class="fa fa-id-card-o"></i>Name</label>
<input type="text" id="node-input-name" placeholder="Name">
</div>
<div class="form-tips"><b>Tip:</b> Give this a name to identify different zones.</div>
<div class="form-row">
<label for="node-input-number"><i class="fa fa-list-ol"></i>Number</label>
<input type="number" id="node-input-number" placeholder="0">
</div>
<div class="form-row">
<label for="node-input-i_elements"><i class="fa fa-list-ol"></i>number of elements</label>
<input type="number" id="node-input-i_elements" placeholder="1">
</div>
<div class="form-tips"><b>Tip:</b> For this zone there are n amount of elements.</div>
<div class="form-row">
<label for="node-input-i_diff_density"><i class="fa fa-eercast"></i>% density of diffusers</label>
<input type="number" id="node-input-i_diff_density" placeholder="0 %">
</div>
<div class="form-tips"><b>Tip:</b> Identify how much surface area is covered with diffusers.</div>
<div class="form-row">
<label for="node-input-i_m_water"><i class="fa fa-eercast"></i>Water height above the diffuser</label>
<input type="number" id="node-input-i_m_water" placeholder="0 meter">
</div>
<div class="form-row">
<label for="node-input-alfaf"><i class="fa fa-eercast"></i>alfa factor to count for o2 transfer losses in dirty water</label>
<input type="number" id="node-input-alfaf" placeholder="0.7">
</div>
<div class="form-tips"><b>Tip:</b> What is the nominal water height in meters above the diffuser elements.</div>
<!-------------------------------------------INPUT TRANSLATION TO OUTPUT ----------------------------------------------->
</script>
<script type="text/html" data-help-name="diffuser">
<p>A diffuser node</p>
</script>
<script type="text/javascript">
RED.nodes.registerType('diffuser', {
category: 'wbd typical',
color: '#86bbdd',
defaults: {
name: { value: '', required: true },
number: { value: 1, required: true },
i_elements: { value: 1, required: true },
i_diff_density: { value: 2.4, required: true },
i_m_water: { value: 0, required: true },
alfaf: { value: 0.7, required: true },
enableLog: { value: false },
logLevel: { value: 'error' },
},
inputs: 1,
outputs: 3,
inputLabels: ['control'],
outputLabels: ['process', 'dbase', 'parent'],
icon: 'font-awesome/fa-tint',
label: function() {
return this.name ? `${this.name}_${this.number}` : 'diffuser';
},
});
</script>
<script type="text/html" data-template-name="diffuser">
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
<input type="text" id="node-input-name" placeholder="Zone name">
</div>
<div class="form-row">
<label for="node-input-number"><i class="fa fa-list-ol"></i> Number</label>
<input type="number" id="node-input-number" min="1">
</div>
<div class="form-row">
<label for="node-input-i_elements"><i class="fa fa-th"></i> Elements</label>
<input type="number" id="node-input-i_elements" min="1">
</div>
<div class="form-row">
<label for="node-input-i_diff_density"><i class="fa fa-braille"></i> Density %</label>
<input type="number" id="node-input-i_diff_density" step="0.1" min="0">
</div>
<div class="form-row">
<label for="node-input-i_m_water"><i class="fa fa-arrows-v"></i> Water Height</label>
<input type="number" id="node-input-i_m_water" step="0.1" min="0">
</div>
<div class="form-row">
<label for="node-input-alfaf"><i class="fa fa-flask"></i> Alfa Factor</label>
<input type="number" id="node-input-alfaf" step="0.01" min="0">
</div>
<div class="form-row">
<label for="node-input-enableLog"><i class="fa fa-book"></i> Enable Log</label>
<input type="checkbox" id="node-input-enableLog" style="width: auto;">
</div>
<div class="form-row">
<label for="node-input-logLevel"><i class="fa fa-signal"></i> Log Level</label>
<select id="node-input-logLevel">
<option value="debug">debug</option>
<option value="info">info</option>
<option value="warn">warn</option>
<option value="error">error</option>
</select>
</div>
</script>
<script type="text/html" data-help-name="diffuser">
<p>Diffused aeration device model.</p>
</script>