node-red-contrib-iiot-opcua
Version:
An Industrial IoT OPC UA toolbox contribution package for Node-RED based on node-opcua.
2,219 lines (2,218 loc) • 57.3 kB
JSON
[
{
"id": "92c9cabb.72c3",
"type": "tab",
"label": "SDM630 Modbus Gateway",
"disabled": false,
"info": ""
},
{
"id": "e9b3f9a0.9c6d5",
"type": "tab",
"label": "SDM630 dynamic",
"disabled": false,
"info": ""
},
{
"id": "b56de45f.f8861",
"type": "tab",
"label": "SDM630 static",
"disabled": false,
"info": ""
},
{
"id": "1bf9637b.fcaa35",
"type": "subflow",
"name": "OPC UA Server",
"info": "",
"in": [
{
"x": 80,
"y": 80,
"wires": [
{
"id": "e4e75ba4.092028"
}
]
}
],
"out": []
},
{
"id": "d8dd83e7.2d5f98",
"type": "subflow",
"name": "Model",
"info": "",
"in": [],
"out": [
{
"x": 680,
"y": 390,
"wires": [
{
"id": "a7cefbfd.53b2",
"port": 0
},
{
"id": "c6bf3d0e.e38538",
"port": 0
},
{
"id": "f88e90ab.8cb848",
"port": 0
},
{
"id": "348011f5.f6759e",
"port": 0
},
{
"id": "1c0f75c1.99bb7a",
"port": 0
},
{
"id": "115b7b7.75b3505",
"port": 0
},
{
"id": "7ce1e8d5.d29d68",
"port": 0
},
{
"id": "79fb8a18.976f6c",
"port": 0
},
{
"id": "4e1488bd.803378",
"port": 0
},
{
"id": "2c8e91fa.0847b6",
"port": 0
},
{
"id": "4f65c288.11ea74",
"port": 0
},
{
"id": "79d04a44.09951c",
"port": 0
},
{
"id": "84f5ed8d.c9c588",
"port": 0
},
{
"id": "837a8aed.befcc",
"port": 0
},
{
"id": "29410f9b.053928",
"port": 0
},
{
"id": "c2b3053.5c4c278",
"port": 0
},
{
"id": "9edf10da.3a47b",
"port": 0
},
{
"id": "f8232b11.c51bc8",
"port": 0
},
{
"id": "e7f8f825.d9ade8",
"port": 0
}
]
}
]
},
{
"id": "8cae93d.3604d7",
"type": "subflow",
"name": "SDM630 charts",
"info": "",
"in": [
{
"x": 170,
"y": 360,
"wires": [
{
"id": "96a05c7.bfd24a"
},
{
"id": "307d37f1.a25678"
},
{
"id": "18da947e.d6390c"
},
{
"id": "3f35ad83.d9b902"
},
{
"id": "5fbc5bf0.76f724"
},
{
"id": "7c75c56a.88d7ec"
},
{
"id": "961ac2c1.169ce"
},
{
"id": "94f79c36.9194e"
},
{
"id": "d5f99c3e.1a0ea"
},
{
"id": "69b05811.286528"
},
{
"id": "5634635c.5d136c"
}
]
}
],
"out": [
{
"x": 680,
"y": 100,
"wires": [
{
"id": "96a05c7.bfd24a",
"port": 0
},
{
"id": "307d37f1.a25678",
"port": 0
},
{
"id": "18da947e.d6390c",
"port": 0
},
{
"id": "3f35ad83.d9b902",
"port": 0
}
]
},
{
"x": 680,
"y": 320,
"wires": [
{
"id": "5fbc5bf0.76f724",
"port": 0
},
{
"id": "7c75c56a.88d7ec",
"port": 0
},
{
"id": "961ac2c1.169ce",
"port": 0
}
]
},
{
"x": 680,
"y": 480,
"wires": [
{
"id": "94f79c36.9194e",
"port": 0
},
{
"id": "d5f99c3e.1a0ea",
"port": 0
},
{
"id": "69b05811.286528",
"port": 0
},
{
"id": "5634635c.5d136c",
"port": 0
}
]
}
]
},
{
"id": "8321718e.e9d488",
"type": "subflow",
"name": "static charts",
"info": "",
"in": [
{
"x": 280,
"y": 220,
"wires": [
{
"id": "11e8206f.21eb3"
},
{
"id": "435f152c.3cd86c"
},
{
"id": "b2db30fd.35c41"
},
{
"id": "d228a3a.44ff56"
}
]
}
],
"out": [
{
"x": 780,
"y": 80,
"wires": [
{
"id": "11e8206f.21eb3",
"port": 0
},
{
"id": "435f152c.3cd86c",
"port": 0
},
{
"id": "b2db30fd.35c41",
"port": 0
},
{
"id": "d228a3a.44ff56",
"port": 0
}
]
}
]
},
{
"id": "2a101dfb.122152",
"type": "ui_base",
"z": "",
"theme": {
"name": "theme-dark",
"lightTheme": {
"default": "#0094CE",
"baseColor": "#0094CE",
"baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif",
"edited": true,
"reset": false
},
"darkTheme": {
"default": "#097479",
"baseColor": "#097479",
"baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif",
"edited": true,
"reset": false
},
"customTheme": {
"name": "Untitled Theme 1",
"default": "#4B7930",
"baseColor": "#4B7930",
"baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif"
},
"themeState": {
"base-color": {
"default": "#097479",
"value": "#097479",
"edited": false
},
"page-titlebar-backgroundColor": {
"value": "#097479",
"edited": false
},
"page-backgroundColor": {
"value": "#111111",
"edited": false
},
"page-sidebar-backgroundColor": {
"value": "#000000",
"edited": false
},
"group-textColor": {
"value": "#0eb8c0",
"edited": false
},
"group-borderColor": {
"value": "#555555",
"edited": false
},
"group-backgroundColor": {
"value": "#333333",
"edited": false
},
"widget-textColor": {
"value": "#eeeeee",
"edited": false
},
"widget-backgroundColor": {
"value": "#097479",
"edited": false
},
"widget-borderColor": {
"value": "#333333",
"edited": false
},
"base-font": {
"value": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif"
}
}
},
"site": {
"name": "Node-RED Dashboard",
"hideToolbar": "false",
"allowSwipe": "false",
"dateFormat": "DD/MM/YYYY",
"sizes": {
"sx": 48,
"sy": 48,
"gx": 6,
"gy": 6,
"cx": 6,
"cy": 6,
"px": 0,
"py": 0
}
}
},
{
"id": "1707cb53.3e54ad",
"type": "OPCUA-IIoT-Connector",
"z": "e9b3f9a0.9c6d5",
"discoveryUrl": "",
"endpoint": "opc.tcp://localhost:55388/",
"keepSessionAlive": true,
"loginEnabled": false,
"securityPolicy": "Basic256",
"securityMode": "SignAndEncrypt",
"name": "Dynamic Connector",
"showStatusActivities": false,
"showErrors": false,
"publicCertificateFile": "",
"privateKeyFile": "",
"defaultSecureTokenLifetime": "",
"endpointMustExist": false,
"autoSelectRightEndpoint": false
},
{
"id": "d730fe1b.be9188",
"type": "ui_tab",
"z": "e9b3f9a0.9c6d5",
"name": "smartHome Energy",
"icon": "dashboard",
"order": 1
},
{
"id": "a7d889b8.8d4638",
"type": "ui_tab",
"z": "b56de45f.f8861",
"name": "smartHouse",
"icon": "dashboard",
"order": 3
},
{
"id": "82a80892.06eb38",
"type": "ui_group",
"z": "e9b3f9a0.9c6d5",
"name": "Dynamic",
"tab": "d730fe1b.be9188",
"disp": true,
"width": "30"
},
{
"id": "f4f863e1.12067",
"type": "ui_group",
"z": "b56de45f.f8861",
"name": "Static",
"tab": "a7d889b8.8d4638",
"order": 2,
"disp": true,
"width": "6"
},
{
"id": "27cb7a6b.f6dd86",
"type": "OPCUA-IIoT-Connector",
"z": "b56de45f.f8861",
"discoveryUrl": "",
"endpoint": "opc.tcp://localhost:55388/",
"keepSessionAlive": true,
"loginEnabled": false,
"securityPolicy": "Basic256",
"securityMode": "Sign",
"name": "Static Connector",
"showStatusActivities": false,
"showErrors": false,
"publicCertificateFile": "",
"privateKeyFile": "",
"defaultSecureTokenLifetime": "",
"endpointMustExist": false,
"autoSelectRightEndpoint": false
},
{
"id": "3bb47cc7.2bd524",
"type": "ui_group",
"z": "",
"name": "Model",
"tab": "8c1d90ba.dbd978",
"order": 2,
"disp": true,
"width": "8"
},
{
"id": "8c1d90ba.dbd978",
"type": "ui_tab",
"z": "",
"name": "OPC UA",
"icon": "dashboard"
},
{
"id": "ede6d7ce.0d092",
"type": "ui_group",
"z": "",
"name": "Browser",
"tab": "8c1d90ba.dbd978",
"order": 1,
"disp": true,
"width": "20"
},
{
"id": "c6cb2fc5.8d8718",
"type": "modbus-client",
"z": "92c9cabb.72c3",
"name": "SDM630 Modbus Gateway",
"clienttype": "tcp",
"bufferCommands": true,
"stateLogEnabled": true,
"tcpHost": "192.168.178.16",
"tcpPort": "502",
"tcpType": "DEFAULT",
"serialPort": "/dev/ttyUSB",
"serialType": "RTU-BUFFERD",
"serialBaudrate": "9600",
"serialDatabits": "8",
"serialStopbits": "1",
"serialParity": "none",
"serialConnectionDelay": "100",
"unit_id": "1",
"commandDelay": "1",
"clientTimeout": "1000",
"reconnectTimeout": "2000"
},
{
"id": "dd4b34ea.9a3888",
"type": "function",
"z": "92c9cabb.72c3",
"name": "extract buffer data L1-L3",
"func": "let voltageL1 = msg.payload.buffer.readFloatBE(0,4) // 1,2\nlet voltageL2 = msg.payload.buffer.readFloatBE(4,4) // 3,4\nlet voltageL3 = msg.payload.buffer.readFloatBE(8,4) // 5,6\n\nlet powerL1 = msg.payload.buffer.readFloatBE(12,4) // 7,8\nlet powerL2 = msg.payload.buffer.readFloatBE(16,4) // 9,10\nlet powerL3 = msg.payload.buffer.readFloatBE(20,4) // 11,12\n\nlet demandL1 = msg.payload.buffer.readFloatBE(24,4) // 13,14\nlet demandL2 = msg.payload.buffer.readFloatBE(28,4) // 15,16\nlet demandL3 = msg.payload.buffer.readFloatBE(32,4) // 17,18\n\nlet voltageAVG = msg.payload.buffer.readFloatBE(84,8) // 43-46\nlet powerAVG = msg.payload.buffer.readFloatBE(92,4) // 47,48\n\nreturn [\n {\n payload: {\n L1: {\n voltage: voltageL1,\n power: powerL1,\n demand: demandL1\n },\n L2: {\n voltage: voltageL2,\n power: powerL2,\n demand: demandL2\n },\n L3: {\n voltage: voltageL3,\n power: powerL3,\n demand: demandL3\n },\n voltageAVG: voltageAVG,\n powerAVG: powerAVG, \n }\n }\n];",
"outputs": "1",
"noerr": 0,
"x": 390,
"y": 180,
"wires": [
[
"423cc3e1.456ffc",
"f2380658.ab4cf8"
]
]
},
{
"id": "2a2ba7f5.87ce5",
"type": "function",
"z": "92c9cabb.72c3",
"name": "extract buffer data sum",
"func": "let powerSum = msg.payload.buffer.readFloatBE(0,8)\nlet demandSum = msg.payload.buffer.readFloatBE(8,8)\n\nreturn [\n {\n payload: {\n powerSum: powerSum,\n demandSum: demandSum\n }\n }\n];",
"outputs": "1",
"noerr": 0,
"x": 390,
"y": 290,
"wires": [
[
"423cc3e1.456ffc",
"f2380658.ab4cf8"
]
]
},
{
"id": "69dd5984.e47ed",
"type": "function",
"z": "92c9cabb.72c3",
"name": "extract buffer data statics",
"func": "let frequency = msg.payload.buffer.readFloatBE(0,4) // 71,72\n\nlet ampHourSinceLastReset = msg.payload.buffer.readFloatBE(24,4) // 83,84\nlet totalSystemPowerDemand = msg.payload.buffer.readFloatBE(28,4) // 85,86\nlet maxTotalSystemPowerDemand = msg.payload.buffer.readFloatBE(32,4) // 87,88\n\nreturn { \n payload: {\n frequency: frequency,\n ampHourSinceLastReset: ampHourSinceLastReset,\n ampHourSinceLastResetKilo: ampHourSinceLastReset / 1000.0,\n totalSystemPowerDemand: totalSystemPowerDemand,\n totalSystemPowerDemandKilo: totalSystemPowerDemand / 1000.0,\n maxTotalSystemPowerDemand: maxTotalSystemPowerDemand,\n maxTotalSystemPowerDemandKilo: maxTotalSystemPowerDemand / 1000.0\n }\n}",
"outputs": "1",
"noerr": 0,
"x": 390,
"y": 410,
"wires": [
[
"423cc3e1.456ffc",
"f2380658.ab4cf8"
]
]
},
{
"id": "423cc3e1.456ffc",
"type": "link out",
"z": "92c9cabb.72c3",
"name": "",
"links": [
"ad2661ec.7b23a",
"44054254.88aa5c",
"54f113d5.6e55bc"
],
"x": 585,
"y": 290,
"wires": []
},
{
"id": "946bb7b4.8312e8",
"type": "OPCUA-IIoT-Write",
"z": "e9b3f9a0.9c6d5",
"connector": "1707cb53.3e54ad",
"name": "",
"justValue": false,
"showStatusActivities": false,
"showErrors": false,
"x": 670,
"y": 140,
"wires": [
[
"432e797c.e878d"
]
]
},
{
"id": "432e797c.e878d",
"type": "OPCUA-IIoT-Response",
"z": "e9b3f9a0.9c6d5",
"name": "",
"showStatusActivities": false,
"showErrors": false,
"x": 820,
"y": 140,
"wires": [
[
"d63a33a7.835368"
]
]
},
{
"id": "d63a33a7.835368",
"type": "debug",
"z": "e9b3f9a0.9c6d5",
"name": "",
"active": false,
"console": "false",
"complete": "true",
"x": 970,
"y": 140,
"wires": []
},
{
"id": "54f113d5.6e55bc",
"type": "link in",
"z": "e9b3f9a0.9c6d5",
"name": "",
"links": [
"423cc3e1.456ffc"
],
"x": 235,
"y": 140,
"wires": [
[
"59505b4a.4fc694",
"cf967f96.f69748"
]
]
},
{
"id": "59505b4a.4fc694",
"type": "function",
"z": "e9b3f9a0.9c6d5",
"name": "Modbus to OPC UA value mapping",
"func": "\nmsg.nodetype = \"inject\"\nmsg.injectType = \"write\"\n\nif(msg.payload.L1) {\n msg.addressSpaceItems = [\n {nodeId: 'ns=1;s=L1Voltage', datatypeName: 'Float'}, \n {nodeId: 'ns=1;s=L1Power', datatypeName: 'Float'}, \n {nodeId: 'ns=1;s=L1Demand', datatypeName: 'Float'},\n {nodeId: 'ns=1;s=L2Voltage', datatypeName: 'Float'}, \n {nodeId: 'ns=1;s=L2Power', datatypeName: 'Float'}, \n {nodeId: 'ns=1;s=L2Demand', datatypeName: 'Float'},\n {nodeId: 'ns=1;s=L3Voltage', datatypeName: 'Float'}, \n {nodeId: 'ns=1;s=L3Power', datatypeName: 'Float'}, \n {nodeId: 'ns=1;s=L3Demand', datatypeName: 'Float'} \n ]\n \n msg.valuesToWrite = [\n msg.payload.L1.voltage, \n msg.payload.L1.power, \n msg.payload.L1.demand,\n msg.payload.L2.voltage, \n msg.payload.L2.power, \n msg.payload.L2.demand,\n msg.payload.L3.voltage, \n msg.payload.L3.power, \n msg.payload.L3.demand\n ]\n \n return msg;\n}\n\nif(msg.payload.demandSum) {\n msg.addressSpaceItems = [\n {nodeId: 'ns=1;s=DemandSum', datatypeName: 'Float'}, \n {nodeId: 'ns=1;s=PowerSum', datatypeName: 'Float'}\n ]\n \n msg.valuesToWrite = [\n msg.payload.demandSum, \n msg.payload.powerSum\n ]\n \n return msg;\n}\n",
"outputs": 1,
"noerr": 0,
"x": 420,
"y": 140,
"wires": [
[
"946bb7b4.8312e8",
"ee04aaf1.ee8048"
]
]
},
{
"id": "ee04aaf1.ee8048",
"type": "debug",
"z": "e9b3f9a0.9c6d5",
"name": "",
"active": false,
"console": "false",
"complete": "true",
"x": 670,
"y": 100,
"wires": []
},
{
"id": "cf967f96.f69748",
"type": "debug",
"z": "e9b3f9a0.9c6d5",
"name": "",
"active": false,
"console": "false",
"complete": "true",
"x": 330,
"y": 100,
"wires": []
},
{
"id": "bce961c2.acf8f",
"type": "OPCUA-IIoT-Inject",
"z": "e9b3f9a0.9c6d5",
"injectType": "listen",
"payload": "1000",
"payloadType": "num",
"topic": "",
"repeat": "",
"crontab": "",
"once": true,
"startDelay": "28",
"name": "Listen every sec",
"addressSpaceItems": [
{
"name": "L1Voltage",
"nodeId": "ns=1;s=L1Voltage",
"datatypeName": "Float"
},
{
"name": "L1Power",
"nodeId": "ns=1;s=L1Power",
"datatypeName": "Float"
},
{
"name": "L1Demand",
"nodeId": "ns=1;s=L1Demand",
"datatypeName": "Float"
},
{
"name": "L2Voltage",
"nodeId": "ns=1;s=L2Voltage",
"datatypeName": "Float"
},
{
"name": "L2Power",
"nodeId": "ns=1;s=L2Power",
"datatypeName": "Float"
},
{
"name": "L2Demand",
"nodeId": "ns=1;s=L2Demand",
"datatypeName": "Float"
},
{
"name": "L3Voltage",
"nodeId": "ns=1;s=L3Voltage",
"datatypeName": "Float"
},
{
"name": "L3Power",
"nodeId": "ns=1;s=L3Power",
"datatypeName": "Float"
},
{
"name": "L3Demand",
"nodeId": "ns=1;s=L3Demand",
"datatypeName": "Float"
},
{
"name": "DemandSum",
"nodeId": "ns=1;s=DemandSum",
"datatypeName": "Float"
},
{
"name": "PowerSum",
"nodeId": "ns=1;s=PowerSum",
"datatypeName": "Float"
}
],
"x": 340,
"y": 260,
"wires": [
[
"5c4c6075.5747a"
]
]
},
{
"id": "46b1d83a.f64f18",
"type": "debug",
"z": "92c9cabb.72c3",
"name": "",
"active": false,
"console": "false",
"complete": "true",
"x": 330,
"y": 470,
"wires": []
},
{
"id": "64f7fbf9.870c4c",
"type": "link in",
"z": "b56de45f.f8861",
"name": "",
"links": [
"423cc3e1.456ffc"
],
"x": 255,
"y": 120,
"wires": [
[
"ff6b122e.594a18",
"603f6331.cdeb6c"
]
]
},
{
"id": "ff6b122e.594a18",
"type": "function",
"z": "b56de45f.f8861",
"name": "Modbus to OPC UA value mapping",
"func": "\nmsg.nodetype = \"inject\"\nmsg.injectType = \"write\"\n\nif(msg.payload.frequency) {\n msg.addressSpaceItems = [\n {nodeId: 'ns=1;s=frequency', datatypeName: 'Float'}, \n {nodeId: 'ns=1;s=ampHourSinceLastReset', datatypeName: 'Float'}, \n {nodeId: 'ns=1;s=totalSystemPowerDemand', datatypeName: 'Float'},\n {nodeId: 'ns=1;s=maxTotalSystemPowerDemand', datatypeName: 'Float'} \n ]\n \n msg.valuesToWrite = [\n msg.payload.frequency, \n msg.payload.ampHourSinceLastResetKilo, \n msg.payload.totalSystemPowerDemandKilo,\n msg.payload.maxTotalSystemPowerDemandKilo\n ]\n \n return msg;\n}\n",
"outputs": 1,
"noerr": 0,
"x": 460,
"y": 120,
"wires": [
[
"9a6ae481.0b19d",
"7da2a478.40fadc"
]
]
},
{
"id": "9a6ae481.0b19d",
"type": "OPCUA-IIoT-Write",
"z": "b56de45f.f8861",
"connector": "27cb7a6b.f6dd86",
"name": "",
"justValue": false,
"showStatusActivities": false,
"showErrors": false,
"x": 690,
"y": 120,
"wires": [
[
"6f980a6c.1a2354"
]
]
},
{
"id": "6f980a6c.1a2354",
"type": "OPCUA-IIoT-Response",
"z": "b56de45f.f8861",
"name": "",
"showStatusActivities": false,
"showErrors": false,
"x": 830,
"y": 120,
"wires": [
[
"943c9910.84cc88"
]
]
},
{
"id": "943c9910.84cc88",
"type": "debug",
"z": "b56de45f.f8861",
"name": "",
"active": false,
"console": "false",
"complete": "true",
"x": 980,
"y": 120,
"wires": []
},
{
"id": "7da2a478.40fadc",
"type": "debug",
"z": "b56de45f.f8861",
"name": "",
"active": false,
"console": "false",
"complete": "true",
"x": 690,
"y": 80,
"wires": []
},
{
"id": "603f6331.cdeb6c",
"type": "debug",
"z": "b56de45f.f8861",
"name": "",
"active": false,
"console": "false",
"complete": "true",
"x": 370,
"y": 80,
"wires": []
},
{
"id": "1ecd1738.a25991",
"type": "OPCUA-IIoT-Inject",
"z": "b56de45f.f8861",
"injectType": "listen",
"payload": "1000",
"payloadType": "num",
"topic": "",
"repeat": "",
"crontab": "",
"once": true,
"startDelay": "28",
"name": "Listen every sec",
"addressSpaceItems": [
{
"name": "frequency",
"nodeId": "ns=1;s=frequency",
"datatypeName": "Float"
},
{
"name": "ampHourSinceLastReset",
"nodeId": "ns=1;s=ampHourSinceLastReset",
"datatypeName": "Float"
},
{
"name": "totalSystemPowerDemand",
"nodeId": "ns=1;s=totalSystemPowerDemand",
"datatypeName": "Float"
},
{
"name": "maxTotalSystemPowerDemand",
"nodeId": "ns=1;s=maxTotalSystemPowerDemand",
"datatypeName": "Float"
}
],
"x": 340,
"y": 220,
"wires": [
[
"3882e014.74f05"
]
]
},
{
"id": "e0b65302.f11b2",
"type": "catch",
"z": "92c9cabb.72c3",
"name": "",
"scope": null,
"x": 140,
"y": 630,
"wires": [
[
"244734d8.9c8744",
"e6bdb23.b62415",
"bd77e8fd.99542"
]
]
},
{
"id": "244734d8.9c8744",
"type": "debug",
"z": "92c9cabb.72c3",
"name": "",
"active": true,
"console": "false",
"complete": "true",
"x": 320,
"y": 670,
"wires": []
},
{
"id": "e6bdb23.b62415",
"type": "function",
"z": "92c9cabb.72c3",
"name": "reset on High",
"func": "if(\"high level reached\" === msg.state) {\n msg.resetQueue = true;\n}\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 350,
"y": 590,
"wires": [
[
"c4891d06.03ff88"
]
]
},
{
"id": "bd77e8fd.99542",
"type": "function",
"z": "92c9cabb.72c3",
"name": "reset on HighHigh",
"func": "if(\"high high level reached\" === msg.state) {\n msg.resetQueue = true;\n}\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 360,
"y": 630,
"wires": [
[
"c4891d06.03ff88"
]
]
},
{
"id": "2149215b.656bae",
"type": "debug",
"z": "92c9cabb.72c3",
"name": "",
"active": true,
"console": "false",
"complete": "false",
"x": 810,
"y": 600,
"wires": []
},
{
"id": "e7f8f825.d9ade8",
"type": "OPCUA-IIoT-Server-ASO",
"z": "d8dd83e7.2d5f98",
"nodeId": "ns=1;s=SDM630",
"browsename": "SDM630",
"displayname": "SDM 630",
"objecttype": "FolderType",
"datatype": "",
"value": "",
"referenceNodeId": "ns=0;i=85",
"referencetype": "Organizes",
"name": "SDM630",
"x": 390,
"y": 40,
"wires": [
[]
]
},
{
"id": "be0bfc2.9259b",
"type": "OPCUA-IIoT-Inject",
"z": "d8dd83e7.2d5f98",
"injectType": "inject",
"payload": "0",
"payloadType": "num",
"topic": "",
"repeat": "",
"crontab": "",
"once": true,
"startDelay": "",
"name": "Inject after 10s",
"addressSpaceItems": [],
"x": 140,
"y": 40,
"wires": [
[
"e7f8f825.d9ade8"
]
]
},
{
"id": "f8232b11.c51bc8",
"type": "OPCUA-IIoT-Server-ASO",
"z": "d8dd83e7.2d5f98",
"nodeId": "ns=1;s=L1",
"browsename": "L1",
"displayname": "L1",
"objecttype": "FolderType",
"datatype": "",
"value": "",
"referenceNodeId": "ns=1;s=SDM630",
"referencetype": "Organizes",
"name": "L1",
"x": 400,
"y": 90,
"wires": [
[]
]
},
{
"id": "c2b3053.5c4c278",
"type": "OPCUA-IIoT-Server-ASO",
"z": "d8dd83e7.2d5f98",
"nodeId": "ns=1;s=L3",
"browsename": "L3",
"displayname": "L3",
"objecttype": "FolderType",
"datatype": "",
"value": "",
"referenceNodeId": "ns=1;s=SDM630",
"referencetype": "Organizes",
"name": "L3",
"x": 400,
"y": 170,
"wires": [
[]
]
},
{
"id": "9edf10da.3a47b",
"type": "OPCUA-IIoT-Server-ASO",
"z": "d8dd83e7.2d5f98",
"nodeId": "ns=1;s=L2",
"browsename": "L2",
"displayname": "L2",
"objecttype": "FolderType",
"datatype": "",
"value": "",
"referenceNodeId": "ns=1;s=SDM630",
"referencetype": "Organizes",
"name": "L2",
"x": 400,
"y": 130,
"wires": [
[]
]
},
{
"id": "9b989c54.d3151",
"type": "OPCUA-IIoT-Inject",
"z": "d8dd83e7.2d5f98",
"injectType": "inject",
"payload": "0",
"payloadType": "num",
"topic": "",
"repeat": "",
"crontab": "",
"once": true,
"startDelay": "13",
"name": "Inject after 13s",
"addressSpaceItems": [],
"x": 140,
"y": 240,
"wires": [
[
"f8232b11.c51bc8",
"9edf10da.3a47b",
"c2b3053.5c4c278",
"29410f9b.053928",
"837a8aed.befcc",
"84f5ed8d.c9c588",
"79d04a44.09951c",
"2c8e91fa.0847b6",
"4f65c288.11ea74"
]
]
},
{
"id": "4e1488bd.803378",
"type": "OPCUA-IIoT-Server-ASO",
"z": "d8dd83e7.2d5f98",
"nodeId": "ns=1;s=L1Demand",
"browsename": "L1Demand",
"displayname": "L1 demand",
"objecttype": "BaseVariableType",
"datatype": "Float",
"value": "",
"referenceNodeId": "ns=1;s=L1",
"referencetype": "Organizes",
"name": "L1 demand",
"x": 380,
"y": 510,
"wires": [
[]
]
},
{
"id": "69262ee4.f2b4e8",
"type": "OPCUA-IIoT-Inject",
"z": "d8dd83e7.2d5f98",
"injectType": "inject",
"payload": "0",
"payloadType": "num",
"topic": "",
"repeat": "",
"crontab": "",
"once": true,
"startDelay": "16",
"name": "Inject after 16s",
"addressSpaceItems": [],
"x": 140,
"y": 680,
"wires": [
[
"4e1488bd.803378",
"79fb8a18.976f6c",
"7ce1e8d5.d29d68",
"115b7b7.75b3505",
"1c0f75c1.99bb7a",
"348011f5.f6759e",
"f88e90ab.8cb848",
"c6bf3d0e.e38538",
"a7cefbfd.53b2"
]
]
},
{
"id": "79fb8a18.976f6c",
"type": "OPCUA-IIoT-Server-ASO",
"z": "d8dd83e7.2d5f98",
"nodeId": "ns=1;s=L2Demand",
"browsename": "L2Demand",
"displayname": "L2 demand",
"objecttype": "BaseVariableType",
"datatype": "Float",
"value": "0.0",
"referenceNodeId": "ns=1;s=L2",
"referencetype": "Organizes",
"name": "L2 demand",
"x": 380,
"y": 550,
"wires": [
[]
]
},
{
"id": "7ce1e8d5.d29d68",
"type": "OPCUA-IIoT-Server-ASO",
"z": "d8dd83e7.2d5f98",
"nodeId": "ns=1;s=L3Demand",
"browsename": "L3Demand",
"displayname": "L3 demand",
"objecttype": "BaseVariableType",
"datatype": "Float",
"value": "0.0",
"referenceNodeId": "ns=1;s=L3",
"referencetype": "Organizes",
"name": "L3 demand",
"x": 380,
"y": 590,
"wires": [
[]
]
},
{
"id": "115b7b7.75b3505",
"type": "OPCUA-IIoT-Server-ASO",
"z": "d8dd83e7.2d5f98",
"nodeId": "ns=1;s=L1Power",
"browsename": "L1Power",
"displayname": "L1 power",
"objecttype": "BaseVariableType",
"datatype": "Float",
"value": "0.0",
"referenceNodeId": "ns=1;s=L1",
"referencetype": "Organizes",
"name": "L1 power",
"x": 390,
"y": 640,
"wires": [
[]
]
},
{
"id": "1c0f75c1.99bb7a",
"type": "OPCUA-IIoT-Server-ASO",
"z": "d8dd83e7.2d5f98",
"nodeId": "ns=1;s=L2Power",
"browsename": "L2Power",
"displayname": "L2 power",
"objecttype": "BaseVariableType",
"datatype": "Float",
"value": "0.0",
"referenceNodeId": "ns=1;s=L2",
"referencetype": "Organizes",
"name": "L2 power",
"x": 390,
"y": 680,
"wires": [
[]
]
},
{
"id": "348011f5.f6759e",
"type": "OPCUA-IIoT-Server-ASO",
"z": "d8dd83e7.2d5f98",
"nodeId": "ns=1;s=L3Power",
"browsename": "L3Power",
"displayname": "L3 power",
"objecttype": "BaseVariableType",
"datatype": "Float",
"value": "0.0",
"referenceNodeId": "ns=1;s=L3",
"referencetype": "Organizes",
"name": "L3 power",
"x": 390,
"y": 720,
"wires": [
[]
]
},
{
"id": "f88e90ab.8cb848",
"type": "OPCUA-IIoT-Server-ASO",
"z": "d8dd83e7.2d5f98",
"nodeId": "ns=1;s=L1Voltage",
"browsename": "L1Voltage",
"displayname": "L1 voltage",
"objecttype": "BaseVariableType",
"datatype": "Float",
"value": "0.0",
"referenceNodeId": "ns=1;s=L1",
"referencetype": "Organizes",
"name": "L1 voltage",
"x": 380,
"y": 770,
"wires": [
[]
]
},
{
"id": "c6bf3d0e.e38538",
"type": "OPCUA-IIoT-Server-ASO",
"z": "d8dd83e7.2d5f98",
"nodeId": "ns=1;s=L2Voltage",
"browsename": "L2Voltage",
"displayname": "L2 voltage",
"objecttype": "BaseVariableType",
"datatype": "Float",
"value": "0.0",
"referenceNodeId": "ns=1;s=L2",
"referencetype": "Organizes",
"name": "L2 voltage",
"x": 380,
"y": 810,
"wires": [
[]
]
},
{
"id": "a7cefbfd.53b2",
"type": "OPCUA-IIoT-Server-ASO",
"z": "d8dd83e7.2d5f98",
"nodeId": "ns=1;s=L3Voltage",
"browsename": "L3Voltage",
"displayname": "L3 voltage",
"objecttype": "BaseVariableType",
"datatype": "Float",
"value": "0.0",
"referenceNodeId": "ns=1;s=L3",
"referencetype": "Organizes",
"name": "L3 voltage",
"x": 380,
"y": 850,
"wires": [
[]
]
},
{
"id": "29410f9b.053928",
"type": "OPCUA-IIoT-Server-ASO",
"z": "d8dd83e7.2d5f98",
"nodeId": "ns=1;s=DemandSum",
"browsename": "DemandSum",
"displayname": "Demand Sum",
"objecttype": "BaseVariableType",
"datatype": "Float",
"value": "",
"referenceNodeId": "ns=1;s=SDM630",
"referencetype": "Organizes",
"name": "DemandSum",
"x": 380,
"y": 240,
"wires": [
[]
]
},
{
"id": "837a8aed.befcc",
"type": "OPCUA-IIoT-Server-ASO",
"z": "d8dd83e7.2d5f98",
"nodeId": "ns=1;s=PowerSum",
"browsename": "PowerSum",
"displayname": "Power Sum",
"objecttype": "BaseVariableType",
"datatype": "Float",
"value": "",
"referenceNodeId": "ns=1;s=SDM630",
"referencetype": "Organizes",
"name": "PowerSum",
"x": 380,
"y": 280,
"wires": [
[]
]
},
{
"id": "84f5ed8d.c9c588",
"type": "OPCUA-IIoT-Server-ASO",
"z": "d8dd83e7.2d5f98",
"nodeId": "ns=1;s=frequency",
"browsename": "frequency",
"displayname": "frequency",
"objecttype": "BaseVariableType",
"datatype": "Float",
"value": "",
"referenceNodeId": "ns=1;s=SDM630",
"referencetype": "Organizes",
"name": "frequency",
"x": 390,
"y": 320,
"wires": [
[]
]
},
{
"id": "79d04a44.09951c",
"type": "OPCUA-IIoT-Server-ASO",
"z": "d8dd83e7.2d5f98",
"nodeId": "ns=1;s=ampHourSinceLastReset",
"browsename": "ampHourSinceLastReset",
"displayname": "ampere-hours since last reset",
"objecttype": "BaseVariableType",
"datatype": "Float",
"value": "",
"referenceNodeId": "ns=1;s=SDM630",
"referencetype": "Organizes",
"name": "ampHourSinceLastReset",
"x": 340,
"y": 360,
"wires": [
[]
]
},
{
"id": "2c8e91fa.0847b6",
"type": "OPCUA-IIoT-Server-ASO",
"z": "d8dd83e7.2d5f98",
"nodeId": "ns=1;s=totalSystemPowerDemand",
"browsename": "totalSystemPowerDemand",
"displayname": "total system power demand",
"objecttype": "BaseVariableType",
"datatype": "Float",
"value": "",
"referenceNodeId": "ns=1;s=SDM630",
"referencetype": "Organizes",
"name": "totalSystemPowerDemand",
"x": 330,
"y": 400,
"wires": [
[]
]
},
{
"id": "4f65c288.11ea74",
"type": "OPCUA-IIoT-Server-ASO",
"z": "d8dd83e7.2d5f98",
"nodeId": "ns=1;s=maxTotalSystemPowerDemand",
"browsename": "maxTotalSystemPowerDemand",
"displayname": "max total system power demand",
"objecttype": "BaseVariableType",
"datatype": "Float",
"value": "",
"referenceNodeId": "ns=1;s=SDM630",
"referencetype": "Organizes",
"name": "maxTotalSystemPowerDemand",
"x": 320,
"y": 440,
"wires": [
[]
]
},
{
"id": "34410925.7ad29e",
"type": "debug",
"z": "1bf9637b.fcaa35",
"name": "",
"active": false,
"console": "false",
"complete": "true",
"x": 410,
"y": 80,
"wires": []
},
{
"id": "16f95961.f11f8f",
"type": "subflow:1bf9637b.fcaa35",
"z": "92c9cabb.72c3",
"name": "",
"x": 360,
"y": 60,
"wires": []
},
{
"id": "908de5d3.9c7d28",
"type": "subflow:d8dd83e7.2d5f98",
"z": "92c9cabb.72c3",
"name": "SDM630 Model",
"x": 160,
"y": 60,
"wires": [
[
"16f95961.f11f8f"
]
]
},
{
"id": "a4cc4701.4a9a1",
"type": "ui_chart",
"z": "8cae93d.3604d7",
"name": "",
"group": "82a80892.06eb38",
"order": 2,
"width": 0,
"height": 0,
"label": "power",
"chartType": "line",
"legend": "true",
"xformat": "dd HH:mm",
"interpolate": "linear",
"nodata": "",
"dot": false,
"ymin": "",
"ymax": "",
"removeOlder": 1,
"removeOlderPoints": "",
"removeOlderUnit": "86400",
"cutout": 0,
"useOneColor": false,
"colors": [
"#1f77b4",
"#aec7e8",
"#ff7f0e",
"#2ca02c",
"#98df8a",
"#d62728",
"#ff9896",
"#9467bd",
"#c5b0d5"
],
"useOldStyle": false,
"x": 710,
"y": 220,
"wires": [
[],
[]
]
},
{
"id": "1e05f797.7fba38",
"type": "ui_chart",
"z": "8cae93d.3604d7",
"name": "",
"group": "82a80892.06eb38",
"order": 3,
"width": 0,
"height": 0,
"label": "voltage",
"chartType": "line",
"legend": "true",
"xformat": "dd HH:mm",
"interpolate": "linear",
"nodata": "",
"dot": false,
"ymin": "",
"ymax": "",
"removeOlder": 1,
"removeOlderPoints": "",
"removeOlderUnit": "86400",
"cutout": 0,
"colors": [
"#1f77b4",
"#aec7e8",
"#ff7f0e",
"#2ca02c",
"#98df8a",
"#d62728",
"#ff9896",
"#9467bd",
"#c5b0d5"
],
"useOldStyle": false,
"x": 720,
"y": 400,
"wires": [
[],
[]
]
},
{
"id": "f944377f.b28b9",
"type": "ui_chart",
"z": "8cae93d.3604d7",
"name": "",
"group": "82a80892.06eb38",
"order": 1,
"width": 0,
"height": 0,
"label": "demand",
"chartType": "line",
"legend": "true",
"xformat": "dd HH:mm",
"interpolate": "linear",
"nodata": "",
"dot": false,
"ymin": "",
"ymax": "",
"removeOlder": 1,
"removeOlderPoints": "",
"removeOlderUnit": "86400",
"cutout": 0,
"colors": [
"#1f77b4",
"#aec7e8",
"#ff7f0e",
"#2ca02c",
"#98df8a",
"#d62728",
"#ff9896",
"#9467bd",
"#c5b0d5"
],
"useOldStyle": false,
"x": 720,
"y": 600,
"wires": [
[],
[]
]
},
{
"id": "725d6644.34b1f",
"type": "subflow:8cae93d.3604d7",
"z": "e9b3f9a0.9c6d5",
"name": "dynamic charts",
"x": 740,
"y": 260,
"wires": [
[
"7b2b53f4.832a5c"
],
[
"9ac7513c.468eb"
],
[
"b90f9b31.1d2a18"
]
]
},
{
"id": "356dea7e.059ff6",
"type": "ui_gauge",
"z": "8321718e.e9d488",
"name": "",
"group": "ede6d7ce.0d092",
"order": 1,
"width": 0,
"height": 0,
"gtype": "gage",
"title": "Frequency",
"label": "Hz",
"format": "{{value | number:2}}",
"min": 0,
"max": "100",
"colors": [
"#e2e310",
"#28cd22",
"#d93d3f"
],
"seg1": "",
"seg2": "",
"x": 830,
"y": 140,
"wires": []
},
{
"id": "e2910c0f.4c4f78",
"type": "ui_gauge",
"z": "8321718e.e9d488",
"name": "",
"group": "3bb47cc7.2bd524",
"order": 2,
"width": 0,
"height": 0,
"gtype": "gage",
"title": "Sum demand ",
"label": "kW",
"format": "{{value | number:3}}",
"min": 0,
"max": "5",
"colors": [
"#e2e310",
"#28cd22",
"#d93d3f"
],
"seg1": "",
"seg2": "",
"x": 840,
"y": 260,
"wires": []
},
{
"id": "78b16821.7f26a8",
"type": "ui_gauge",
"z": "8321718e.e9d488",
"name": "",
"group": "3bb47cc7.2bd524",
"order": 1,
"width": 0,
"height": 0,
"gtype": "gage",
"title": "Max. demand ",
"label": "kW",
"format": "{{value | number:3}}",
"min": 0,
"max": "20",
"colors": [
"#e2e310",
"#28cd22",
"#d93d3f"
],
"seg1": "",
"seg2": "",
"x": 840,
"y": 320,
"wires": []
},
{
"id": "a045a5da.18c668",
"type": "ui_gauge",
"z": "8321718e.e9d488",
"name": "",
"group": "f4f863e1.12067",
"order": 2,
"width": 0,
"height": 0,
"gtype": "gage",
"title": "Ampere hour",
"label": "kAh",
"format": "{{value | number:2}}",
"min": 0,
"max": "2000",
"colors": [
"#e2e310",
"#28cd22",
"#d93d3f"
],
"seg1": "",
"seg2": "",
"x": 830,
"y": 200,
"wires": []
},
{
"id": "afda85bb.69fc8",
"type": "subflow:8321718e.e9d488",
"z": "b56de45f.f8861",
"name": "",
"x": 710,
"y": 220,
"wires": [
[
"7fc50933.b48ee8"
]
]
},
{
"id": "bd6e431b.145a88",
"type": "http in",
"z": "92c9cabb.72c3",
"name": "",
"url": "/modbus/read/lines",
"method": "get",
"upload": false,
"swaggerDoc": "",
"x": 170,
"y": 790,
"wires": [
[
"e8051fe5.c7b658"
]
]
},
{
"id": "14ddb5bf.ee4f8a",
"type": "http response",
"z": "92c9cabb.72c3",
"name": "",
"statusCode": "",
"headers": {},
"x": 890,
"y": 750,
"wires": []
},
{
"id": "a68b6b9e.1fe4f8",
"type": "function",
"z": "92c9cabb.72c3",
"name": "extract buffer data L1-L3",
"func": "let voltageL1 = msg.payload.buffer.readFloatBE(0,4) // 1,2\nlet voltageL2 = msg.payload.buffer.readFloatBE(4,4) // 3,4\nlet voltageL3 = msg.payload.buffer.readFloatBE(8,4) // 5,6\n\nlet powerL1 = msg.payload.buffer.readFloatBE(12,4) // 7,8\nlet powerL2 = msg.payload.buffer.readFloatBE(16,4) // 9,10\nlet powerL3 = msg.payload.buffer.readFloatBE(20,4) // 11,12\n\nlet demandL1 = msg.payload.buffer.readFloatBE(24,4) // 13,14\nlet demandL2 = msg.payload.buffer.readFloatBE(28,4) // 15,16\nlet demandL3 = msg.payload.buffer.readFloatBE(32,4) // 17,18\n\nlet voltageAVG = msg.payload.buffer.readFloatBE(84,8) // 43-46\nlet powerAVG = msg.payload.buffer.readFloatBE(92,4) // 47,48\n\nmsg.payload = {\n L1: {\n voltage: voltageL1,\n power: powerL1,\n demand: demandL1\n },\n L2: {\n voltage: voltageL2,\n power: powerL2,\n demand: demandL2\n },\n L3: {\n voltage: voltageL3,\n power: powerL3,\n demand: demandL3\n },\n voltageAVG: voltageAVG,\n powerAVG: powerAVG, \n};\n\nreturn msg;",
"outputs": "1",
"noerr": 0,
"x": 680,
"y": 750,
"wires": [
[
"14ddb5bf.ee4f8a"
]
]
},
{
"id": "7249e653.408cc",
"type": "status",
"z": "92c9cabb.72c3",
"name": "",
"scope": [
"e8051fe5.c7b658",
"df70ef8d.ffc068",
"99dc6459.a19bb8",
"7d31416a.6e9308"
],
"x": 340,
"y": 530,
"wires": [
[
"54457c84.4b164c",
"b99e18ea.fd0088"
]
]
},
{
"id": "1a9eeeff.a724b1",
"type": "debug",
"z": "92c9cabb.72c3",
"name": "",
"active": true,
"console": "false",
"complete": "true",
"x": 670,
"y": 530,
"wires": []
},
{
"id": "54457c84.4b164c",
"type": "function",
"z": "92c9cabb.72c3",
"name": "timeout filter",
"func": "if(msg.status.text === 'timeout') {\n return msg; \n}\n",
"outputs": 1,
"noerr": 0,
"x": 520,
"y": 530,
"wires": [
[
"1a9eeeff.a724b1"
]
]
},
{
"id": "b99e18ea.fd0088",
"type": "debug",
"z": "92c9cabb.72c3",
"name": "",
"active": false,
"console": "false",
"complete": "true",
"x": 500,
"y": 490,
"wires": []
},
{
"id": "739e1044.7b7248",
"type": "modbus-response",
"z": "92c9cabb.72c3",
"name": "",
"registerShowMax": "1",
"x": 370,
"y": 120,
"wires": []
},
{
"id": "6556fd6.8ebbf84",
"type": "modbus-response",
"z": "92c9cabb.72c3",
"name": "",
"registerShowMax": "1",
"x": 370,
"y": 230,
"wires": []
},
{
"id": "d14d8eb7.1d8d7",
"type": "modbus-response",
"z": "92c9cabb.72c3",
"name": "",
"registerShowMax": "1",
"x": 370,
"y": 350,
"wires": []
},
{
"id": "985ac81c.ff2248",
"type": "modbus-response",
"z": "92c9cabb.72c3",
"name": "",
"registerShowMax": 20,
"x": 660,
"y": 790,
"wires": []
},
{
"id": "df70ef8d.ffc068",
"type": "modbus-read",
"z": "92c9cabb.72c3",
"name": "",
"topic": "",
"showStatusActivities": false,
"showErrors": true,
"unitid": "",
"dataType": "InputRegister",
"adr": "0",
"quantity": "50",
"rate": "30",
"rateUnit": "s",
"delayOnStart": true,
"startDelayTime": "",
"server": "c6cb2fc5.8d8718",
"useIOFile": false,
"ioFile": "",
"useIOForPayload": false,
"x": 150,
"y": 170,
"wires": [
[
"46b1d83a.f64f18"
],
[
"739e1044.7b7248",
"dd4b34ea.9a3888"
]
]
},
{
"id": "7d31416a.6e9308",
"type": "modbus-read",
"z": "92c9cabb.72c3",
"name": "",
"topic": "",
"showStatusActivities": false,
"showErrors": true,
"unitid": "",
"dataType": "InputRegister",
"adr": "48",
"quantity": "8",
"rate": "2",
"rateUnit": "m",
"delayOnStart": true,
"startDelayTime": "",
"server": "c6cb2fc5.8d8718",
"useIOFile": false,
"ioFile": "",
"useIOForPayload": false,
"x": 150,
"y": 270,
"wires": [
[
"46b1d83a.f64f18"
],
[
"2a2ba7f5.87ce5",
"6556fd6.8ebbf84"
]
]
},
{
"id": "99dc6459.a19bb8",
"type": "modbus-read",
"z": "92c9cabb.72c3",
"name": "",
"topic": "",
"showStatusActivities": false,
"showErrors": true,
"unitid": "",
"dataType": "InputRegister",
"adr": "70",
"quantity": "42",
"rate": "1",
"rateUnit": "m",
"delayOnStart": true,
"startDelayTime": "",
"server": "c6cb2fc5.8d8718",
"useIOFile": false,
"ioFile": "",
"useIOForPayload": false,
"x": 150,
"y": 390,
"wires": [
[
"46b1d83a.f64f18"
],
[
"69dd5984.e47ed",
"d14d8eb7.1d8d7"
]
]
},
{
"id": "e8051fe5.c7b658",
"type": "modbus-getter",
"z": "92c9cabb.72c3",
"name": "",
"showStatusActivities": false,
"showErrors": false,
"unitid": "",
"dataType": "InputRegister",
"adr": "0",
"quantity": "50",
"server": "c6cb2fc5.8d8718",
"useIOFile": false,
"ioFile": "",
"useIOForPayload": false,
"x": 400,
"y": 790,
"wires": [
[],
[
"985ac81c.ff2248",
"a68b6b9e.1fe4f8"
]
]
},
{
"id": "c4891d06.03ff88",
"type": "modbus-queue-info",
"z": "92c9cabb.72c3",
"name": "",
"topic": "",
"unitid": "",
"lowLowLevel": 25,
"lowLevel": 75,
"highLevel": 150,
"highHighLevel": 300,
"server": "c6cb2fc5.8d8718",
"errorOnHighLevel": false,
"x": 600,
"y": 600,
"wires": [
[
"2149215b.656bae"
]
]
},
{
"id": "3882e014.74f05",
"type": "OPCUA-IIoT-Listener",
"z": "b56de45f.f8861",
"connector": "27cb7a6b.f6dd86",
"action": "subscribe",
"queueSize": 10,
"name": "",
"justValue": true,
"showStatusActivities": false,
"showErrors": false,
"x": 530,
"y": 220,
"wires": [
[
"afda85bb.69fc8",
"3824bbe8.b90a94"
]
]
},
{
"id": "5c4c6075.5747a",
"type": "OPCUA-IIoT-Listener",
"z": "e9b3f9a0.9c6d5",
"connector": "1707cb53.3e54ad",
"action": "subscribe",
"queueSize": 10,
"name": "",
"justValue": true,
"showStatusActivities": false,
"showErrors": false,
"x": 540,
"y": 260,
"wires": [
[
"725d6644.34b1f",
"a3003ca6.64e8e"
]
]
},
{
"id": "96a05c7.bfd24a",
"type": "OPCUA-IIoT-Result-Filter",
"z": "8cae93d.3604d7",
"nodeId": "ns=1;s=PowerSum",
"datatype": "Float",
"fixedValue": true,
"fixPoint": 2,
"withPrecision": false,
"precision": 2,
"entry": 1,
"justValue": true,
"withValueCheck": false,
"minvalue": "",
"maxvalue": "",
"defaultvalue": "",
"topic": "Sum",
"name": "",
"showErrors": false,
"x": 450,
"y": 100,
"wires": [
[
"a4cc4701.4a9a1"
]
]
},
{
"id": "307d37f1.a25678",
"type": "OPCUA-IIoT-Result-Filter",
"z": "8cae93d.3604d7",
"nodeId": "ns=1;s=L1Power",
"datatype": "Float",
"fixedValue": true,
"fixPoint": 2,
"withPrecision": false,
"precision": 2,
"entry": 1,
"justValue": true,
"withValueCheck": false,
"minvalue": "",
"maxvalue": "",
"defaultvalue": "",
"topic": "L1",
"name": "",
"showErrors": false,
"x": 450,
"y": 140,
"wires": [
[
"a4cc4701.4a9a1"
]
]
},
{
"id": "18da947e.d6390c",
"type": "OPCUA-IIoT-Result-Filter",
"z": "8cae93d.3604d7",
"nodeId": "ns=1;s=L2Power",
"datatype": "Float",
"fixedValue": true,
"fixPoint": 2,
"withPrecision": false,
"precision": 2,
"entry": 1,
"justValue": true,
"withValueCheck": false,
"minvalue": "",
"maxvalue": "",
"defaultvalue": "",
"topic": "L2",
"name": "",
"showErrors": false,
"x": 450,
"y": 180,
"wires": [
[
"a4cc4701.4a9a1"
]
]
},
{
"id": "3f35ad83.d9b902",
"type": "OPCUA-IIoT-Result-Filter",
"z": "8cae93d.3604d7",
"nodeId": "ns=1;s=L3Power",
"datatype": "Float",
"fixedValue": true,
"fixPoint": 2,
"withPrecision": false,
"precision": 2,
"entry": 1,
"justValue": true,
"withValueCheck": false,
"minvalue": "",
"maxvalue": "",
"defaultvalue": "",
"topic": "L3",
"name": "",
"showErrors": false,
"x": 450,
"y": 220,
"wires": [
[
"a4cc4701.4a9a1"
]
]
},
{
"id": "5fbc5bf0.76f724",
"type": "OPCUA-IIoT-Result-Filter",
"z": "8cae93d.3604d7",
"nodeId": "ns=1;s=L1Voltage",
"datatype": "Float",
"fixedValue": false,
"fixPoint": "1",
"withPrecision": true,
"precision": "3",
"entry": 1,
"justValue": true,
"withValueCheck": false,
"minvalue": "",
"maxvalue": "",
"defaultvalue": "",
"topic": "L1",
"name": "",
"showErrors": false,
"x": 450,
"y": 320,
"wires": [
[
"1e05f797.7fba38"
]
]
},
{
"id": "7c75c56a.88d7ec",
"type": "OPCUA-IIoT-Result-Filter",
"z": "8cae93d.3604d7",
"nodeId": "ns=1;s=L2Voltage",
"datatype": "Float",
"fixedValue": false,
"fixPoint": "1",
"withPrecision": true,
"precision": "3",
"entry": 1,
"justValue": true,
"withValueCheck": false,
"minvalue": "",
"maxvalue": "",
"defaultvalue": "",
"topic": "L2",
"name": "",
"showErrors": false,
"x": 450,
"y": 360,
"wires": [
[
"1e05f797.7fba38"
]
]
},
{
"id": "961ac2c1.169ce",
"type": "OPCUA-IIoT-Result-Filter",
"z": "8cae93d.3604d7",
"nodeId": "ns=1;s=L3Voltage",
"datatype": "Float",
"fixedValue": false,
"fixPoint": "1",
"withPrecision": true,
"precision": "3",
"entry": 1,
"justValue": true,
"withValueCheck": false,
"minvalue": "",