@strato-automation/node-red-contrib-strato-automation
Version:
Strato Automation Official Node Red Library
166 lines (146 loc) • 8.41 kB
HTML
<script type="text/javascript">
RED.nodes.registerType('ocn-server', {
category: 'config',
color: '#f3b567',
defaults: {
ocn_ip: { value: "localhost", required: true },
mqtt_port: { value: "1883", required: true },
is_mqtt_connected: { value: false },
api_token: { value: "", required: true },
ip_loop_time: { value: 500, required: true, label: "Loop time", validate: RED.validators.number() },
ip_min_send_time: { value: 100, required: true, label: "Min. send time", validate: RED.validators.number() },
ip_timeout: { value: 1000, required: true, label: "Timeout", validate: RED.validators.number()},
ip_retry_count: { value: 2, required: true, label: "Retry count", validate: RED.validators.number() },
mstp_loop_time: { value: 1000, required: true, label: "Loop time", validate: RED.validators.number() },
mstp_min_send_time: { value: 500, required: true, label: "Min. send time", validate: RED.validators.number() },
mstp_timeout: { value: 3000, required: true, label: "Timeout", validate: RED.validators.number()},
mstp_retry_count: { value: 2, required: true, label: "Retry count", validate: RED.validators.number() },
enable_debug: { value: false, required: true },
},
inputs: 0,
outputs: 0,
icon: "cog.svg",
label: function () {
return this.ocn_ip;
}
});
</script>
<script type="text/html" data-template-name="ocn-server">
<div class="form-tips" style="margin-bottom: 20px;">
<b>Connection Settings</b>
</div>
<div class="form-row">
<label for="node-config-input-ocn_ip"><i class="fa fa-globe"></i> OCN IP</label>
<input type="text" id="node-config-input-ocn_ip" placeholder="OCN Server IP">
</div>
<div class="form-row">
<label for="node-config-input-mqtt_port"><i class="fa fa-random"></i> MQTT Port</label>
<input type="text" id="node-config-input-mqtt_port" placeholder="MQTT Port">
</div>
<div class="form-row">
<label for="node-config-input-api_token"><i class="fa fa-key"></i> API Token</label>
<input type="password" id="node-config-input-api_token" placeholder="API Token">
</div>
<div class="form-tips" style="margin: 20px 0;">
<b>IP Communication Settings</b>
</div>
<div style="padding-left: 10px; border-left: 3px solid #ddd;">
<div class="form-row">
<label for="node-config-input-ip_loop_time"><i class="fa fa-clock-o"></i> Loop Time</label>
<input type="text" id="node-config-input-ip_loop_time" placeholder="500">
<span style="margin-left: 5px; color: #999;">ms</span>
</div>
<div class="form-row">
<label for="node-config-input-ip_min_send_time"><i class="fa fa-clock-o"></i> Min Send Time</label>
<input type="text" id="node-config-input-ip_min_send_time" placeholder="100">
<span style="margin-left: 5px; color: #999;">ms</span>
</div>
<div class="form-row">
<label for="node-config-input-ip_timeout"><i class="fa fa-hourglass-half"></i> Timeout</label>
<input type="text" id="node-config-input-ip_timeout" placeholder="1000">
<span style="margin-left: 5px; color: #999;">ms</span>
</div>
<div class="form-row">
<label for="node-config-input-ip_retry_count"><i class="fa fa-repeat"></i> Retry Count</label>
<input type="text" id="node-config-input-ip_retry_count" placeholder="2">
</div>
</div>
<div class="form-tips" style="margin: 20px 0;">
<b>MSTP Communication Settings</b>
</div>
<div style="padding-left: 10px; border-left: 3px solid #ddd;">
<div class="form-row">
<label for="node-config-input-mstp_loop_time"><i class="fa fa-clock-o"></i> Loop Time</label>
<input type="text" id="node-config-input-mstp_loop_time" placeholder="1000">
<span style="margin-left: 5px; color: #999;">ms</span>
</div>
<div class="form-row">
<label for="node-config-input-mstp_min_send_time"><i class="fa fa-clock-o"></i> Min Send Time</label>
<input type="text" id="node-config-input-mstp_min_send_time" placeholder="500">
<span style="margin-left: 5px; color: #999;">ms</span>
</div>
<div class="form-row">
<label for="node-config-input-mstp_timeout"><i class="fa fa-hourglass-half"></i> Timeout</label>
<input type="text" id="node-config-input-mstp_timeout" placeholder="3000">
<span style="margin-left: 5px; color: #999;">ms</span>
</div>
<div class="form-row">
<label for="node-config-input-mstp_retry_count"><i class="fa fa-repeat"></i> Retry Count</label>
<input type="text" id="node-config-input-mstp_retry_count" placeholder="2">
</div>
</div>
<div class="form-tips" style="margin: 20px 0;">
<b>Debug Settings</b>
</div>
<div class="form-row">
<label for="node-config-input-enable_debug"><i class="fa fa-bug"></i> Enable Debug </label>
<input type="checkbox" id="node-config-input-enable_debug" style="width: auto;">
</div>
</script>
<script type="text/html" data-help-name="ocn-server">
<p>A configuration node that establishes connection settings for BACnet/OCN communication. Only one OCN Server node should be present per flow.</p>
<h3>Configuration</h3>
<dl class="message-properties">
<dt>OCN IP <span class="property-type">string</span></dt>
<dd>The IP address of the OCN server (e.g., "localhost" or IP address)</dd>
<dt>MQTT Port <span class="property-type">number</span></dt>
<dd>The MQTT broker port number (default: 1883)</dd>
<dt>API Token <span class="property-type">string</span></dt>
<dd>Authentication token for OCN API access. This authentication token can be generated <a href="https://192.168.0.225/#/api-token" target="_blank">here</a></dd>
</dl>
<h4>IP Settings</h4>
<dl class="message-properties">
<dt>Loop Time <span class="property-type">number</span></dt>
<dd>Time between polling cycles in milliseconds (default: 500)</dd>
<dt>Min. Send Time <span class="property-type">number</span></dt>
<dd>Minimum time between sending requests in milliseconds (default: 100)</dd>
<dt>Timeout <span class="property-type">number</span></dt>
<dd>Request timeout in milliseconds (default: 1000)</dd>
<dt>Retry Count <span class="property-type">number</span></dt>
<dd>Number of retry attempts for failed requests (default: 2)</dd>
</dl>
<h4>MSTP Settings</h4>
<dl class="message-properties">
<dt>Loop Time <span class="property-type">number</span></dt>
<dd>Time between polling cycles in milliseconds (default: 1000)</dd>
<dt>Min. Send Time <span class="property-type">number</span></dt>
<dd>Minimum time between sending requests in milliseconds (default: 500)</dd>
<dt>Timeout <span class="property-type">number</span></dt>
<dd>Request timeout in milliseconds (default: 3000)</dd>
<dt>Retry Count <span class="property-type">number</span></dt>
<dd>Number of retry attempts for failed requests (default: 2)</dd>
</dl>
<h4>Debug Options</h4>
<dl class="message-properties">
<dt>Enable Debug <span class="property-type">boolean</span></dt>
<dd>When enabled, additional debug information will be logged to the debug sidebar</dd>
</dl>
<h3>Details</h3>
<p>The OCN Server node manages the connection to your BACnet/OCN server and provides configuration for both IP and MSTP communication settings. It establishes an MQTT connection for real-time updates and handles API authentication.</p>
<h3>Status</h3>
<ul>
<li><i class="fa fa-circle"></i> <strong>Green:</strong> Connected to MQTT broker</li>
<li><i class="fa fa-circle-o"></i> <strong>Yellow:</strong> Reconnecting to MQTT broker</li>
<li><i class="fa fa-circle-o"></i> <strong>Red:</strong> Disconnected/Offline</li>
</ul>
</script>