diff --git a/CHANGELOG.md b/CHANGELOG.md
index aa830f8c..2a0058ac 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,11 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+## [1.3.3](https://github.com/biancode/node-red-contrib-iiot-opcua/compare/v1.3.1...v1.3.3) (2018-01-10)
+
+
+
## [1.3.2](https://github.com/biancode/node-red-contrib-iiot-opcua/compare/v1.3.1...v1.3.2) (2018-01-09)
diff --git a/docs/OPCUA Service Errors.txt b/docs/OPCUA Service Errors.txt
deleted file mode 100644
index 6c1b6322..00000000
--- a/docs/OPCUA Service Errors.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-2 Apr 11:50:50 - [error] [OPCUA-IIoT-Read:4880df4.b19c92] Error: ServiceFault returned by server { /*ServiceFault*/
- responseHeader /* ResponseHeader */: {
- timeStamp /* UtcTime */: 2017-04-02T09:50:47.647Z
- requestHandle /* IntegerId */: 69303 0x10eb7
- serviceResult /* StatusCode */: BadSessionClosed (0x80260000)
- serviceDiagnostics /* DiagnosticInfo */: {
- namespaceUri /* Int32 */: -1
- symbolicId /* Int32 */: -1
- locale /* Int32 */: -1
- localizedText /* Int32 */: -1
- additionalInfo /* String */: null
- innerStatusCode /* StatusCode */: Good (0x00000)
- innerDiagnosticInfo /* DiagnosticInfo */: {
- }
- }
- stringTable /* String [] */: [ ] (l=1)
- additionalHeader /* ExtensionObject */: null
- }
-};
diff --git a/docs/_config.yml b/docs/_config.yml
deleted file mode 100644
index c4192631..00000000
--- a/docs/_config.yml
+++ /dev/null
@@ -1 +0,0 @@
-theme: jekyll-theme-cayman
\ No newline at end of file
diff --git a/examples/opcua-iiot-browser-read.json b/examples/opcua-iiot-browser-read.json
index f96f36e6..1a6e5d76 100644
--- a/examples/opcua-iiot-browser-read.json
+++ b/examples/opcua-iiot-browser-read.json
@@ -1,16 +1,16 @@
[
{
- "id": "4b36432f.1ed3cc",
+ "id": "3c9d7aa6.1a6a4e",
"type": "tab",
"label": "IIoT Browse And Read",
"disabled": false,
"info": ""
},
{
- "id": "23c062ba.dec65e",
+ "id": "eded6c05.9b7488",
"type": "OPCUA-IIoT-Browser",
- "z": "4b36432f.1ed3cc",
- "connector": "31ab10c.c0f77f",
+ "z": "3c9d7aa6.1a6a4e",
+ "connector": "15b7d82c.f855e8",
"nodeId": "",
"name": "",
"showStatusActivities": false,
@@ -19,22 +19,23 @@
"y": 120,
"wires": [
[
- "7654330.d1c53cc",
- "648b0815.6f39f8",
- "d7954a0.3cb07b8",
- "91213573.3bfb78"
+ "1cb79501.d4d073",
+ "2c3a6754.8c07f",
+ "9891efa1.f529d",
+ "64bf9b56.6a4314",
+ "7768f1e2.af983"
]
]
},
{
- "id": "7654330.d1c53cc",
+ "id": "1cb79501.d4d073",
"type": "ui_template",
- "z": "4b36432f.1ed3cc",
- "group": "95160375.96b4e",
+ "z": "3c9d7aa6.1a6a4e",
+ "group": "c2639dd.dc2c3e",
"name": "",
"order": 0,
- "width": 0,
- "height": 0,
+ "width": "12",
+ "height": "14",
"format": "
\n
\n
{{msg.payload.endpoint}}
\n
\n
\n
{{msg.payload.browseTopic}} with {{msg.payload.browserResultCount}} references
\n
\n
\n
Results
\n \n
\n \n \n
\n
\n
\n
\n - \n {{item.displayName.text}} ( {{item.nodeId}} - {{item.browseName}})\n
\n
\n
\n
\n
",
"storeOutMessages": false,
"fwdInMessages": false,
@@ -43,27 +44,27 @@
"y": 60,
"wires": [
[
- "23c062ba.dec65e",
- "3c2e5b7c.f1f214"
+ "eded6c05.9b7488",
+ "bf867198.787e"
]
]
},
{
- "id": "648b0815.6f39f8",
+ "id": "2c3a6754.8c07f",
"type": "debug",
- "z": "4b36432f.1ed3cc",
+ "z": "3c9d7aa6.1a6a4e",
"name": "",
"active": false,
"console": "false",
"complete": "true",
"x": 510,
- "y": 220,
+ "y": 280,
"wires": []
},
{
- "id": "3dcd6539.7ff07a",
+ "id": "8d125437.d8b9c",
"type": "OPCUA-IIoT-Inject",
- "z": "4b36432f.1ed3cc",
+ "z": "3c9d7aa6.1a6a4e",
"injectType": "read",
"payload": "",
"payloadType": "date",
@@ -75,8 +76,8 @@
"name": "Root",
"addressSpaceItems": [
{
- "name": "BiancoRoyal",
- "nodeId": "ns=4;i=1234",
+ "name": "Tanks",
+ "nodeId": "ns=1;i=1000",
"datatypeName": ""
}
],
@@ -84,28 +85,28 @@
"y": 120,
"wires": [
[
- "23c062ba.dec65e",
- "5c7889b4.5b6a38"
+ "eded6c05.9b7488",
+ "994bb92f.fe542"
]
]
},
{
- "id": "d7954a0.3cb07b8",
+ "id": "9891efa1.f529d",
"type": "OPCUA-IIoT-Response",
- "z": "4b36432f.1ed3cc",
+ "z": "3c9d7aa6.1a6a4e",
"name": "",
"x": 520,
"y": 100,
"wires": [
[
- "748a193b.03ac78"
+ "2e112a95.9335b6"
]
]
},
{
- "id": "748a193b.03ac78",
+ "id": "2e112a95.9335b6",
"type": "debug",
- "z": "4b36432f.1ed3cc",
+ "z": "3c9d7aa6.1a6a4e",
"name": "",
"active": false,
"console": "false",
@@ -115,44 +116,45 @@
"wires": []
},
{
- "id": "91213573.3bfb78",
+ "id": "64bf9b56.6a4314",
"type": "OPCUA-IIoT-Read",
- "z": "4b36432f.1ed3cc",
- "attributeId": "13",
+ "z": "3c9d7aa6.1a6a4e",
+ "attributeId": "0",
"maxAge": "0",
"depth": 1,
- "connector": "31ab10c.c0f77f",
- "name": "Read browsed NodeIds",
+ "connector": "15b7d82c.f855e8",
+ "name": "Read browsed All",
"justValue": true,
"multipleRequest": true,
- "metaDataInject": false,
"showStatusActivities": false,
"showErrors": false,
- "x": 570,
+ "x": 550,
"y": 160,
"wires": [
[
- "56437d8e.54ce54"
+ "75c637c9.e0d658"
]
]
},
{
- "id": "56437d8e.54ce54",
+ "id": "75c637c9.e0d658",
"type": "OPCUA-IIoT-Response",
- "z": "4b36432f.1ed3cc",
+ "z": "3c9d7aa6.1a6a4e",
"name": "",
+ "showStatusActivities": false,
+ "showErrors": false,
"x": 760,
"y": 160,
"wires": [
[
- "d8ad1459.8d1fd8"
+ "ac316265.411448"
]
]
},
{
- "id": "d8ad1459.8d1fd8",
+ "id": "ac316265.411448",
"type": "debug",
- "z": "4b36432f.1ed3cc",
+ "z": "3c9d7aa6.1a6a4e",
"name": "",
"active": true,
"console": "false",
@@ -162,9 +164,9 @@
"wires": []
},
{
- "id": "5c7889b4.5b6a38",
+ "id": "994bb92f.fe542",
"type": "debug",
- "z": "4b36432f.1ed3cc",
+ "z": "3c9d7aa6.1a6a4e",
"name": "",
"active": false,
"console": "false",
@@ -174,9 +176,9 @@
"wires": []
},
{
- "id": "3c2e5b7c.f1f214",
+ "id": "bf867198.787e",
"type": "debug",
- "z": "4b36432f.1ed3cc",
+ "z": "3c9d7aa6.1a6a4e",
"name": "",
"active": false,
"console": "false",
@@ -186,29 +188,89 @@
"wires": []
},
{
- "id": "31ab10c.c0f77f",
+ "id": "7768f1e2.af983",
+ "type": "OPCUA-IIoT-Read",
+ "z": "3c9d7aa6.1a6a4e",
+ "attributeId": "13",
+ "maxAge": "0",
+ "depth": 1,
+ "connector": "15b7d82c.f855e8",
+ "name": "Read browsed Values",
+ "justValue": true,
+ "multipleRequest": true,
+ "showStatusActivities": false,
+ "showErrors": false,
+ "x": 560,
+ "y": 220,
+ "wires": [
+ [
+ "643dacd2.5eb3ec"
+ ]
+ ]
+ },
+ {
+ "id": "643dacd2.5eb3ec",
+ "type": "OPCUA-IIoT-Response",
+ "z": "3c9d7aa6.1a6a4e",
+ "name": "",
+ "showStatusActivities": false,
+ "showErrors": false,
+ "x": 760,
+ "y": 220,
+ "wires": [
+ [
+ "fe316356.54ec3"
+ ]
+ ]
+ },
+ {
+ "id": "fe316356.54ec3",
+ "type": "debug",
+ "z": "3c9d7aa6.1a6a4e",
+ "name": "",
+ "active": true,
+ "console": "false",
+ "complete": "true",
+ "x": 920,
+ "y": 220,
+ "wires": []
+ },
+ {
+ "id": "134d7d71.9db4d3",
+ "type": "comment",
+ "z": "3c9d7aa6.1a6a4e",
+ "name": "Please, check the port of LOCAL SERVER connector!",
+ "info": "default ports: \n\n 55388 for the OPC UA IIoT Server\n\n 55380 for the OPC UA IIoT Flex Server",
+ "x": 800,
+ "y": 60,
+ "wires": []
+ },
+ {
+ "id": "15b7d82c.f855e8",
"type": "OPCUA-IIoT-Connector",
"z": "",
- "endpoint": "opc.tcp://localhost:55388/",
+ "endpoint": "opc.tcp://localhost:55380/",
"keepSessionAlive": true,
- "loginEnabled": true,
+ "loginEnabled": false,
+ "securityPolicy": "None",
+ "securityMode": "NONE",
"name": "LOCAL SERVER",
"showStatusActivities": false,
"showErrors": false
},
{
- "id": "95160375.96b4e",
+ "id": "c2639dd.dc2c3e",
"type": "ui_group",
"z": "",
"name": "Default",
- "tab": "852ae1.eacca52",
+ "tab": "835f160.4b91468",
"disp": true,
- "width": "10"
+ "width": "12"
},
{
- "id": "852ae1.eacca52",
+ "id": "835f160.4b91468",
"type": "ui_tab",
- "z": "4b36432f.1ed3cc",
+ "z": "3c9d7aa6.1a6a4e",
"name": "Node-RED OPC UA IIoT",
"icon": "dashboard"
}
diff --git a/examples/opcua-iiot-browser.json b/examples/opcua-iiot-browser.json
index 61402402..032c7107 100644
--- a/examples/opcua-iiot-browser.json
+++ b/examples/opcua-iiot-browser.json
@@ -1,16 +1,16 @@
[
{
- "id": "7df7b82d.f08ee8",
+ "id": "baed51be.8047f8",
"type": "tab",
"label": "IIoT OPC UA Browser",
"disabled": false,
"info": ""
},
{
- "id": "c36a769d.746fb8",
+ "id": "ef59a43b.6daa18",
"type": "OPCUA-IIoT-Browser",
- "z": "7df7b82d.f08ee8",
- "connector": "e9e8c12d.755ba",
+ "z": "baed51be.8047f8",
+ "connector": "6bb27954.03ca3",
"nodeId": "",
"name": "",
"showStatusActivities": false,
@@ -19,16 +19,16 @@
"y": 150,
"wires": [
[
- "e08b1007.3f569",
- "ecf4f164.50cc4",
- "d18aff68.9163d"
+ "440bd19c.02d958",
+ "68a82f0.082145",
+ "6b32b938.3c15c8"
]
]
},
{
- "id": "ecf4f164.50cc4",
+ "id": "68a82f0.082145",
"type": "debug",
- "z": "7df7b82d.f08ee8",
+ "z": "baed51be.8047f8",
"name": "",
"active": true,
"console": "false",
@@ -38,9 +38,10 @@
"wires": []
},
{
- "id": "8ed0bed9.83887",
+ "id": "ec321f89.75b698",
"type": "OPCUA-IIoT-Inject",
- "z": "7df7b82d.f08ee8",
+ "z": "baed51be.8047f8",
+ "injectType": "inject",
"payload": "",
"payloadType": "date",
"topic": "ns=0;i=85",
@@ -49,31 +50,34 @@
"once": true,
"startDelay": "",
"name": "Root",
+ "addressSpaceItems": [],
"x": 150,
"y": 150,
"wires": [
[
- "c36a769d.746fb8"
+ "ef59a43b.6daa18"
]
]
},
{
- "id": "d18aff68.9163d",
+ "id": "6b32b938.3c15c8",
"type": "OPCUA-IIoT-Response",
- "z": "7df7b82d.f08ee8",
+ "z": "baed51be.8047f8",
"name": "",
+ "showStatusActivities": false,
+ "showErrors": false,
"x": 540,
"y": 90,
"wires": [
[
- "74d0e420.4e86dc"
+ "92cbaef5.395088"
]
]
},
{
- "id": "74d0e420.4e86dc",
+ "id": "92cbaef5.395088",
"type": "debug",
- "z": "7df7b82d.f08ee8",
+ "z": "baed51be.8047f8",
"name": "",
"active": false,
"console": "false",
@@ -83,10 +87,10 @@
"wires": []
},
{
- "id": "e08b1007.3f569",
+ "id": "440bd19c.02d958",
"type": "ui_template",
- "z": "7df7b82d.f08ee8",
- "group": "ccb63f42.103f6",
+ "z": "baed51be.8047f8",
+ "group": "b361a5b.9df1b58",
"name": "",
"order": 0,
"width": 0,
@@ -99,15 +103,15 @@
"y": 90,
"wires": [
[
- "c36a769d.746fb8"
+ "ef59a43b.6daa18"
]
]
},
{
- "id": "a8c14b28.eecbc8",
- "type": "OPCUA-IIoT-Server",
- "z": "7df7b82d.f08ee8",
- "port": "55388",
+ "id": "b36fe060.4a33e8",
+ "type": "OPCUA-IIoT-Flex-Server",
+ "z": "baed51be.8047f8",
+ "port": "55390",
"endpoint": "",
"acceptExternalCommands": true,
"maxAllowedSessionNumber": "",
@@ -120,35 +124,37 @@
"allowAnonymous": true,
"isAuditing": false,
"users": [],
- "x": 130,
- "y": 50,
+ "addressSpaceScript": "function constructAlarmAddressSpace(server, addressSpace, eventObjects) {\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 \n // globals are to find on node.context().global and should be initialized here\n node.context().global.set(\"TestOPCUAVarValue\", {})\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 = addressSpace.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 = addressSpace.addVariable({\n browseName: 'OilTankLevel',\n displayName: 'Oil Tank Level',\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 node.assert(exclusiveLimitAlarmType !== null)\n \n let oilTankLevelCondition = addressSpace.instantiateExclusiveLimitAlarm(exclusiveLimitAlarmType, {\n componentOf: tanks,\n conditionSource: oilTankLevel,\n browseName: 'OilTankLevelCondition',\n displayName: 'Oil Tank Level Condition',\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 = addressSpace.addVariable({\n browseName: 'GasTankLevel',\n displayName: 'Gas Tank Level',\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 let nonExclusiveLimitAlarmType = addressSpace.findEventType('NonExclusiveLimitAlarmType')\n node.assert(nonExclusiveLimitAlarmType !== null)\n \n let gasTankLevelCondition = addressSpace.instantiateNonExclusiveLimitAlarm(nonExclusiveLimitAlarmType, {\n componentOf: tanks,\n conditionSource: gasTankLevel,\n browseName: 'GasTankLevelCondition',\n displayName: 'Gas Tank Level Condition',\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 = addressSpace.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 addressSpace.addVariable({\n componentOf: myVariables,\n nodeId: 'ns=4;s=TestReadWrite',\n browseName: 'TestReadWrite',\n displayName: 'Test Read and Write',\n dataType: 'Double',\n value: {\n get: function () {\n return new coreServer.core.nodeOPCUA.Variant({\n dataType: coreServer.core.nodeOPCUA.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 = addressSpace.addVariable({\n componentOf: myVariables,\n nodeId: 'ns=4;s=free_memory',\n browseName: 'FreeMemory',\n displayName: 'Free Memory',\n dataType: coreServer.core.nodeOPCUA.DataType.Double,\n \n value: {\n get: function () {\n return new coreServer.core.nodeOPCUA.Variant({\n dataType: coreServer.core.nodeOPCUA.DataType.Double,\n value: coreServer.core.availableMemory()\n })\n }\n }\n })\n addressSpace.installHistoricalDataNode(memoryVariable)\n \n let globalValue = node.context().global.get(\"TestOPCUAVarValue\")\n if(globalValue) {\n coreServer.internalDebugLog('init TestOPCUAVarValue in address space')\n let testOPCUAVarValue = addressSpace.addVariable({\n componentOf: myVariables,\n nodeId: 'ns=4;s=TestOPCUAVarValue',\n browseName: 'TestOPCUAVarValue',\n displayName: 'Test OPC UA Variable Value',\n dataType: coreServer.core.nodeOPCUA.DataType.Double,\n \n value: {\n get: function () {\n return new coreServer.core.nodeOPCUA.Variant({\n dataType: coreServer.core.nodeOPCUA.DataType.Double,\n value: node.context().global.get(\"TestOPCUAVarValue\").value\n })\n },\n set: function (variant) {\n scriptObjects.testReadWrite = parseFloat(variant.value)\n return coreServer.core.nodeOPCUA.StatusCodes.Good\n }\n }\n })\n addressSpace.installHistoricalDataNode(memoryVariable)\n }\n \n } else {\n coreServer.internalDebugLog('coreServer.core needed for coreServer.core.nodeOPCUA')\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}",
+ "x": 350,
+ "y": 40,
"wires": [
- [],
[]
]
},
{
- "id": "e9e8c12d.755ba",
+ "id": "6bb27954.03ca3",
"type": "OPCUA-IIoT-Connector",
"z": "",
- "endpoint": "opc.tcp://localhost:55388/",
+ "endpoint": "opc.tcp://localhost:55390/",
"keepSessionAlive": true,
- "loginEnabled": true,
- "name": "LOCAL SERVER",
+ "loginEnabled": false,
+ "securityPolicy": "None",
+ "securityMode": "NONE",
+ "name": "LOCAL SERVER 55390",
"showStatusActivities": false,
"showErrors": false
},
{
- "id": "ccb63f42.103f6",
+ "id": "b361a5b.9df1b58",
"type": "ui_group",
"z": "",
"name": "Default",
- "tab": "ea4b4624.7d48b8",
+ "tab": "8113e46.2340318",
"disp": true,
"width": "10"
},
{
- "id": "ea4b4624.7d48b8",
+ "id": "8113e46.2340318",
"type": "ui_tab",
"z": "",
"name": "Home",
diff --git a/examples/opcua-iiot-listener.json b/examples/opcua-iiot-listener.json
index ba168ced..20cf8770 100644
--- a/examples/opcua-iiot-listener.json
+++ b/examples/opcua-iiot-listener.json
@@ -1,16 +1,16 @@
[
{
- "id": "4f332aaa.b91bd4",
+ "id": "28510964.c2d406",
"type": "tab",
"label": "IIoT OPC UA Listener",
"disabled": false,
"info": ""
},
{
- "id": "395454b7.6c33fc",
+ "id": "ec808198.810918",
"type": "OPCUA-IIoT-Listener",
- "z": "4f332aaa.b91bd4",
- "connector": "31ab10c.c0f77f",
+ "z": "28510964.c2d406",
+ "connector": "ab1b99f6.8afa1",
"action": "subscribe",
"queueSize": "10",
"name": "",
@@ -23,25 +23,25 @@
"y": 294,
"wires": [
[
- "d2f0590e.80eef8",
- "4d4d2cd0.a4cf74",
- "cda23028.cbd1b",
- "6cbbe297.d5099c",
- "d0f2797b.ff3e98",
- "4fcaecbf.9404c4"
+ "72cff5b0.633814",
+ "7aece9bd.aaf228",
+ "e6460dcf.e925d",
+ "1b69f02f.ff8ba8",
+ "904cd7d.919fba8",
+ "4f70289f.396d08"
],
[
- "4d63af0a.c8064",
- "c46dc1df.d76a6"
+ "9a3153b1.d4f708",
+ "40a5a4f5.e74c9c"
]
]
},
{
- "id": "79bfaf3.c057d5",
+ "id": "cff793fc.ad52",
"type": "ui_gauge",
- "z": "4f332aaa.b91bd4",
+ "z": "28510964.c2d406",
"name": "",
- "group": "3e4268c1.a64498",
+ "group": "550add88.d8b784",
"order": 1,
"width": "0",
"height": "0",
@@ -63,24 +63,24 @@
"wires": []
},
{
- "id": "4d63af0a.c8064",
+ "id": "9a3153b1.d4f708",
"type": "OPCUA-IIoT-Response",
- "z": "4f332aaa.b91bd4",
+ "z": "28510964.c2d406",
"name": "",
"x": 642,
"y": 432,
"wires": [
[
- "e923b9ce.622f78"
+ "e20c6ff0.a9566"
]
]
},
{
- "id": "76da45e7.983bcc",
+ "id": "dc86493a.6020b8",
"type": "ui_button",
- "z": "4f332aaa.b91bd4",
+ "z": "28510964.c2d406",
"name": "Node Two",
- "group": "3e4268c1.a64498",
+ "group": "550add88.d8b784",
"order": 2,
"width": 0,
"height": 0,
@@ -96,17 +96,17 @@
"y": 252,
"wires": [
[
- "244ba6b3.7daa6a"
+ "f234606.98a52a"
]
]
},
{
- "id": "58c9de6a.bd8a8",
+ "id": "2a6921c3.a4139e",
"type": "ui_numeric",
- "z": "4f332aaa.b91bd4",
+ "z": "28510964.c2d406",
"name": "",
"label": "Sessions",
- "group": "dcc48df4.9c63",
+ "group": "b36408f5.27074",
"order": 1,
"width": 0,
"height": 0,
@@ -123,11 +123,11 @@
]
},
{
- "id": "77dd5733.caf508",
+ "id": "eb102e29.0bf73",
"type": "ui_button",
- "z": "4f332aaa.b91bd4",
+ "z": "28510964.c2d406",
"name": "Node One",
- "group": "dcc48df4.9c63",
+ "group": "b36408f5.27074",
"order": 2,
"width": 0,
"height": 0,
@@ -143,14 +143,14 @@
"y": 198,
"wires": [
[
- "f30efad0.afa408"
+ "9a0dfd26.bcaea"
]
]
},
{
- "id": "ee24509d.512db",
+ "id": "a1486020.c96ac",
"type": "OPCUA-IIoT-Inject",
- "z": "4f332aaa.b91bd4",
+ "z": "28510964.c2d406",
"injectType": "listen",
"payload": "{ \"interval\": 500, \"queueSize\": 10 }",
"payloadType": "json",
@@ -176,14 +176,14 @@
"y": 294,
"wires": [
[
- "395454b7.6c33fc"
+ "ec808198.810918"
]
]
},
{
- "id": "e923b9ce.622f78",
+ "id": "e20c6ff0.a9566",
"type": "debug",
- "z": "4f332aaa.b91bd4",
+ "z": "28510964.c2d406",
"name": "",
"active": false,
"console": "false",
@@ -193,9 +193,9 @@
"wires": []
},
{
- "id": "d2f0590e.80eef8",
+ "id": "72cff5b0.633814",
"type": "OPCUA-IIoT-Result-Filter",
- "z": "4f332aaa.b91bd4",
+ "z": "28510964.c2d406",
"nodeId": "ns=4;s=TestReadWrite",
"datatype": "Double",
"withPrecision": true,
@@ -212,16 +212,16 @@
"y": 174,
"wires": [
[
- "79bfaf3.c057d5",
- "e00c4310.ff6d5"
+ "cff793fc.ad52",
+ "935e4c6f.63215"
],
[]
]
},
{
- "id": "4d4d2cd0.a4cf74",
+ "id": "7aece9bd.aaf228",
"type": "debug",
- "z": "4f332aaa.b91bd4",
+ "z": "28510964.c2d406",
"name": "",
"active": false,
"console": "false",
@@ -231,9 +231,9 @@
"wires": []
},
{
- "id": "c46dc1df.d76a6",
+ "id": "40a5a4f5.e74c9c",
"type": "debug",
- "z": "4f332aaa.b91bd4",
+ "z": "28510964.c2d406",
"name": "",
"active": false,
"console": "false",
@@ -243,9 +243,9 @@
"wires": []
},
{
- "id": "cda23028.cbd1b",
+ "id": "e6460dcf.e925d",
"type": "OPCUA-IIoT-Result-Filter",
- "z": "4f332aaa.b91bd4",
+ "z": "28510964.c2d406",
"nodeId": "ns=0;i=2277",
"datatype": "UInt32",
"withPrecision": true,
@@ -260,28 +260,28 @@
"y": 228,
"wires": [
[
- "58c9de6a.bd8a8"
+ "2a6921c3.a4139e"
],
[]
]
},
{
- "id": "6cbbe297.d5099c",
+ "id": "1b69f02f.ff8ba8",
"type": "OPCUA-IIoT-Response",
- "z": "4f332aaa.b91bd4",
+ "z": "28510964.c2d406",
"name": "",
"x": 642,
"y": 114,
"wires": [
[
- "adf645cf.520f18"
+ "4b72a1a0.0781f"
]
]
},
{
- "id": "adf645cf.520f18",
+ "id": "4b72a1a0.0781f",
"type": "debug",
- "z": "4f332aaa.b91bd4",
+ "z": "28510964.c2d406",
"name": "",
"active": false,
"console": "false",
@@ -291,9 +291,9 @@
"wires": []
},
{
- "id": "f7a98fe3.ab30e",
+ "id": "96d54219.68d1b",
"type": "OPCUA-IIoT-Server",
- "z": "4f332aaa.b91bd4",
+ "z": "28510964.c2d406",
"port": "55388",
"endpoint": "",
"acceptExternalCommands": true,
@@ -315,9 +315,9 @@
]
},
{
- "id": "f30efad0.afa408",
+ "id": "9a0dfd26.bcaea",
"type": "OPCUA-IIoT-Node",
- "z": "4f332aaa.b91bd4",
+ "z": "28510964.c2d406",
"nodeId": "ns=0;i=2277",
"datatype": "NodeId",
"value": "",
@@ -327,14 +327,14 @@
"y": 198,
"wires": [
[
- "395454b7.6c33fc"
+ "ec808198.810918"
]
]
},
{
- "id": "244ba6b3.7daa6a",
+ "id": "f234606.98a52a",
"type": "OPCUA-IIoT-Node",
- "z": "4f332aaa.b91bd4",
+ "z": "28510964.c2d406",
"nodeId": "ns=4;s=TestReadWrite",
"datatype": "NodeId",
"value": "",
@@ -344,16 +344,16 @@
"y": 252,
"wires": [
[
- "395454b7.6c33fc"
+ "ec808198.810918"
]
]
},
{
- "id": "a258803e.c366a",
+ "id": "df887982.f8e98",
"type": "ui_gauge",
- "z": "4f332aaa.b91bd4",
+ "z": "28510964.c2d406",
"name": "",
- "group": "15936036.5bad2",
+ "group": "a4b70df0.e99228",
"order": 1,
"width": "0",
"height": "0",
@@ -375,9 +375,9 @@
"wires": []
},
{
- "id": "d0f2797b.ff3e98",
+ "id": "904cd7d.919fba8",
"type": "OPCUA-IIoT-Result-Filter",
- "z": "4f332aaa.b91bd4",
+ "z": "28510964.c2d406",
"nodeId": "ns=4;s=FullCounter",
"datatype": "Int32",
"withPrecision": true,
@@ -394,16 +394,16 @@
"y": 282,
"wires": [
[
- "a258803e.c366a",
- "79c0d078.8cabc"
+ "df887982.f8e98",
+ "83e121a3.de2b58"
],
[]
]
},
{
- "id": "4fcaecbf.9404c4",
+ "id": "4f70289f.396d08",
"type": "OPCUA-IIoT-Result-Filter",
- "z": "4f332aaa.b91bd4",
+ "z": "28510964.c2d406",
"nodeId": "ns=4;s=Counter",
"datatype": "UInt16",
"withPrecision": true,
@@ -420,17 +420,17 @@
"y": 336,
"wires": [
[
- "e9246e90.5884c"
+ "4614fa4.85b9504"
],
[]
]
},
{
- "id": "e9246e90.5884c",
+ "id": "4614fa4.85b9504",
"type": "ui_gauge",
- "z": "4f332aaa.b91bd4",
+ "z": "28510964.c2d406",
"name": "",
- "group": "15936036.5bad2",
+ "group": "a4b70df0.e99228",
"order": 1,
"width": "0",
"height": "0",
@@ -452,9 +452,9 @@
"wires": []
},
{
- "id": "79c0d078.8cabc",
+ "id": "83e121a3.de2b58",
"type": "debug",
- "z": "4f332aaa.b91bd4",
+ "z": "28510964.c2d406",
"name": "",
"active": false,
"console": "false",
@@ -464,9 +464,9 @@
"wires": []
},
{
- "id": "e00c4310.ff6d5",
+ "id": "935e4c6f.63215",
"type": "debug",
- "z": "4f332aaa.b91bd4",
+ "z": "28510964.c2d406",
"name": "",
"active": false,
"console": "false",
@@ -476,50 +476,52 @@
"wires": []
},
{
- "id": "31ab10c.c0f77f",
+ "id": "ab1b99f6.8afa1",
"type": "OPCUA-IIoT-Connector",
"z": "",
"endpoint": "opc.tcp://localhost:55388/",
"keepSessionAlive": true,
- "loginEnabled": true,
+ "loginEnabled": false,
+ "securityPolicy": "None",
+ "securityMode": "NONE",
"name": "LOCAL SERVER",
"showStatusActivities": false,
"showErrors": false
},
{
- "id": "3e4268c1.a64498",
+ "id": "550add88.d8b784",
"type": "ui_group",
"z": "",
"name": "GenData",
- "tab": "a92a2d46.79c68",
+ "tab": "7bc369d6.c7be8",
"order": 1,
"disp": true,
"width": "6"
},
{
- "id": "dcc48df4.9c63",
+ "id": "b36408f5.27074",
"type": "ui_group",
"z": "",
"name": "Sessions",
- "tab": "a92a2d46.79c68",
+ "tab": "7bc369d6.c7be8",
"order": 2,
"disp": true,
"width": "4"
},
{
- "id": "15936036.5bad2",
+ "id": "a4b70df0.e99228",
"type": "ui_group",
- "z": "4f332aaa.b91bd4",
+ "z": "28510964.c2d406",
"name": "Counters (Start Abo)",
- "tab": "a92a2d46.79c68",
+ "tab": "7bc369d6.c7be8",
"order": 3,
"disp": true,
"width": "6"
},
{
- "id": "a92a2d46.79c68",
+ "id": "7bc369d6.c7be8",
"type": "ui_tab",
- "z": "4f332aaa.b91bd4",
+ "z": "28510964.c2d406",
"name": "Node-RED OPC UA IIoT",
"icon": "dashboard"
}
diff --git a/examples/opcua-iiot-method-caller.json b/examples/opcua-iiot-method-caller.json
index 9c38fdd1..f376e582 100644
--- a/examples/opcua-iiot-method-caller.json
+++ b/examples/opcua-iiot-method-caller.json
@@ -1,15 +1,15 @@
[
{
- "id": "9f1dab9d.97fac",
+ "id": "93430a9d.48e0d8",
"type": "tab",
"label": "IIoT OPC UA Method Call",
"disabled": false,
"info": ""
},
{
- "id": "16840277.94e98e",
+ "id": "7f913a50.4c2484",
"type": "debug",
- "z": "9f1dab9d.97fac",
+ "z": "93430a9d.48e0d8",
"name": "",
"active": true,
"console": "false",
@@ -19,10 +19,10 @@
"wires": []
},
{
- "id": "1dacbf1b.0b3f01",
+ "id": "15af6265.abcf8e",
"type": "OPCUA-IIoT-Method-Caller",
- "z": "9f1dab9d.97fac",
- "connector": "82f5412f.6564f8",
+ "z": "93430a9d.48e0d8",
+ "connector": "9f759b99.9d00e8",
"objectId": "ns=4;i=1234",
"methodId": "ns=4;i=12345",
"value": "",
@@ -43,15 +43,15 @@
"y": 140,
"wires": [
[
- "16840277.94e98e",
- "23c467db.f4287"
+ "7f913a50.4c2484",
+ "bd612574.8702f8"
]
]
},
{
- "id": "23c467db.f4287",
+ "id": "bd612574.8702f8",
"type": "OPCUA-IIoT-Response",
- "z": "9f1dab9d.97fac",
+ "z": "93430a9d.48e0d8",
"name": "",
"showStatusActivities": false,
"showErrors": false,
@@ -59,14 +59,14 @@
"y": 140,
"wires": [
[
- "83f9aeba.fb88a"
+ "edb93a1f.8c73f8"
]
]
},
{
- "id": "83f9aeba.fb88a",
+ "id": "edb93a1f.8c73f8",
"type": "debug",
- "z": "9f1dab9d.97fac",
+ "z": "93430a9d.48e0d8",
"name": "",
"active": false,
"console": "false",
@@ -76,9 +76,9 @@
"wires": []
},
{
- "id": "7b860fbc.baba08",
+ "id": "ee5f848e.12ee9",
"type": "OPCUA-IIoT-Inject",
- "z": "9f1dab9d.97fac",
+ "z": "93430a9d.48e0d8",
"injectType": "inject",
"payload": "",
"payloadType": "date",
@@ -93,14 +93,14 @@
"y": 140,
"wires": [
[
- "1dacbf1b.0b3f01"
+ "15af6265.abcf8e"
]
]
},
{
- "id": "5c0eb880.ae3358",
+ "id": "1316bd2d.8c892b",
"type": "inject",
- "z": "9f1dab9d.97fac",
+ "z": "93430a9d.48e0d8",
"name": "",
"topic": "",
"payload": "",
@@ -112,30 +112,30 @@
"y": 200,
"wires": [
[
- "e3999294.0851b"
+ "dc85d337.128bd8"
]
]
},
{
- "id": "e3999294.0851b",
+ "id": "dc85d337.128bd8",
"type": "function",
- "z": "9f1dab9d.97fac",
- "name": "bark six time with volume twelve",
+ "z": "93430a9d.48e0d8",
+ "name": "bark six times with volume twelve",
"func": "msg.payload = {\n objectId: 'ns=4;i=1234',\n methodId: 'ns=4;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": 350,
+ "x": 360,
"y": 200,
"wires": [
[
- "1dacbf1b.0b3f01"
+ "15af6265.abcf8e"
]
]
},
{
- "id": "94a2cfac.db9368",
+ "id": "818be5ef.f6e6e",
"type": "comment",
- "z": "9f1dab9d.97fac",
+ "z": "93430a9d.48e0d8",
"name": "Information",
"info": "If you have none OPC UA server on other tabs, \nplease drag&drop an OPC UA Server \nfrom the package nodes on this tab!",
"x": 130,
@@ -143,7 +143,7 @@
"wires": []
},
{
- "id": "82f5412f.6564f8",
+ "id": "9f759b99.9d00e8",
"type": "OPCUA-IIoT-Connector",
"z": "",
"endpoint": "opc.tcp://localhost:55388/UA/NodeREDIIOTServer",
diff --git a/examples/opcua-iiot-write.json b/examples/opcua-iiot-write.json
index e45075fb..cad57e60 100644
--- a/examples/opcua-iiot-write.json
+++ b/examples/opcua-iiot-write.json
@@ -1,16 +1,16 @@
[
{
- "id": "241adbfe.ae3c04",
+ "id": "d428d9ac.f5d008",
"type": "tab",
"label": "IIoT OPC UA Write",
"disabled": false,
"info": ""
},
{
- "id": "7401939c.1383dc",
+ "id": "c84a6037.6e4188",
"type": "OPCUA-IIoT-Write",
- "z": "241adbfe.ae3c04",
- "connector": "31ab10c.c0f77f",
+ "z": "d428d9ac.f5d008",
+ "connector": "c818b758.0d809",
"name": "",
"showStatusActivities": false,
"showErrors": true,
@@ -18,17 +18,17 @@
"y": 114,
"wires": [
[
- "badce523.15dd28",
- "35b8a482.16587c",
- "1e166e3d.8533f2",
- "bf523d27.b669e"
+ "f8f84161.cfba28",
+ "1c0935e.16aa64a",
+ "fe233d72.01ee58",
+ "36da9780.dd4c98"
]
]
},
{
- "id": "48a5ef83.88bda",
+ "id": "a1270919.00b3b",
"type": "OPCUA-IIoT-Inject",
- "z": "241adbfe.ae3c04",
+ "z": "d428d9ac.f5d008",
"injectType": "write",
"payload": "",
"payloadType": "date",
@@ -49,14 +49,14 @@
"y": 114,
"wires": [
[
- "77aeabd2.77ded4"
+ "8133d2ca.b93378"
]
]
},
{
- "id": "bf523d27.b669e",
+ "id": "36da9780.dd4c98",
"type": "debug",
- "z": "241adbfe.ae3c04",
+ "z": "d428d9ac.f5d008",
"name": "",
"active": false,
"console": "false",
@@ -66,9 +66,9 @@
"wires": []
},
{
- "id": "badce523.15dd28",
+ "id": "f8f84161.cfba28",
"type": "debug",
- "z": "241adbfe.ae3c04",
+ "z": "d428d9ac.f5d008",
"name": "",
"active": false,
"console": "false",
@@ -78,9 +78,9 @@
"wires": []
},
{
- "id": "35b8a482.16587c",
+ "id": "1c0935e.16aa64a",
"type": "debug",
- "z": "241adbfe.ae3c04",
+ "z": "d428d9ac.f5d008",
"name": "",
"active": false,
"console": "false",
@@ -90,9 +90,9 @@
"wires": []
},
{
- "id": "76dd99f3.3752b8",
+ "id": "5aa9abc2.6a40cc",
"type": "debug",
- "z": "241adbfe.ae3c04",
+ "z": "d428d9ac.f5d008",
"name": "",
"active": false,
"console": "false",
@@ -102,22 +102,22 @@
"wires": []
},
{
- "id": "1e166e3d.8533f2",
+ "id": "fe233d72.01ee58",
"type": "OPCUA-IIoT-Response",
- "z": "241adbfe.ae3c04",
+ "z": "d428d9ac.f5d008",
"name": "",
"x": 670,
"y": 114,
"wires": [
[
- "e5940274.dfdbc"
+ "c5a7f41e.8c4d4"
]
]
},
{
- "id": "e5940274.dfdbc",
+ "id": "c5a7f41e.8c4d4",
"type": "debug",
- "z": "241adbfe.ae3c04",
+ "z": "d428d9ac.f5d008",
"name": "",
"active": false,
"console": "false",
@@ -127,9 +127,9 @@
"wires": []
},
{
- "id": "77aeabd2.77ded4",
+ "id": "8133d2ca.b93378",
"type": "data-generator",
- "z": "241adbfe.ae3c04",
+ "z": "d428d9ac.f5d008",
"name": "dGen",
"field": "valuesToWrite",
"fieldType": "msg",
@@ -139,15 +139,15 @@
"y": 114,
"wires": [
[
- "7401939c.1383dc",
- "76dd99f3.3752b8"
+ "c84a6037.6e4188",
+ "5aa9abc2.6a40cc"
]
]
},
{
- "id": "c77d752.ac97788",
+ "id": "abb9db48.10dc18",
"type": "comment",
- "z": "241adbfe.ae3c04",
+ "z": "d428d9ac.f5d008",
"name": "install node-red-node-data-generator",
"info": "",
"x": 350,
@@ -155,12 +155,14 @@
"wires": []
},
{
- "id": "31ab10c.c0f77f",
+ "id": "c818b758.0d809",
"type": "OPCUA-IIoT-Connector",
"z": "",
"endpoint": "opc.tcp://localhost:55388/",
"keepSessionAlive": true,
- "loginEnabled": true,
+ "loginEnabled": false,
+ "securityPolicy": "None",
+ "securityMode": "NONE",
"name": "LOCAL SERVER",
"showStatusActivities": false,
"showErrors": false
diff --git a/gulpfile.js b/gulpfile.js
index 16da1ce3..8a246fe9 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -17,14 +17,15 @@ const babel = require('gulp-babel')
const sequence = require('gulp-sequence')
const sourcemaps = require('gulp-sourcemaps')
const pump = require('pump')
+const replace = require('gulp-replace')
gulp.task('default', function () {
// place code for your default task here
})
-gulp.task('docs', sequence('doc', 'docIcons', 'docExamples', 'docImages'))
+gulp.task('docs', sequence('doc', 'docIcons', 'docImages'))
gulp.task('build', sequence('clean', 'web', 'nodejs', 'locale'))
-gulp.task('publish', sequence('build', 'maps', 'public', 'icons', 'docs', 'releaseExamples'))
+gulp.task('publish', sequence('build', 'maps', 'public', 'icons', 'docs'))
gulp.task('icons', function () {
return gulp.src('src/icons/**/*').pipe(gulp.dest('opcuaIIoT/icons'))
@@ -34,14 +35,6 @@ gulp.task('docIcons', function () {
return gulp.src('src/icons/**/*').pipe(gulp.dest('docs/gen/icons'))
})
-gulp.task('docExamples', function () {
- return gulp.src('examples/**/*').pipe(gulp.dest('docs/gen/examples'))
-})
-
-gulp.task('releaseExamples', function () {
- return gulp.src('examples/**/*').pipe(gulp.dest('opcuaIIoT/examples'))
-})
-
gulp.task('docImages', function () {
return gulp.src('images/**/*').pipe(gulp.dest('docs/gen/images'))
})
@@ -81,9 +74,12 @@ gulp.task('web', function () {
})
gulp.task('nodejs', function (cb) {
+ let anchor = '// SOURCE-MAP-REQUIRED'
+
pump([
gulp.src('src/**/*.js')
.pipe(sourcemaps.init({loadMaps: true}))
+ .pipe(replace(anchor, 'require(\'source-map-support\').install()'))
.pipe(babel({presets: ['es2015']}))
.pipe(uglify())
.pipe(sourcemaps.write('maps')), gulp.dest('opcuaIIoT')],
diff --git a/package.json b/package.json
index 3842f879..5d947fb4 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "node-red-contrib-iiot-opcua",
- "version": "1.3.2",
+ "version": "1.3.3",
"private": false,
"description": "The next evolution IoT/IIoT OPC UA toolbox package for Node-RED based on node-opcua.",
"repository": {
@@ -14,6 +14,7 @@
"debug": "3.1.0",
"easy-table": "1.1.0",
"node-opcua": "0.1.1-0",
+ "source-map-support": "0.5.0",
"treeify": "1.0.1",
"underscore": "1.8.3",
"vm2": "3.5.2"
@@ -93,6 +94,7 @@
"gulp-htmlmin": "^4.0.0",
"gulp-jsdoc3": "^1.0.1",
"gulp-obfuscate": "^0.2.9",
+ "gulp-replace": "^0.6.1",
"gulp-sequence": "^1.0.0",
"gulp-sourcemaps": "^2.6.3",
"gulp-uglify": "^3.0.0",
diff --git a/src/core/opcua-iiot-core-browser.js b/src/core/opcua-iiot-core-browser.js
index dfdbbfc3..bf0dc53f 100644
--- a/src/core/opcua-iiot-core-browser.js
+++ b/src/core/opcua-iiot-core-browser.js
@@ -7,6 +7,7 @@
node-red-contrib-iiot-opcua
*/
'use strict'
+// SOURCE-MAP-REQUIRED
/**
* Nested namespace settings.
diff --git a/src/core/opcua-iiot-core-client.js b/src/core/opcua-iiot-core-client.js
index 67534963..3e611be8 100644
--- a/src/core/opcua-iiot-core-client.js
+++ b/src/core/opcua-iiot-core-client.js
@@ -7,6 +7,7 @@
node-red-contrib-iiot-opcua
*/
'use strict'
+// SOURCE-MAP-REQUIRED
/**
* Nested namespace settings.
diff --git a/src/core/opcua-iiot-core-connector.js b/src/core/opcua-iiot-core-connector.js
index 80a4fadb..2e865008 100644
--- a/src/core/opcua-iiot-core-connector.js
+++ b/src/core/opcua-iiot-core-connector.js
@@ -6,6 +6,7 @@
node-red-contrib-iiot-opcua
*/
'use strict'
+// SOURCE-MAP-REQUIRED
/**
* Nested namespace settings.
diff --git a/src/core/opcua-iiot-core-filter.js b/src/core/opcua-iiot-core-filter.js
index 8b52376f..d74ecd11 100644
--- a/src/core/opcua-iiot-core-filter.js
+++ b/src/core/opcua-iiot-core-filter.js
@@ -6,6 +6,7 @@
node-red-contrib-iiot-opcua
*/
'use strict'
+// SOURCE-MAP-REQUIRED
/**
* Nested namespace settings.
diff --git a/src/core/opcua-iiot-core-inject.js b/src/core/opcua-iiot-core-inject.js
index 71cd53f7..3533a75f 100644
--- a/src/core/opcua-iiot-core-inject.js
+++ b/src/core/opcua-iiot-core-inject.js
@@ -6,6 +6,7 @@
node-red-contrib-iiot-opcua
*/
'use strict'
+// SOURCE-MAP-REQUIRED
/**
* Nested namespace settings.
diff --git a/src/core/opcua-iiot-core-listener.js b/src/core/opcua-iiot-core-listener.js
index 80eb7062..b2829ae4 100644
--- a/src/core/opcua-iiot-core-listener.js
+++ b/src/core/opcua-iiot-core-listener.js
@@ -7,6 +7,7 @@
node-red-contrib-iiot-opcua
*/
'use strict'
+// SOURCE-MAP-REQUIRED
/**
* Nested namespace settings.
diff --git a/src/core/opcua-iiot-core-method.js b/src/core/opcua-iiot-core-method.js
index f3795b6d..a44b467b 100644
--- a/src/core/opcua-iiot-core-method.js
+++ b/src/core/opcua-iiot-core-method.js
@@ -6,6 +6,7 @@
node-red-contrib-iiot-opcua
*/
'use strict'
+// SOURCE-MAP-REQUIRED
/**
* Nested namespace settings.
diff --git a/src/core/opcua-iiot-core-response.js b/src/core/opcua-iiot-core-response.js
index 26b3e253..a4aeba17 100644
--- a/src/core/opcua-iiot-core-response.js
+++ b/src/core/opcua-iiot-core-response.js
@@ -7,6 +7,7 @@
node-red-contrib-iiot-opcua
*/
'use strict'
+// SOURCE-MAP-REQUIRED
/**
* Nested namespace settings.
diff --git a/src/core/opcua-iiot-core-server-isa95.js b/src/core/opcua-iiot-core-server-isa95.js
index 3b88139e..8358c53e 100644
--- a/src/core/opcua-iiot-core-server-isa95.js
+++ b/src/core/opcua-iiot-core-server-isa95.js
@@ -7,6 +7,7 @@
node-red-contrib-iiot-opcua
*/
'use strict'
+// SOURCE-MAP-REQUIRED
/**
* Nested namespace settings.
diff --git a/src/core/opcua-iiot-core-server.js b/src/core/opcua-iiot-core-server.js
index dadcb31f..bad01e79 100644
--- a/src/core/opcua-iiot-core-server.js
+++ b/src/core/opcua-iiot-core-server.js
@@ -7,6 +7,7 @@
node-red-contrib-iiot-opcua
*/
'use strict'
+// SOURCE-MAP-REQUIRED
/**
* Nested namespace settings.
diff --git a/src/core/opcua-iiot-core.js b/src/core/opcua-iiot-core.js
index 76458809..37c978f1 100644
--- a/src/core/opcua-iiot-core.js
+++ b/src/core/opcua-iiot-core.js
@@ -7,6 +7,7 @@
node-red-contrib-iiot-opcua
*/
'use strict'
+// SOURCE-MAP-REQUIRED
/**
* Nested namespace settings.
diff --git a/src/opcua-iiot-browser.js b/src/opcua-iiot-browser.js
index 4860de48..fbde76ab 100644
--- a/src/opcua-iiot-browser.js
+++ b/src/opcua-iiot-browser.js
@@ -14,6 +14,7 @@
* @param RED
*/
module.exports = function (RED) {
+ // SOURCE-MAP-REQUIRED
let coreBrowser = require('./core/opcua-iiot-core-browser')
let browserEntries = []
let nodesToRead = []
diff --git a/src/opcua-iiot-connector.js b/src/opcua-iiot-connector.js
index ea072b8a..94550041 100644
--- a/src/opcua-iiot-connector.js
+++ b/src/opcua-iiot-connector.js
@@ -14,6 +14,7 @@
* @param RED
*/
module.exports = function (RED) {
+ // SOURCE-MAP-REQUIRED
let coreConnector = require('./core/opcua-iiot-core-connector')
// let OPCUADiscoveryServer = require('lib/server/opcua_discovery_server').OPCUADiscoveryServer
diff --git a/src/opcua-iiot-event.js b/src/opcua-iiot-event.js
index bac66c78..c1a46e1d 100644
--- a/src/opcua-iiot-event.js
+++ b/src/opcua-iiot-event.js
@@ -14,6 +14,7 @@
* @param RED
*/
module.exports = function (RED) {
+ // SOURCE-MAP-REQUIRED
let coreListener = require('./core/opcua-iiot-core-listener')
let _ = require('underscore')
diff --git a/src/opcua-iiot-flex-server.js b/src/opcua-iiot-flex-server.js
index a902cb54..688dfa23 100644
--- a/src/opcua-iiot-flex-server.js
+++ b/src/opcua-iiot-flex-server.js
@@ -14,6 +14,7 @@
* @param RED
*/
module.exports = function (RED) {
+ // SOURCE-MAP-REQUIRED
let coreServer = require('./core/opcua-iiot-core-server')
let path = require('path')
let os = require('os')
diff --git a/src/opcua-iiot-inject.js b/src/opcua-iiot-inject.js
index 2904d8f5..08da091b 100644
--- a/src/opcua-iiot-inject.js
+++ b/src/opcua-iiot-inject.js
@@ -15,6 +15,7 @@
*/
module.exports = function (RED) {
+ // SOURCE-MAP-REQUIRED
let coreInject = require('./core/opcua-iiot-core-inject')
let cron = require('cron')
let _ = require('underscore')
diff --git a/src/opcua-iiot-listener.js b/src/opcua-iiot-listener.js
index 77178ee1..33a3a7b5 100644
--- a/src/opcua-iiot-listener.js
+++ b/src/opcua-iiot-listener.js
@@ -14,6 +14,7 @@
* @param RED
*/
module.exports = function (RED) {
+ // SOURCE-MAP-REQUIRED
let coreListener = require('./core/opcua-iiot-core-listener')
let Map = require('collections/map')
diff --git a/src/opcua-iiot-method-caller.js b/src/opcua-iiot-method-caller.js
index 8480fdb1..9510c563 100644
--- a/src/opcua-iiot-method-caller.js
+++ b/src/opcua-iiot-method-caller.js
@@ -13,6 +13,7 @@
* @param RED
*/
module.exports = function (RED) {
+ // SOURCE-MAP-REQUIRED
let coreMethod = require('./core/opcua-iiot-core-method')
function OPCUAIIoTMethodCaller (config) {
diff --git a/src/opcua-iiot-node.js b/src/opcua-iiot-node.js
index 6aabd71a..3b942eb6 100644
--- a/src/opcua-iiot-node.js
+++ b/src/opcua-iiot-node.js
@@ -14,6 +14,7 @@
* @param RED
*/
module.exports = function (RED) {
+ // SOURCE-MAP-REQUIRED
let core = require('./core/opcua-iiot-core')
let _ = require('underscore')
diff --git a/src/opcua-iiot-read.js b/src/opcua-iiot-read.js
index f6ff2722..75433423 100644
--- a/src/opcua-iiot-read.js
+++ b/src/opcua-iiot-read.js
@@ -14,6 +14,7 @@
* @param RED
*/
module.exports = function (RED) {
+ // SOURCE-MAP-REQUIRED
let coreClient = require('./core/opcua-iiot-core-client')
function OPCUAIIoTRead (config) {
diff --git a/src/opcua-iiot-response.js b/src/opcua-iiot-response.js
index 1a5f0ace..75d3308e 100644
--- a/src/opcua-iiot-response.js
+++ b/src/opcua-iiot-response.js
@@ -13,6 +13,7 @@
* @param RED
*/
module.exports = function (RED) {
+ // SOURCE-MAP-REQUIRED
let coreResponse = require('./core/opcua-iiot-core-response')
const EMPTY_LIST = 0
diff --git a/src/opcua-iiot-result-filter.js b/src/opcua-iiot-result-filter.js
index 8ada0538..17aa9f24 100644
--- a/src/opcua-iiot-result-filter.js
+++ b/src/opcua-iiot-result-filter.js
@@ -13,6 +13,7 @@
* @param RED
*/
module.exports = function (RED) {
+ // SOURCE-MAP-REQUIRED
let coreFilter = require('./core/opcua-iiot-core-filter')
let _ = require('underscore')
diff --git a/src/opcua-iiot-server-aso.js b/src/opcua-iiot-server-aso.js
index 02cd2262..0542ee53 100644
--- a/src/opcua-iiot-server-aso.js
+++ b/src/opcua-iiot-server-aso.js
@@ -13,6 +13,7 @@
* @param RED
*/
module.exports = function (RED) {
+ // SOURCE-MAP-REQUIRED
let core = require('./core/opcua-iiot-core')
let _ = require('underscore')
diff --git a/src/opcua-iiot-server-cmd.js b/src/opcua-iiot-server-cmd.js
index 84acabaa..ae353561 100644
--- a/src/opcua-iiot-server-cmd.js
+++ b/src/opcua-iiot-server-cmd.js
@@ -13,6 +13,7 @@
* @param RED
*/
module.exports = function (RED) {
+ // SOURCE-MAP-REQUIRED
let core = require('./core/opcua-iiot-core')
function OPCUAIIoTCMD (config) {
diff --git a/src/opcua-iiot-server-isa95.js b/src/opcua-iiot-server-isa95.js
index 00373246..580f2328 100644
--- a/src/opcua-iiot-server-isa95.js
+++ b/src/opcua-iiot-server-isa95.js
@@ -14,6 +14,7 @@
* @param RED
*/
module.exports = function (RED) {
+ // SOURCE-MAP-REQUIRED
let coreServer = require('./core/opcua-iiot-core-server')
let path = require('path')
let os = require('os')
diff --git a/src/opcua-iiot-server.js b/src/opcua-iiot-server.js
index 85b84845..db598eab 100644
--- a/src/opcua-iiot-server.js
+++ b/src/opcua-iiot-server.js
@@ -14,6 +14,7 @@
* @param RED
*/
module.exports = function (RED) {
+ // SOURCE-MAP-REQUIRED
let coreServer = require('./core/opcua-iiot-core-server')
let path = require('path')
let os = require('os')
diff --git a/src/opcua-iiot-write.js b/src/opcua-iiot-write.js
index eb2049de..f6bd9089 100644
--- a/src/opcua-iiot-write.js
+++ b/src/opcua-iiot-write.js
@@ -14,6 +14,7 @@
* @param RED
*/
module.exports = function (RED) {
+ // SOURCE-MAP-REQUIRED
let coreClient = require('./core/opcua-iiot-core-client')
function OPCUAIIoTWrite (config) {