UNPKG

node-red-contrib-iiot-opcua

Version:

An Industrial IoT OPC UA toolbox contribution package for Node-RED based on node-opcua.

2,103 lines (2,102 loc) 55.7 kB
[ { "id": "5bf22da3.a9afec", "type": "tab", "label": "OPC UA IIoT Tests", "disabled": false, "info": "" }, { "id": "83d0ab4b.0352a", "type": "OPCUA-IIoT-Server-Command", "z": "5bf22da3.a9afec", "commandtype": "restart", "nodeId": "", "name": "restart", "x": 410, "y": 140, "wires": [ [ "d5ea78a2.b5fae8", "19a20cdd.2c3a23" ] ] }, { "id": "a1a887b2.56248", "type": "OPCUA-IIoT-Server-ASO", "z": "5bf22da3.a9afec", "nodeId": "ns=1;s=TestFolder", "browsename": "TestFolder", "displayname": "Test Folder", "objecttype": "FolderType", "datatype": "", "value": "", "referenceNodeId": "ns=0;i=85", "referencetype": "Organizes", "name": "", "x": 410, "y": 100, "wires": [ [ "d5ea78a2.b5fae8", "19a20cdd.2c3a23" ] ] }, { "id": "f1c25fc1.e35aa8", "type": "OPCUA-IIoT-Server-Command", "z": "5bf22da3.a9afec", "commandtype": "deleteNode", "nodeId": "ns=1;s=TestFolder", "name": "Delete", "x": 410, "y": 180, "wires": [ [ "d5ea78a2.b5fae8", "19a20cdd.2c3a23" ] ] }, { "id": "df06877.2d126f8", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 770, "y": 140, "wires": [] }, { "id": "e36b7808.f4ed5", "type": "OPCUA-IIoT-Inject", "z": "5bf22da3.a9afec", "injectType": "inject", "payload": "", "payloadType": "date", "topic": "", "repeat": "", "crontab": "", "once": true, "startDelay": "15", "name": "", "addressSpaceItems": [], "x": 170, "y": 100, "wires": [ [ "a1a887b2.56248" ] ] }, { "id": "c6d5b865.282ef8", "type": "OPCUA-IIoT-Inject", "z": "5bf22da3.a9afec", "injectType": "read", "payload": "", "payloadType": "date", "topic": "", "repeat": "", "crontab": "", "once": true, "startDelay": 15, "name": "Server Info", "addressSpaceItems": [ { "name": "ServerStatus", "nodeId": "ns=0;i=2256", "datatypeName": "" }, { "name": "ServerDiagnostic", "nodeId": "ns=0;i=2274", "datatypeName": "" } ], "x": 170, "y": 960, "wires": [ [ "7cab88ff.58b648" ] ] }, { "id": "bb76bd49.3dad4", "type": "OPCUA-IIoT-Read", "z": "5bf22da3.a9afec", "attributeId": "0", "maxAge": 1, "depth": 1, "connector": "73f28bc6.74eba4", "name": "Read Structures", "justValue": false, "showStatusActivities": false, "showErrors": false, "parseStrings": false, "x": 540, "y": 900, "wires": [ [ "4718f4da.ca70bc" ] ] }, { "id": "4718f4da.ca70bc", "type": "OPCUA-IIoT-Response", "z": "5bf22da3.a9afec", "name": "", "showStatusActivities": false, "showErrors": false, "x": 720, "y": 900, "wires": [ [ "55546e6e.b67ba" ] ] }, { "id": "55546e6e.b67ba", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 870, "y": 900, "wires": [] }, { "id": "7cab88ff.58b648", "type": "OPCUA-IIoT-Browser", "z": "5bf22da3.a9afec", "connector": "73f28bc6.74eba4", "nodeId": "", "name": "", "justValue": false, "sendNodesToRead": false, "sendNodesToListener": false, "showStatusActivities": false, "showErrors": false, "x": 340, "y": 960, "wires": [ [ "bb76bd49.3dad4", "c10e6e5.6404b1", "a2b97b2c.d97fc", "a4f5383a.e93818" ] ] }, { "id": "c10e6e5.6404b1", "type": "OPCUA-IIoT-Read", "z": "5bf22da3.a9afec", "attributeId": "13", "maxAge": 1, "depth": 1, "connector": "73f28bc6.74eba4", "name": "Read Structures", "justValue": true, "showStatusActivities": false, "showErrors": false, "parseStrings": false, "x": 540, "y": 960, "wires": [ [ "ef00c4f.8b761b8" ] ] }, { "id": "ef00c4f.8b761b8", "type": "OPCUA-IIoT-Response", "z": "5bf22da3.a9afec", "name": "", "showStatusActivities": false, "showErrors": false, "x": 720, "y": 960, "wires": [ [ "7bfc9adf.8718cc" ] ] }, { "id": "7bfc9adf.8718cc", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 870, "y": 960, "wires": [] }, { "id": "a2b97b2c.d97fc", "type": "OPCUA-IIoT-Read", "z": "5bf22da3.a9afec", "attributeId": "130", "maxAge": 1, "depth": 1, "connector": "73f28bc6.74eba4", "name": "Read Structures", "justValue": false, "showStatusActivities": false, "showErrors": false, "parseStrings": false, "x": 540, "y": 1020, "wires": [ [ "c8e3b987.803a08" ] ] }, { "id": "c8e3b987.803a08", "type": "OPCUA-IIoT-Response", "z": "5bf22da3.a9afec", "name": "", "showStatusActivities": false, "showErrors": false, "x": 720, "y": 1020, "wires": [ [ "31dd879f.0e8c48" ] ] }, { "id": "31dd879f.0e8c48", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 870, "y": 1020, "wires": [] }, { "id": "a4f5383a.e93818", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 510, "y": 1080, "wires": [] }, { "id": "56625b2d.aae534", "type": "OPCUA-IIoT-Inject", "z": "5bf22da3.a9afec", "injectType": "inject", "payload": "", "payloadType": "date", "topic": "", "repeat": "", "crontab": "", "once": false, "startDelay": "", "name": "", "addressSpaceItems": [], "x": 160, "y": 140, "wires": [ [ "83d0ab4b.0352a" ] ] }, { "id": "4dfb1ba4.7ec6cc", "type": "OPCUA-IIoT-Inject", "z": "5bf22da3.a9afec", "injectType": "inject", "payload": "", "payloadType": "date", "topic": "", "repeat": "", "crontab": "", "once": false, "startDelay": "", "name": "", "addressSpaceItems": [], "x": 160, "y": 180, "wires": [ [ "f1c25fc1.e35aa8" ] ] }, { "id": "eb93b303.c4a11", "type": "OPCUA-IIoT-Event", "z": "5bf22da3.a9afec", "eventType": "BaseEventType", "eventTypeLabel": "BaseEventType (i=2041)", "resultType": "all", "queueSize": "1000", "usingListener": true, "name": "Base Events", "showStatusActivities": false, "showErrors": false, "x": 430, "y": 300, "wires": [ [ "f0d8f6f7.497cf" ] ] }, { "id": "484fb4eb.33a56c", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 770, "y": 260, "wires": [] }, { "id": "dee7c0d3.35516", "type": "OPCUA-IIoT-Inject", "z": "5bf22da3.a9afec", "injectType": "listen", "payload": "200", "payloadType": "num", "topic": "", "repeat": "", "crontab": "", "once": true, "startDelay": "15", "name": "listen with 200 ms", "addressSpaceItems": [ { "name": "Tanks", "nodeId": "ns=1;i=1000", "datatypeName": "" }, { "name": "Server", "nodeId": "ns=0;i=2253", "datatypeName": "" } ], "x": 190, "y": 300, "wires": [ [ "eb93b303.c4a11" ] ] }, { "id": "f0d8f6f7.497cf", "type": "OPCUA-IIoT-Listener", "z": "5bf22da3.a9afec", "connector": "3fa097ed.9d44c8", "action": "events", "queueSize": "100", "name": "", "topic": "", "justValue": true, "useGroupItems": false, "showStatusActivities": false, "showErrors": true, "x": 600, "y": 300, "wires": [ [ "484fb4eb.33a56c", "50a8323e.8fc5dc" ] ] }, { "id": "6a2ad0f1.65c1e", "type": "OPCUA-IIoT-Listener", "z": "5bf22da3.a9afec", "connector": "73f28bc6.74eba4", "action": "subscribe", "queueSize": 10, "name": "", "topic": "", "justValue": true, "useGroupItems": false, "showStatusActivities": false, "showErrors": false, "x": 520, "y": 600, "wires": [ [ "fdde5a24.1ccc7", "f67b4486.81c118", "38f783a3.82e1d4", "b68d18a.99099e8", "4b72d0e.0a02bb", "3cf6e31a.2c08cc" ] ] }, { "id": "f33823f5.4f1118", "type": "OPCUA-IIoT-Inject", "z": "5bf22da3.a9afec", "injectType": "listen", "payload": "{ \"interval\": 500, \"queueSize\": 10 }", "payloadType": "json", "topic": "", "repeat": "", "crontab": "", "once": true, "startDelay": "15", "name": "Start Abo", "addressSpaceItems": [ { "name": "Counter", "nodeId": "ns=1;s=Counter", "datatypeName": "" }, { "name": "FullCounter", "nodeId": "ns=1;s=FullCounter", "datatypeName": "" } ], "x": 160, "y": 600, "wires": [ [ "6a2ad0f1.65c1e" ] ] }, { "id": "f67b4486.81c118", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 710, "y": 720, "wires": [] }, { "id": "fdde5a24.1ccc7", "type": "OPCUA-IIoT-Response", "z": "5bf22da3.a9afec", "name": "", "showStatusActivities": false, "showErrors": false, "x": 720, "y": 420, "wires": [ [ "cad0957a.e297d8" ] ] }, { "id": "cad0957a.e297d8", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 930, "y": 420, "wires": [] }, { "id": "b1280c29.1f77b8", "type": "OPCUA-IIoT-Node", "z": "5bf22da3.a9afec", "injectType": "listen", "nodeId": "ns=0;i=2277", "datatype": "NodeId", "value": "", "name": "", "topic": "", "showErrors": false, "x": 330, "y": 460, "wires": [ [ "6a2ad0f1.65c1e" ] ] }, { "id": "aec03b56.9a542", "type": "OPCUA-IIoT-Node", "z": "5bf22da3.a9afec", "injectType": "listen", "nodeId": "ns=1;s=TestReadWrite", "datatype": "NodeId", "value": "", "name": "", "topic": "", "showErrors": false, "x": 330, "y": 540, "wires": [ [ "6a2ad0f1.65c1e" ] ] }, { "id": "ca6564b5.4ffd28", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 930, "y": 600, "wires": [] }, { "id": "c51afc0f.dc0238", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 930, "y": 480, "wires": [] }, { "id": "2363ff27.a203e", "type": "inject", "z": "5bf22da3.a9afec", "name": "", "topic": "", "payload": "", "payloadType": "date", "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "x": 160, "y": 460, "wires": [ [ "b1280c29.1f77b8" ] ] }, { "id": "579dc321.76658c", "type": "inject", "z": "5bf22da3.a9afec", "name": "", "topic": "", "payload": "", "payloadType": "date", "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "x": 160, "y": 540, "wires": [ [ "aec03b56.9a542" ] ] }, { "id": "feffc44d.496ce8", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 930, "y": 540, "wires": [] }, { "id": "38f783a3.82e1d4", "type": "OPCUA-IIoT-Result-Filter", "z": "5bf22da3.a9afec", "nodeId": "ns=1;s=FullCounter", "datatype": "UInt32", "fixedValue": false, "fixPoint": 2, "withPrecision": false, "precision": 2, "entry": 1, "justValue": true, "withValueCheck": false, "minvalue": "", "maxvalue": "", "defaultvalue": "", "topic": "", "name": "", "showErrors": false, "x": 750, "y": 600, "wires": [ [ "ca6564b5.4ffd28" ] ] }, { "id": "b68d18a.99099e8", "type": "OPCUA-IIoT-Result-Filter", "z": "5bf22da3.a9afec", "nodeId": "ns=0;i=2277", "datatype": "UInt32", "fixedValue": false, "fixPoint": 2, "withPrecision": false, "precision": 2, "entry": 1, "justValue": true, "withValueCheck": false, "minvalue": "", "maxvalue": "", "defaultvalue": "", "topic": "", "name": "", "showErrors": false, "x": 730, "y": 540, "wires": [ [ "feffc44d.496ce8" ] ] }, { "id": "4b72d0e.0a02bb", "type": "OPCUA-IIoT-Result-Filter", "z": "5bf22da3.a9afec", "nodeId": "ns=1;s=TestReadWrite", "datatype": "Double", "fixedValue": true, "fixPoint": 2, "withPrecision": false, "precision": 2, "entry": 1, "justValue": true, "withValueCheck": false, "minvalue": "", "maxvalue": "", "defaultvalue": "", "topic": "", "name": "", "showErrors": false, "x": 760, "y": 480, "wires": [ [ "c51afc0f.dc0238" ] ] }, { "id": "3cf6e31a.2c08cc", "type": "OPCUA-IIoT-Result-Filter", "z": "5bf22da3.a9afec", "nodeId": "ns=1;s=Counter", "datatype": "UInt16", "fixedValue": false, "fixPoint": 2, "withPrecision": false, "precision": 2, "entry": 1, "justValue": true, "withValueCheck": false, "minvalue": "", "maxvalue": "", "defaultvalue": "", "topic": "", "name": "", "showErrors": false, "x": 740, "y": 660, "wires": [ [ "c121812d.cfe708" ] ] }, { "id": "c121812d.cfe708", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 930, "y": 660, "wires": [] }, { "id": "f68549f5.4b1f4", "type": "OPCUA-IIoT-Write", "z": "5bf22da3.a9afec", "connector": "73f28bc6.74eba4", "name": "", "showStatusActivities": false, "showErrors": true, "x": 510, "y": 1460, "wires": [ [ "6befc559.81c414", "1ae2b36d.653235", "1880aefa.5f7651" ] ] }, { "id": "824749b.0979638", "type": "OPCUA-IIoT-Inject", "z": "5bf22da3.a9afec", "injectType": "write", "payload": "", "payloadType": "date", "topic": "", "repeat": "2", "crontab": "", "once": true, "startDelay": "15", "name": "TestReadWrite", "addressSpaceItems": [ { "name": "TestReadWrite", "nodeId": "ns=1;s=TestReadWrite", "datatypeName": "Double" } ], "x": 190, "y": 1460, "wires": [ [ "5e93303c.3cae08" ] ] }, { "id": "6befc559.81c414", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 670, "y": 1520, "wires": [] }, { "id": "c86446de.c90d98", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 510, "y": 1520, "wires": [] }, { "id": "1ae2b36d.653235", "type": "OPCUA-IIoT-Response", "z": "5bf22da3.a9afec", "name": "", "x": 680, "y": 1460, "wires": [ [ "b11bbae9.15067" ] ] }, { "id": "b11bbae9.15067", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "x": 830, "y": 1460, "wires": [] }, { "id": "5e93303c.3cae08", "type": "data-generator", "z": "5bf22da3.a9afec", "name": "dGen", "field": "valuesToWrite", "fieldType": "msg", "syntax": "json", "template": "[{{int -10000.44 12000.66}}]", "x": 370, "y": 1460, "wires": [ [ "f68549f5.4b1f4", "c86446de.c90d98" ] ] }, { "id": "399e03b7.2de5bc", "type": "comment", "z": "5bf22da3.a9afec", "name": "install node-red-node-data-generator", "info": "", "x": 410, "y": 1400, "wires": [] }, { "id": "1880aefa.5f7651", "type": "OPCUA-IIoT-Read", "z": "5bf22da3.a9afec", "attributeId": "13", "maxAge": 1, "depth": 1, "connector": "73f28bc6.74eba4", "name": "", "justValue": true, "showStatusActivities": false, "showErrors": false, "parseStrings": false, "x": 670, "y": 1400, "wires": [ [ "458989ca.70768" ] ] }, { "id": "c35ae4d0.7e0a48", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "x": 970, "y": 1400, "wires": [] }, { "id": "458989ca.70768", "type": "OPCUA-IIoT-Response", "z": "5bf22da3.a9afec", "name": "", "showStatusActivities": false, "showErrors": false, "x": 820, "y": 1400, "wires": [ [ "c35ae4d0.7e0a48" ] ] }, { "id": "33f37194.506c56", "type": "comment", "z": "5bf22da3.a9afec", "name": "event listening", "info": "", "x": 170, "y": 260, "wires": [] }, { "id": "36f65392.cd5ba4", "type": "comment", "z": "5bf22da3.a9afec", "name": "server", "info": "", "x": 150, "y": 60, "wires": [] }, { "id": "ddce448f.c3be38", "type": "OPCUA-IIoT-Browser", "z": "5bf22da3.a9afec", "connector": "73f28bc6.74eba4", "nodeId": "", "name": "", "justValue": false, "sendNodesToRead": false, "sendNodesToListener": false, "sendNodesToBrowser": false, "singleBrowseResult": true, "recursiveBrowse": false, "recursiveDepth": "", "delayPerMessage": "", "showStatusActivities": false, "showErrors": false, "x": 300, "y": 1700, "wires": [ [ "8e8a4058.df09d8" ] ] }, { "id": "ad7ac141.c3d188", "type": "OPCUA-IIoT-Inject", "z": "5bf22da3.a9afec", "injectType": "read", "payload": "", "payloadType": "date", "topic": "", "repeat": "", "crontab": "", "once": true, "startDelay": "15", "name": "Root", "addressSpaceItems": [ { "name": "Tanks", "nodeId": "ns=1;i=1000", "datatypeName": "" } ], "x": 150, "y": 1700, "wires": [ [ "ddce448f.c3be38" ] ] }, { "id": "8e8a4058.df09d8", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 470, "y": 1700, "wires": [] }, { "id": "3e1dac8.0c243d4", "type": "comment", "z": "5bf22da3.a9afec", "name": "monitoring", "info": "", "x": 160, "y": 420, "wires": [] }, { "id": "49446ffa.cc82f8", "type": "comment", "z": "5bf22da3.a9afec", "name": "browse and read", "info": "", "x": 180, "y": 920, "wires": [] }, { "id": "fe2c7439.ce4f2", "type": "comment", "z": "5bf22da3.a9afec", "name": "write and read", "info": "", "x": 170, "y": 1400, "wires": [] }, { "id": "681b1664.2da47", "type": "comment", "z": "5bf22da3.a9afec", "name": "browse", "info": "", "x": 150, "y": 1660, "wires": [] }, { "id": "7ec3b492.bce6f4", "type": "OPCUA-IIoT-Read", "z": "5bf22da3.a9afec", "attributeId": "13", "maxAge": 1, "depth": 1, "connector": "73f28bc6.74eba4", "name": "", "justValue": false, "showStatusActivities": false, "showErrors": false, "parseStrings": false, "x": 370, "y": 1160, "wires": [ [ "56481e32.80d858" ] ] }, { "id": "e77e2f63.b424a8", "type": "OPCUA-IIoT-Inject", "z": "5bf22da3.a9afec", "injectType": "read", "payload": "", "payloadType": "date", "topic": "", "repeat": "", "crontab": "", "once": true, "startDelay": "15", "name": "TestReadWrite", "addressSpaceItems": [ { "name": "TestReadWrite", "nodeId": "ns=1;s=TestReadWrite", "datatypeName": "" } ], "x": 180, "y": 1160, "wires": [ [ "7ec3b492.bce6f4" ] ] }, { "id": "56481e32.80d858", "type": "OPCUA-IIoT-Response", "z": "5bf22da3.a9afec", "name": "", "showStatusActivities": false, "showErrors": false, "x": 600, "y": 1160, "wires": [ [ "1cd1c1cd.a9c8be" ] ] }, { "id": "1cd1c1cd.a9c8be", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "x": 750, "y": 1160, "wires": [] }, { "id": "9d4cc0fd.dcae58", "type": "OPCUA-IIoT-Inject", "z": "5bf22da3.a9afec", "injectType": "read", "payload": "", "payloadType": "date", "topic": "", "repeat": "", "crontab": "", "once": true, "startDelay": "15", "name": "TestReadWrite", "addressSpaceItems": [ { "name": "TestReadWrite", "nodeId": "ns=1;s=TestReadWrite", "datatypeName": "" } ], "x": 180, "y": 1240, "wires": [ [ "a6dd8bfd.6b0a7" ] ] }, { "id": "a6dd8bfd.6b0a7", "type": "OPCUA-IIoT-Read", "z": "5bf22da3.a9afec", "attributeId": "13", "maxAge": 1, "depth": 1, "connector": "73f28bc6.74eba4", "name": "Read just value", "justValue": true, "showStatusActivities": false, "showErrors": false, "parseStrings": false, "x": 400, "y": 1240, "wires": [ [ "9ec0e135.df558" ] ] }, { "id": "9ec0e135.df558", "type": "OPCUA-IIoT-Response", "z": "5bf22da3.a9afec", "name": "", "showStatusActivities": false, "showErrors": false, "x": 600, "y": 1240, "wires": [ [ "1bcfa0db.3843d7" ] ] }, { "id": "1bcfa0db.3843d7", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "x": 750, "y": 1240, "wires": [] }, { "id": "4361ee9f.27b43", "type": "comment", "z": "5bf22da3.a9afec", "name": "read", "info": "", "x": 150, "y": 1120, "wires": [] }, { "id": "99f448fd.ea75", "type": "OPCUA-IIoT-Browser", "z": "5bf22da3.a9afec", "connector": "73f28bc6.74eba4", "nodeId": "ns=1;i=1234", "name": "Bianco Royal", "justValue": true, "sendNodesToRead": false, "sendNodesToListener": false, "sendNodesToBrowser": false, "singleBrowseResult": true, "showStatusActivities": false, "showErrors": false, "x": 310, "y": 1820, "wires": [ [ "ed9d0622.aac94" ] ] }, { "id": "95873ac.81435c8", "type": "OPCUA-IIoT-Inject", "z": "5bf22da3.a9afec", "injectType": "read", "payload": "", "payloadType": "date", "topic": "", "repeat": "", "crontab": "", "once": true, "startDelay": "15", "name": "Root", "addressSpaceItems": [], "x": 150, "y": 1820, "wires": [ [ "99f448fd.ea75" ] ] }, { "id": "ed9d0622.aac94", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 470, "y": 1820, "wires": [] }, { "id": "c19a4f99.0d4b8", "type": "OPCUA-IIoT-Method-Caller", "z": "5bf22da3.a9afec", "connector": "73f28bc6.74eba4", "objectId": "ns=1;i=1234", "methodId": "ns=1;i=12345", "methodType": "basic", "value": "", "justValue": true, "name": "", "showStatusActivities": false, "showErrors": true, "inputArguments": [ { "name": "barks", "dataType": "UInt32", "value": "3" }, { "name": "volume", "dataType": "UInt32", "value": "6" } ], "x": 320, "y": 2100, "wires": [ [ "e4763f23.c619a", "680c95b3.eb561c" ] ] }, { "id": "e4763f23.c619a", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 490, "y": 2060, "wires": [] }, { "id": "680c95b3.eb561c", "type": "OPCUA-IIoT-Response", "z": "5bf22da3.a9afec", "name": "", "showStatusActivities": false, "showErrors": false, "x": 500, "y": 2100, "wires": [ [ "155985c7.d13aa2" ] ] }, { "id": "155985c7.d13aa2", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 650, "y": 2100, "wires": [] }, { "id": "9c9f1331.d9a6f", "type": "OPCUA-IIoT-Inject", "z": "5bf22da3.a9afec", "injectType": "inject", "payload": "", "payloadType": "date", "topic": "", "repeat": "", "crontab": "", "once": false, "startDelay": "", "name": "", "addressSpaceItems": [], "x": 160, "y": 2100, "wires": [ [ "c19a4f99.0d4b8" ] ] }, { "id": "6339810a.7cabd", "type": "inject", "z": "5bf22da3.a9afec", "name": "", "topic": "", "payload": "", "payloadType": "date", "repeat": "", "crontab": "", "once": false, "x": 160, "y": 2200, "wires": [ [ "5bea04e2.b43884" ] ] }, { "id": "5bea04e2.b43884", "type": "function", "z": "5bf22da3.a9afec", "name": "call", "func": "msg.payload = {\n objectId: 'ns=1;i=1234',\n methodId: 'ns=1;i=12345',\n inputArguments: [\n {name: 'barks', dataType:'UInt32', value:'6'},\n {name: 'volume', dataType:'UInt32', value:'12'}\n ],\n methodType: 'basic'\n}\nreturn msg;", "outputs": 1, "noerr": 0, "x": 290, "y": 2200, "wires": [ [ "6a503013.1a858" ] ] }, { "id": "6a503013.1a858", "type": "OPCUA-IIoT-Method-Caller", "z": "5bf22da3.a9afec", "connector": "73f28bc6.74eba4", "objectId": "ns=1;i=1234", "methodId": "ns=1;i=12345", "methodType": "basic", "value": "", "justValue": false, "name": "", "showStatusActivities": false, "showErrors": true, "inputArguments": [ { "name": "barks", "dataType": "UInt32", "value": "3" }, { "name": "volume", "dataType": "UInt32", "value": "6" } ], "x": 440, "y": 2200, "wires": [ [ "63020c8b.62369c" ] ] }, { "id": "63020c8b.62369c", "type": "OPCUA-IIoT-Response", "z": "5bf22da3.a9afec", "name": "", "showStatusActivities": false, "showErrors": false, "x": 600, "y": 2200, "wires": [ [ "edda5655.115678" ] ] }, { "id": "edda5655.115678", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 750, "y": 2200, "wires": [] }, { "id": "2c1b8706.db9688", "type": "OPCUA-IIoT-Discovery", "z": "5bf22da3.a9afec", "name": "", "discoveryPort": "", "x": 1140, "y": 180, "wires": [ [ "8f396cd1.688388" ] ] }, { "id": "d5ea78a2.b5fae8", "type": "OPCUA-IIoT-Server", "z": "5bf22da3.a9afec", "port": "55388", "endpoint": "", "acceptExternalCommands": true, "maxAllowedSessionNumber": "", "maxConnectionsPerEndpoint": "", "maxAllowedSubscriptionNumber": "", "alternateHostname": "", "name": "", "showStatusActivities": false, "showErrors": true, "asoDemo": true, "allowAnonymous": true, "isAuditing": false, "serverDiscovery": true, "users": [ { "name": "peter", "password": "peter" } ], "xmlsets": [ { "name": "ISA95", "path": "public/vendor/opc-foundation/xml/Opc.ISA95.NodeSet2.xml" } ], "publicCertificateFile": "", "privateCertificateFile": "", "registerServerMethod": "1", "discoveryServerEndpointUrl": "", "capabilitiesForMDNS": "", "maxNodesPerRead": "", "maxNodesPerBrowse": "", "delayToClose": "3000", "x": 610, "y": 140, "wires": [ [ "df06877.2d126f8" ] ] }, { "id": "1615ce97.1cb661", "type": "OPCUA-IIoT-Browser", "z": "5bf22da3.a9afec", "connector": "73f28bc6.74eba4", "nodeId": "", "name": "", "justValue": true, "sendNodesToRead": false, "sendNodesToListener": false, "sendNodesToBrowser": true, "singleBrowseResult": true, "showStatusActivities": false, "showErrors": true, "x": 300, "y": 1900, "wires": [ [ "a1bf04c5.eb0178", "96402c3c.82a96" ] ] }, { "id": "8c94c619.e749c8", "type": "OPCUA-IIoT-Inject", "z": "5bf22da3.a9afec", "injectType": "read", "payload": "", "payloadType": "date", "topic": "", "repeat": "", "crontab": "", "once": true, "startDelay": "15", "name": "Root", "addressSpaceItems": [ { "name": "Tanks", "nodeId": "ns=0;i=85", "datatypeName": "" } ], "x": 150, "y": 1900, "wires": [ [ "1615ce97.1cb661" ] ] }, { "id": "96402c3c.82a96", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 470, "y": 1900, "wires": [] }, { "id": "dcafdf79.015b68", "type": "comment", "z": "5bf22da3.a9afec", "name": "Methods", "info": "", "x": 160, "y": 2060, "wires": [] }, { "id": "a1bf04c5.eb0178", "type": "OPCUA-IIoT-Browser", "z": "5bf22da3.a9afec", "connector": "73f28bc6.74eba4", "nodeId": "", "name": "", "justValue": true, "sendNodesToRead": false, "sendNodesToListener": false, "sendNodesToBrowser": true, "singleBrowseResult": true, "showStatusActivities": false, "showErrors": true, "x": 480, "y": 1960, "wires": [ [ "fba371ab.33a278", "7498b630.367e38" ] ] }, { "id": "7498b630.367e38", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 630, "y": 1940, "wires": [] }, { "id": "fba371ab.33a278", "type": "OPCUA-IIoT-Browser", "z": "5bf22da3.a9afec", "connector": "73f28bc6.74eba4", "nodeId": "", "name": "", "justValue": true, "sendNodesToRead": false, "sendNodesToListener": false, "sendNodesToBrowser": false, "singleBrowseResult": true, "showStatusActivities": false, "showErrors": true, "x": 640, "y": 1980, "wires": [ [ "7e45e650.9206b8" ] ] }, { "id": "7e45e650.9206b8", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 790, "y": 1980, "wires": [] }, { "id": "c35ae6ac.a6ae58", "type": "OPCUA-IIoT-Listener", "z": "5bf22da3.a9afec", "connector": "73f28bc6.74eba4", "action": "subscribe", "queueSize": 10, "name": "", "topic": "", "justValue": true, "useGroupItems": false, "showStatusActivities": false, "showErrors": true, "x": 520, "y": 820, "wires": [ [ "dc7d58eb.b98048", "c58b91f5.61e6d8" ] ] }, { "id": "dc7d58eb.b98048", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 670, "y": 780, "wires": [] }, { "id": "353b4d41.243b5a", "type": "OPCUA-IIoT-Browser", "z": "5bf22da3.a9afec", "connector": "73f28bc6.74eba4", "nodeId": "ns=1;i=1234", "name": "Bianco Royal", "justValue": true, "sendNodesToRead": false, "sendNodesToListener": true, "sendNodesToBrowser": false, "singleBrowseResult": true, "showStatusActivities": false, "showErrors": false, "x": 350, "y": 820, "wires": [ [ "c35ae6ac.a6ae58" ] ] }, { "id": "5581e148.78e6b", "type": "OPCUA-IIoT-Inject", "z": "5bf22da3.a9afec", "injectType": "inject", "payload": "{\"interval\":500,\"queueSize\":10,\"options\":{\"requestedPublishingInterval\":5000,\"requestedLifetimeCount\":60,\"requestedMaxKeepAliveCount\":10,\"maxNotificationsPerPublish\":5,\"publishingEnabled\":true,\"priority\":1}}", "payloadType": "json", "topic": "", "repeat": "", "crontab": "", "once": true, "startDelay": "15", "name": "Start Abo", "addressSpaceItems": [], "x": 160, "y": 820, "wires": [ [ "353b4d41.243b5a" ] ] }, { "id": "80b7198e.db578", "type": "comment", "z": "5bf22da3.a9afec", "name": "browse and listen", "info": "", "x": 180, "y": 780, "wires": [] }, { "id": "4d8ebb64.c56844", "type": "OPCUA-IIoT-Write", "z": "5bf22da3.a9afec", "connector": "73f28bc6.74eba4", "name": "", "justValue": false, "showStatusActivities": false, "showErrors": true, "x": 510, "y": 1580, "wires": [ [ "4518b9c0.3d35d" ] ] }, { "id": "f3ebcd6b.0f9f88", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 830, "y": 1580, "wires": [] }, { "id": "ecdb95b.79333e8", "type": "OPCUA-IIoT-Node", "z": "5bf22da3.a9afec", "injectType": "write", "nodeId": "ns=1;s=TestReadWrite", "datatype": "Double", "value": "", "name": "", "topic": "", "showErrors": true, "x": 370, "y": 1580, "wires": [ [ "4d8ebb64.c56844" ] ] }, { "id": "bd60729c.c205d8", "type": "inject", "z": "5bf22da3.a9afec", "name": "", "topic": "TestTopicWrite", "payload": "1234.56", "payloadType": "num", "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "x": 200, "y": 1580, "wires": [ [ "ecdb95b.79333e8" ] ] }, { "id": "4518b9c0.3d35d", "type": "OPCUA-IIoT-Response", "z": "5bf22da3.a9afec", "name": "", "x": 680, "y": 1580, "wires": [ [ "f3ebcd6b.0f9f88" ] ] }, { "id": "a1c29074.4421c8", "type": "OPCUA-IIoT-Flex-Server", "z": "5bf22da3.a9afec", "port": "55387", "endpoint": "", "acceptExternalCommands": true, "maxAllowedSessionNumber": "", "maxConnectionsPerEndpoint": "", "maxAllowedSubscriptionNumber": "", "alternateHostname": "", "name": "", "showStatusActivities": false, "showErrors": true, "allowAnonymous": true, "isAuditing": false, "serverDiscovery": true, "users": [], "xmlsets": [], "publicCertificateFile": "", "privateCertificateFile": "", "registerServerMethod": 1, "discoveryServerEndpointUrl": "", "capabilitiesForMDNS": "", "maxNodesPerRead": 1000, "maxNodesPerBrowse": 2000, "delayToClose": "3000", "addressSpaceScript": "function constructAlarmAddressSpace(server, addressSpace, eventObjects, done) {\n // server = the created node-opcua server\n // addressSpace = script placeholder\n // eventObjects = to hold event variables in memory from this script\n \n // internal global sandbox objects are \n // node = node of the flex server, \n // coreServer = core iiot server object for debug and access to nodeOPCUA,\n // and scriptObjects to hold variables and functions\n const LocalizedText = coreServer.core.nodeOPCUA.LocalizedText\n const namespace = addressSpace.getOwnNamespace()\n\n const namespace2 = addressSpace.registerNamespace(\"BiancoRoyal\")\n coreServer.internalDebugLog(addressSpace.getNamespaceArray()[2])\n \n coreServer.internalDebugLog('init dynamic address space')\n node.warn('construct new address space for OPC UA')\n \n // from here - see the node-opcua docs how to build address sapces\n let tanks = namespace.addObject({\n browseName: 'Tanks',\n description: 'The Object representing some tanks',\n organizedBy: addressSpace.rootFolder.objects,\n notifierOf: addressSpace.rootFolder.objects.server\n })\n \n let oilTankLevel = namespace.addVariable({\n browseName: 'OilTankLevel',\n displayName: [\n new LocalizedText({text: 'Oil Tank Level', locale: 'en-US'}),\n new LocalizedText({text: 'Öl Tank Füllstand', locale: 'de-DE'})\n ],\n description: 'Fill level in percentage (0% to 100%) of the oil tank',\n propertyOf: tanks,\n dataType: 'Double',\n eventSourceOf: tanks\n })\n \n // ---------------------------------------------------------------------------------\n // Let's create a exclusive Limit Alarm that automatically raise itself\n // when the tank level is out of limit\n // ---------------------------------------------------------------------------------\n let exclusiveLimitAlarmType = addressSpace.findEventType('ExclusiveLimitAlarmType')\n if (nonExclusiveLimitAlarmType === null) throw new Error(\"nonExclusiveLimitAlarmType Error Message\")(exclusiveLimitAlarmType !== null)\n \n let oilTankLevelCondition = namespace.instantiateExclusiveLimitAlarm(exclusiveLimitAlarmType, {\n componentOf: tanks,\n conditionSource: oilTankLevel,\n browseName: 'OilTankLevelCondition',\n displayName: [\n new LocalizedText({text: 'Oil Tank Level Condition', locale: 'en-US'}),\n new LocalizedText({text: 'Öl Tank Füllstand Bedingung', locale: 'de-DE'})\n ],\n description: 'ExclusiveLimitAlarmType Condition',\n conditionName: 'OilLevelCondition',\n optionals: [\n 'ConfirmedState', 'Confirm' // confirm state and confirm Method\n ],\n inputNode: oilTankLevel, // the letiable that will be monitored for change\n highHighLimit: 0.9,\n highLimit: 0.8,\n lowLimit: 0.2\n })\n \n // --------------------------------------------------------------\n // Let's create a second letiable with no Exclusive alarm\n // --------------------------------------------------------------\n let gasTankLevel = namespace.addVariable({\n browseName: 'GasTankLevel',\n displayName: [\n new LocalizedText({text: 'Gas Tank Level', locale: 'en-US'}),\n new LocalizedText({text: 'Gas Tank Füllstand', locale: 'de-DE'})\n ],\n description: 'Fill level in percentage (0% to 100%) of the gas tank',\n propertyOf: tanks,\n dataType: 'Double',\n eventSourceOf: tanks\n })\n \n // byte variable with value\n if(scriptObjects.oilTankNumber === undefined || scriptObjects.oilTankNumber === null) {\n scriptObjects.oilTankNumber = 100\n }\n \n let oilTankNumber = namespace.addVariable({\n nodeId: \"s=OilTankNumber\",\n browseName: 'OilTankNumber',\n displayName: [\n new LocalizedText({text: 'Oil Tank Number', locale: 'en-US'}),\n new LocalizedText({text: 'Öl Tank Nummer', locale: 'de-DE'})\n ],\n description: 'Number of the oil tank',\n propertyOf: tanks,\n dataType: 'Byte',\n value: {\n get: function () {\n return new coreServer.core.nodeOPCUA.Variant({\n dataType: 'Byte',\n value: scriptObjects.oilTankNumber\n })\n },\n set: function (variant) {\n scriptObjects.oilTankNumber = variant.value\n return coreServer.core.nodeOPCUA.StatusCodes.Good\n }\n }\n })\n \n let nonExclusiveLimitAlarmType = addressSpace.findEventType('NonExclusiveLimitAlarmType')\n if (nonExclusiveLimitAlarmType === null) throw new Error(\"nonExclusiveLimitAlarmType Error Message\")(nonExclusiveLimitAlarmType !== null)\n \n let gasTankLevelCondition = namespace.instantiateNonExclusiveLimitAlarm(nonExclusiveLimitAlarmType, {\n componentOf: tanks,\n conditionSource: gasTankLevel,\n browseName: 'GasTankLevelCondition',\n displayName: [\n new LocalizedText({text: 'Gas Tank Level Condition', locale: 'en-US'}),\n new LocalizedText({text: 'Gas Tank Füllstand Bedingung', locale: 'de-DE'})\n ],\n description: 'NonExclusiveLimitAlarmType Condition',\n conditionName: 'GasLevelCondition',\n optionals: [\n 'ConfirmedState', 'Confirm' // confirm state and confirm Method\n ],\n inputNode: gasTankLevel, // the letiable that will be monitored for change\n highHighLimit: 0.9,\n highLimit: 0.8,\n lowLimit: 0.2\n })\n \n // variable with value\n if(scriptObjects.testReadWrite === undefined || scriptObjects.testReadWrite === null) {\n scriptObjects.testReadWrite = 1000.0\n }\n \n let myVariables = namespace.addObject({\n browseName: 'MyVariables',\n description: 'The Object representing some variables',\n organizedBy: addressSpace.rootFolder.objects,\n notifierOf: addressSpace.rootFolder.objects.server\n })\n \n if(coreServer.core) {\n namespace.addVariable({\n componentOf: myVariables,\n nodeId: 'ns=1;s=TestReadWrite',\n browseName: 'TestReadWrite',\n displayName: [\n new LocalizedText({text: 'Test Read and Write', locale: 'en-US'}),\n new LocalizedText({text: 'Test Lesen Schreiben', locale: 'de-DE'})\n ],\n dataType: 'Double',\n value: {\n get: function () {\n return new coreServer.core.nodeOPCUA.Variant({\n dataType: 'Double',\n value: scriptObjects.testReadWrite\n })\n },\n set: function (variant) {\n scriptObjects.testReadWrite = parseFloat(variant.value)\n return coreServer.core.nodeOPCUA.StatusCodes.Good\n }\n }\n \n })\n \n let memoryVariable = namespace.addVariable({\n componentOf: myVariables,\n nodeId: 'ns=1;s=free_memory',\n browseName: 'FreeMemory',\n displayName: [\n new LocalizedText({text: 'Free Memory', locale: 'en-US'}),\n new LocalizedText({text: 'ungenutzer RAM', locale: 'de-DE'})\n ],\n dataType: 'Double',\n \n value: {\n get: function () {\n return new coreServer.core.nodeOPCUA.Variant({\n dataType: 'Double',\n value: coreServer.core.availableMemory()\n })\n }\n }\n })\n addressSpace.installHistoricalDataNode(memoryVariable)\n \n } else {\n coreServer.internalDebugLog('coreServer.core needed for coreServer.core.nodeOPCUA')\n }\n \n // custom namespace ns=2\n let boilers = namespace2.addObject({\n browseName: 'Boilers',\n description: 'The Object representing some boilers',\n organizedBy: addressSpace.rootFolder.objects,\n notifierOf: addressSpace.rootFolder.objects.server\n })\n\n let boilersSum = namespace2.addVariable({\n browseName: 'BoilersSum',\n displayName: [\n new LocalizedText({text: 'Boilers sum of all fill levels', locale: 'en-US'}),\n new LocalizedText({text: 'Boiler Summe aller Füllstand', locale: 'de-DE'})\n ],\n description: 'Fill level in percentage (0% to 100%) of the boilers',\n propertyOf: boilers,\n dataType: 'Double'\n })\n \n // hold event objects in memory \n eventObjects.oilTankLevel = oilTankLevel\n eventObjects.oilTankLevelCondition = oilTankLevelCondition\n \n eventObjects.gasTankLevel = gasTankLevel\n eventObjects.gasTankLevelCondition = gasTankLevelCondition\n \n done()\n}\n", "x": 1290, "y": 80, "wires": [ [ "fa82708f.cbae08" ] ] }, { "id": "b29d2e34.cea4b", "type": "OPCUA-IIoT-Server-Command", "z": "5bf22da3.a9afec", "commandtype": "restart", "nodeId": "", "name": "restart", "x": 1130, "y": 80, "wires": [ [ "a1c29074.4421c8", "bf4b5f21.ae566" ] ] }, { "id": "d8ebbd86.f9ea88", "type": "OPCUA-IIoT-Inject", "z": "5bf22da3.a9afec", "injectType": "inject", "payload": "", "payloadType": "date", "topic": "", "repeat": "", "crontab": "", "once": false, "startDelay": "", "name": "", "addressSpaceItems": [], "x": 980, "y": 80, "wires": [ [ "b29d2e34.cea4b" ] ] }, { "id": "fa82708f.cbae08", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 1450, "y": 80, "wires": [] }, { "id": "7a0a7d1a.be5454", "type": "inject", "z": "5bf22da3.a9afec", "name": "", "topic": "", "payload": "", "payloadType": "date", "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "x": 980, "y": 180, "wires": [ [ "2c1b8706.db9688" ] ] }, { "id": "8f396cd1.688388", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 1290, "y": 180, "wires": [] }, { "id": "bf4b5f21.ae566", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 1250, "y": 40, "wires": [] }, { "id": "19a20cdd.2c3a23", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 590, "y": 100, "wires": [] }, { "id": "8b3e2094.19c31", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 950, "y": 300, "wires": [] }, { "id": "50a8323e.8fc5dc", "type": "OPCUA-IIoT-Response", "z": "5bf22da3.a9afec", "name": "", "compressStructure": true, "showStatusActivities": false, "showErrors": false, "activateUnsetFilter": false, "activateFilters": false, "negateFilter": false, "filters": [], "x": 790, "y": 300, "wires": [ [ "8b3e2094.19c31" ] ] }, { "id": "c58b91f5.61e6d8", "type": "OPCUA-IIoT-Response", "z": "5bf22da3.a9afec", "name": "", "compressStructure": true, "showStatusActivities": false, "showErrors": false, "activateUnsetFilter": false, "activateFilters": false, "negateFilter": false, "filters": [], "x": 690, "y": 820, "wires": [ [ "e45ed175.0394a" ] ] }, { "id": "e45ed175.0394a", "type": "debug", "z": "5bf22da3.a9afec", "name": "", "active": false, "console": "false", "complete": "true", "x": 850, "y": 820, "wires": [] }, { "id": "93c5b120.f524f8", "type": "OPCUA-IIoT-Browser", "z": "5bf22da3.a9afec", "connector": "73f28bc6.74eba4", "nodeId": "", "name": "", "justValue": false, "sendNodesToRead": false, "sendNodesToListener": false, "sendNodesToBrowser": false, "singleBrowseResult": true, "recursiveBrowse": true, "recursiveDepth": "2", "delayPerMessage": "2", "showStatusActivities": false, "showErrors": false, "x": 300, "y": 1760, "wires": [ [ "707d0a4a.3bb3ac" ] ] }, { "id": "3dc124f4.b5442c", "type": "OPCUA-IIoT-Inject", "z": "5bf22da3.a9afec", "injectType": "read", "payload": "", "payloadType": "date", "topic": "", "repeat": "", "crontab": "", "once": true, "startDelay": "15", "name": "Root", "addressSpaceItems": [], "x": 150, "y": 1760, "wires": [