@halsystems/red-bacnet
Version:
NodeRED BACnet IP client
76 lines (65 loc) • 3.5 kB
HTML
<script type="text/javascript">
RED.nodes.registerType('write point', {
category: 'redbacnet',
color: '#b5e6ff',
defaults: {
name: { value: "" },
client: { type: "bacnet client", required: true },
maxConcurrentDeviceWrite: { value: 3, required: true, validate: RED.validators.number() },
maxConcurrentPointWrite: { value: 5, required: true, validate: RED.validators.number() },
},
inputs: 1,
outputs: 1,
icon: "hal-systems.png",
label: function () {
return this.name || "write point";
}
});
</script>
<script type="text/html" data-template-name="write point">
<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="Name">
</div>
<div class="form-row">
<label for="node-input-client"><i class="fa fa-tag"></i> Client</label>
<input type="text" id="node-input-client">
</div>
<div class="form-row">
<label for="node-input-maxConcurrentDeviceWrite"><i class="fa fa-tag"></i> Max Concurrent Device Write</label>
<input type="number" id="node-input-maxConcurrentDeviceWrite" placeholder="3" , min="1" , max="1000">
</div>
<div class="form-row">
<label for="node-input-maxConcurrentPointWrite"><i class="fa fa-tag"></i> Max Concurrent Point Write</label>
<input type="number" id="node-input-maxConcurrentPointWrite" placeholder="5" , min="1" , max="1000">
</div>
</script>
<script type="text/html" data-help-name="write point">
<p>Write BACnet points</p>
<h3>Config</h3>
<dl class="message-properties">
<dt>client<span class="property-type">string</span></dt>
<dd> BACnet Client</dd>
<dt>maxConcurrentDeviceWrite<span class="property-type">number</span></dt>
<dd> Devices count to write simultaneously.</dd>
<dd> <b> USE WITH CAUTION!</b> Reduce to low value on a slow network</dd>
<dt>maxConcurrentPointWrite<span class="property-type">number</span></dt>
<dd> Number of points to write simultaneously</dd>
<dd> <b>USE WITH CAUTION!</b> Reduce to low value if field BACnet device is underpowered</dd>
</dl>
<h3>Inputs</h3>
<dl class="message-properties">
<dt>msg.devices <span class="property-type">array</span></dt>
<dd> A list of devices generated from discover device node (modify values if required)</dd>
<dt>msg.points <span class="property-type">array</span></dt>
<dd> A list of points generated from discover point node (modify values if required)</dd>
<dd> Points to be written MUST be <code>priority</code> set to 1-16</dd>
<dt>msg.writePoints <span class="property-type">object</span></dt>
<dd> Format: {<deviceName>.<pointName>: <value>, ...}</dd>
<dd> Eg: {'VAV_1.ZoneTemp_SP': 21.5, ...}</dd>
<dt class="optional">msg.id <span class="property-type">string | number</span></dt>
<dd> Job ID. Default to <code>task</code> if not provided.</dd>
</dl>
<h3>Details</h3>
<p>If node is triggered while existing job is running, new job will be coalesced if <code>msg.id</code> are identical, else new job will be put in queue until current job is completed.</p>
</script>