UNPKG

@halsystems/red-bacnet

Version:
108 lines (95 loc) 5.37 kB
<script type="text/javascript"> RED.nodes.registerType('discover point', { category: 'redbacnet', color: '#b5e6ff', defaults: { name: { value: "" }, client: { type: "bacnet client", required: true }, discoverMode: { value: 0, required: true, validate: RED.validators.number() }, readMethod: { value: 2, required: true, validate: RED.validators.number() }, groupExportDeviceCount: { value: 30000, required: true, validate: RED.validators.number() }, maxConcurrentDeviceRead: { value: 3, required: true, validate: RED.validators.number() }, maxConcurrentSinglePointRead: { value: 10, required: true, validate: RED.validators.number() }, }, inputs: 1, outputs: 1, icon: "hal-systems.png", label: function () { return this.name || "discover point"; } }); </script> <script type="text/html" data-template-name="discover 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-discoverMode"><i class="fa fa-list"></i> Discover Mode</label> <select id="node-input-discoverMode"> <option value="0">Supported Objects Only</option> <option value="1">All Objects</option> </select> </div> <div class="form-row"> <label for="node-input-readMethod"><i class="fa fa-list"></i> Read Method</label> <select id="node-input-readMethod"> <option value="0">Read Single Only</option> <option value="1">Read Multiple Fallback Single</option> <option value="2">Comprehensive Read</option> </select> </div> <div class="form-row"> <label for="node-input-groupExportDeviceCount"><i class="fa fa-tag"></i> Group Export Device Count</label> <input type="number" id="node-input-groupExportDeviceCount" placeholder="50", min="10", max="1000"> </div> <div class="form-row"> <label for="node-input-maxConcurrentDeviceRead"><i class="fa fa-tag"></i> Max Concurrent Device Read</label> <input type="number" id="node-input-maxConcurrentDeviceRead" placeholder="3" , min="1" , max="1000"> </div> <div class="form-row"> <label for="node-input-maxConcurrentSinglePointRead"><i class="fa fa-tag"></i> Max Concurrent Single Point Read</label> <input type="number" id="node-input-maxConcurrentSinglePointRead" placeholder="10" , min="1" , max="1000"> </div> </script> <script type="text/html" data-help-name="discover point"> <p>Discover BACnet points</p> <h3>Config</h3> <dl class="message-properties"> <dt>client<span class="property-type">string</span></dt> <dd> BACnet Client</dd> <dt>discoverMode<span class="property-type">number</span></dt> <dd> <b>Supported Objects Only</b>: AI, AO, AV, BI, BO, BV, MSI, MSO, MSV</dd> <dd> <b>All Objects</b>: All object types</dd> <dt>readMethod<span class="property-type">number</span></dt> <dd> <b>Read Single Only</b>: use <code>readProperty</code></dd> <dd> <b>Read Multiple Fallback Single</b>: try <code>readPropertyMultiple</code> with consevative query size, fallback to <code>readProperty</code> if failed</dd> <dd> <b>Comprehensive Read</b>: try <code>readPropertyMultiple</code> twice with high and conservative query size, fallback to <code>readProperty</code> if failed</dd> <dt>groupExportDeviceCount<span class="property-type">number</span></dt> <dd> Emit <code>msg.payload</code> once discovered devices count reaches this limit</dd> <dt>maxConcurrentDeviceRead<span class="property-type">number</span></dt> <dd> Devices count to discover simultaneously.</dd> <dd> <b> USE WITH CAUTION!</b> Reduce to low value on a slow network</dd> <dt>maxConcurrentSinglePointRead<span class="property-type">number</span></dt> <dd> Number of points to read simultaneously when using <code>readProperty</code> mode</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 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>Outputs</h3> <dl class="message-properties"> <dt>msg.payload <span class="property-type">array</span></dt> <dd>Discovered Points.</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>