@strato-automation/node-red-contrib-strato-automation
Version:
Strato Automation Official Node Red Library
122 lines (109 loc) • 5.04 kB
HTML
<script type="text/javascript">
RED.nodes.registerType('ocn-diagnostic', {
category: 'Strato Automation',
color: '#f3b567',
defaults: {
ocn_server_node: { type: "ocn-server", required: true, label: "ocn server" },
name: { value: "", label: "Name" },
},
inputs: 0,
outputs: 1,
icon: "font-awesome/fa-search",
paletteLabel: function() {
return "Diagnostic";
},
label: function () {
return (this.name)
},
labelStyle: function () {
return this.name ? "node_label_italic" : "";
},
});
</script>
<script type="text/html" data-template-name="ocn-diagnostic">
<!-- Basic Settings -->
<div class="form-tips" style="margin-bottom: 20px;">
<b>Basic Settings</b>
</div>
<div class="form-row">
<label for="node-input-name"><i class="fa fa-bookmark"></i> Name</label>
<input type="text" id="node-input-name" placeholder="Optional name for this diagnostic node">
</div>
<!-- Connection Settings -->
<div class="form-tips" style="margin: 20px 0;">
<b>Connection Settings</b>
</div>
<div style="padding-left: 10px; border-left: 3px solid #ddd;">
<div class="form-row">
<label for="node-input-ocn_server_node"><i class="fa fa-server"></i> OCN Server</label>
<input type="ocn-server" id="node-input-ocn_server_node">
</div>
</div>
<div class="form-tips" style="margin-top: 20px;">
<p><i class="fa fa-info-circle"></i> Tip: This node automatically monitors and reports statistics about BACnet communication performance.</p>
</div>
</script>
<script type="text/html" data-help-name="ocn-diagnostic">
<p>A diagnostic node that monitors and reports statistics about BACnet write operations through the OCN Server.</p>
<h3>Outputs</h3>
<dl class="message-properties">
<dt>payload <span class="property-type">object</span></dt>
<dd>
Statistics object containing:
<ul>
<li><code>deviceInstance</code> - The BACnet device instance number</li>
<li><code>objectCount</code> - Number of objects written in this batch</li>
<li><code>objects</code> - Array of written objects with details:
<ul>
<li><code>objectType</code> - BACnet object type</li>
<li><code>objectInstance</code> - Object instance number</li>
<li><code>propertyId</code> - Property ID (e.g., 85 for Present_Value)</li>
<li><code>priority</code> - Write priority level</li>
<li><code>value</code> - Written value</li>
</ul>
</li>
<li><code>time</code> - Time taken for the write operation in milliseconds</li>
<li><code>status</code> - HTTP response status code</li>
</ul>
</dd>
</dl>
<h3>Configuration</h3>
<dl class="message-properties">
<dt>Name <span class="property-type">string</span></dt>
<dd>Optional name to identify the node in the flow</dd>
<dt>OCN Server <span class="property-type">config</span></dt>
<dd>The OCN Server configuration node to monitor</dd>
</dl>
<h3>Details</h3>
<p>This node monitors write operations performed by the PresentValueUpdateService, which handles batched writes to BACnet devices. It provides detailed information about:</p>
<h4>Monitored Information</h4>
<ul>
<li><b>Write Operations:</b> Details of each batch write operation</li>
<li><b>Response Times:</b> Time taken for write operations to complete</li>
<li><b>Success Status:</b> HTTP status codes indicating success or failure</li>
<li><b>Object Details:</b> Complete information about written objects</li>
</ul>
<h4>Operation</h4>
<p>The node:</p>
<ul>
<li>Monitors both IP and MSTP write operations</li>
<li>Reports statistics for each batch write operation</li>
<li>Provides detailed object-level information</li>
<li>Includes timing and status information</li>
</ul>
<h4>Write Batching</h4>
<p>The service automatically batches writes with the following limits:</p>
<ul>
<li>IP devices: Maximum 40 objects per batch</li>
<li>MSTP devices: Maximum 15 objects per batch</li>
</ul>
<h4>Error Handling</h4>
<p>If the PresentValueUpdateService is not available, the node will log an error and stop operation. Ensure that an OCN Server node is properly configured in the flow.</p>
<p>This diagnostic information is valuable for:</p>
<ul>
<li>Monitoring write operation performance</li>
<li>Debugging communication issues</li>
<li>Verifying write operations</li>
<li>Analyzing batch processing efficiency</li>
</ul>
</script>