-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdynamic_connectivity_solution.json
1 lines (1 loc) · 25.6 KB
/
dynamic_connectivity_solution.json
1
[{"id":"5ae2678cc961bbaa","type":"tab","label":"Connect S7 with SQL","disabled":false,"info":"","env":[]},{"id":"7ea936acf0f1cc9d","type":"mqtt-broker","name":"","broker":"ie-databus","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"autoUnsubscribe":true,"birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closeRetain":"false","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willRetain":"false","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""},{"id":"4eb67f291c08216f","type":"mqtt-broker","name":"ethon.ai","broker":"10.14.18.250","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""},{"id":"a52aa9a536852e0b","type":"mqtt-broker","name":"","broker":"ie-databus","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""},{"id":"adcce0d0faf0e57b","type":"mqtt-broker","name":"","broker":"ie-databus","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""},{"id":"1184d514.d2f0e4","type":"ui_group","name":"Variables","tab":"","order":1,"disp":true,"width":"6","collapse":false},{"id":"bd175bcfc208cb7c","type":"ui_base","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":"#333333","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"}},"angularTheme":{"primary":"indigo","accents":"blue","warn":"red","background":"grey","palette":"light"}},"site":{"name":"Flow Creator Dashboard","hideToolbar":"false","allowSwipe":"false","lockMenu":"false","allowTempTheme":"true","dateFormat":"DD/MM/YYYY","sizes":{"sx":120,"sy":48,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"b7d07f0f.b4e8b8","type":"ui_group","name":"Overview","tab":"2e2c7987.2cfe64","order":1,"disp":true,"width":"4","collapse":false,"className":""},{"id":"2e2c7987.2cfe64","type":"ui_tab","name":"Settings","icon":"dashboard","disabled":false,"hidden":false},{"id":"a20fbb4e.0d105","type":"ui_tab","name":"Dashboard","icon":"dashboard","order":1,"disabled":false,"hidden":false},{"id":"fe762942.fd8b08","type":"ui_group","name":"Default","tab":"","order":1,"disp":true,"width":"6","collapse":false},{"id":"ada4e0c8.ca2d58","type":"ui_group","z":"5ae2678cc961bbaa","name":"Default","tab":"","order":1,"disp":true,"width":"6"},{"id":"dd4542d78d232013","type":"ui_group","name":"Overview","tab":"","order":2,"disp":false,"width":"6","collapse":false,"className":""},{"id":"9cda59cb2db53b08","type":"ui_group","name":"Connection Variables","tab":"2e2c7987.2cfe64","order":2,"disp":true,"width":"6","collapse":false,"className":""},{"id":"e45c880a560ffdda","type":"ui_group","name":"Active Connection Control","tab":"2e2c7987.2cfe64","order":3,"disp":true,"width":"4","collapse":false,"className":""},{"id":"201b781136648299","type":"ui_group","name":"Latest SQL Data","tab":"a20fbb4e.0d105","order":4,"disp":true,"width":"14","collapse":false,"className":""},{"id":"0222e0399f5f8127","type":"ui_spacer","z":"5ae2678cc961bbaa","name":"spacer","group":"9cda59cb2db53b08","order":2,"width":2,"height":1},{"id":"898b0c762787a5b9","type":"ui_spacer","z":"5ae2678cc961bbaa","name":"spacer","group":"9cda59cb2db53b08","order":3,"width":2,"height":1},{"id":"abce2df11f1a07ad","type":"ui_spacer","z":"5ae2678cc961bbaa","name":"spacer","group":"9cda59cb2db53b08","order":4,"width":2,"height":1},{"id":"b3c82252d251383f","type":"ui_spacer","z":"5ae2678cc961bbaa","name":"spacer","group":"9cda59cb2db53b08","order":5,"width":2,"height":1},{"id":"99a8722cfba3330c","type":"ui_spacer","z":"5ae2678cc961bbaa","name":"spacer","group":"9cda59cb2db53b08","order":6,"width":2,"height":1},{"id":"e2b80eede02a3566","type":"ui_spacer","z":"5ae2678cc961bbaa","name":"spacer","group":"9cda59cb2db53b08","order":7,"width":2,"height":1},{"id":"0d36b7a34b1bd150","type":"ui_spacer","z":"5ae2678cc961bbaa","name":"spacer","group":"9cda59cb2db53b08","order":8,"width":2,"height":1},{"id":"ac099924895862bd","type":"ui_spacer","z":"5ae2678cc961bbaa","name":"spacer","group":"9cda59cb2db53b08","order":9,"width":2,"height":1},{"id":"46d7e9b44c9368e0","type":"ui_spacer","z":"5ae2678cc961bbaa","name":"spacer","group":"9cda59cb2db53b08","order":10,"width":2,"height":1},{"id":"9b3177d5cdebea13","type":"ui_spacer","z":"5ae2678cc961bbaa","name":"spacer","group":"9cda59cb2db53b08","order":11,"width":2,"height":1},{"id":"caf4fd3370cdd494","type":"ui_spacer","z":"5ae2678cc961bbaa","name":"spacer","group":"201b781136648299","order":5,"width":3,"height":1},{"id":"e0e215709f0b9436","type":"ui_spacer","z":"5ae2678cc961bbaa","name":"spacer","group":"201b781136648299","order":6,"width":3,"height":1},{"id":"574bec2a69685437","type":"OpcUa-Endpoint","endpoint":"opc.tcp://10.31.1.118:62520/AggregationServer","secpol":"None","secmode":"None","none":true,"login":false,"usercert":false,"usercertificate":"","userprivatekey":""},{"id":"4e09b0d1.34a4cc","type":"ui_template","z":"5ae2678cc961bbaa","group":"b7d07f0f.b4e8b8","name":"Overview Table","order":1,"width":4,"height":10,"format":"<div style=\"display:flex\">\n <div >\n <table border=\"1\">\n <thead>\n <tr>\n <th>ID</th>\n <th>Name</th>\n </tr>\n </thead>\n <tbody id=\"tableMetaData\">\n </tbody>\n </table>\n </div>\n</div>\n\n\n<script>\n (function(scope) {\n scope.$watch('msg', function(data) {\n scopeCopy = scope\n var table = document.getElementById(\"tableMetaData\")\n table.innerHTML = \"\";\n if(table !== null) {\n for (const [key, value] of Object.entries(data.payload)) {\n var rowElement = document.createElement(\"tr\");\n var rowItem1 = document.createElement(\"td\");\n var rowItem2 = document.createElement(\"td\");\n rowItem1.textContent = key \n rowItem2.textContent = value.name\n\n rowElement.appendChild(rowItem1)\n rowElement.appendChild(rowItem2)\n\n table.appendChild(rowElement)\n }\n }\n });\n\n })(scope); \n</script>","storeOutMessages":false,"fwdInMessages":true,"resendOnRefresh":true,"templateScope":"local","className":"","x":720,"y":140,"wires":[[]]},{"id":"3e1d960957b10cec","type":"mqtt in","z":"5ae2678cc961bbaa","name":"","topic":"ie/m/j/simatic/v1/css7pdriver1/#","qos":"2","datatype":"auto-detect","broker":"7ea936acf0f1cc9d","nl":false,"rap":true,"rh":0,"inputs":0,"x":210,"y":140,"wires":[["3265174f39b8ac47"]]},{"id":"59b7528c6208edd3","type":"comment","z":"5ae2678cc961bbaa","name":"Map all available Datapoints from IIH to the corresponding ID","info":"","x":300,"y":100,"wires":[]},{"id":"3265174f39b8ac47","type":"function","z":"5ae2678cc961bbaa","name":"Get Metadata","func":"var dataPointMap = global.get(\"dataPointMap\");\nif (dataPointMap === undefined){\n dataPointMap = {};\n}\n\n\nlet connections = msg.payload.connections\nfor (let connection of connections){\n for (let dataPoint of connection.dataPoints){\n for (let dataPointDefinition of dataPoint.dataPointDefinitions){\n dataPointMap[dataPointDefinition.id] = { \"name\": dataPointDefinition.name, \"pubTopic\": dataPoint.pubTopic, \"subTopic\": dataPoint.topic}\n }\n }\n\n}\n\nmsg.payload = dataPointMap;\nglobal.set(\"dataPointMap\", dataPointMap);\n\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":480,"y":140,"wires":[["c9205ec3dc8e97c0","4e09b0d1.34a4cc"]]},{"id":"1a7510179b219f68","type":"mqtt in","z":"5ae2678cc961bbaa","name":"","topic":"ie/m/j/simatic/v1/sqlc1/#","qos":"2","datatype":"auto-detect","broker":"7ea936acf0f1cc9d","nl":false,"rap":true,"rh":0,"inputs":0,"x":180,"y":200,"wires":[["3265174f39b8ac47"]]},{"id":"698d90476b3e48c2","type":"function","z":"5ae2678cc961bbaa","name":"setup connection","func":"var connection = global.get(\"connection\");\nif (connection === undefined || Object.keys(connection).length === 0){\n connection = {\"connections\": [], \"status\": false};\n}\n\nif(msg.payload.inputAValue === undefined || msg.payload.inputBValue === undefined){\n node.error(\"tried to connect unefined variables\")\n return\n}\n\n\nconnection[\"activeConnections\"].push({\"A\": msg.payload.inputAValue, \"B\": msg.payload.inputBValue, \"lastVal\": undefined})\n\nglobal.set(\"connection\",connection)\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1070,"y":60,"wires":[[]]},{"id":"ea7b44b58e820167","type":"mqtt out","z":"5ae2678cc961bbaa","name":"","topic":"ie/d/j/simatic/v1/css7pdriver1/dp/w/PLC_1","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"7ea936acf0f1cc9d","x":960,"y":460,"wires":[]},{"id":"637b2efb1d61f889","type":"mqtt out","z":"5ae2678cc961bbaa","name":"","topic":"ie/d/j/simatic/v1/sqlc1/dp/w/CuttingMachine/MachineData","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"7ea936acf0f1cc9d","x":1010,"y":360,"wires":[]},{"id":"43e217ce9d74e218","type":"mqtt in","z":"5ae2678cc961bbaa","name":"","topic":"ie/d/j/simatic/v1/css7pdriver1/dp/r/PLC_1/1000ms","qos":"2","datatype":"auto-detect","broker":"7ea936acf0f1cc9d","nl":false,"rap":true,"rh":0,"inputs":0,"x":260,"y":360,"wires":[["d3a8e4fbdb87b255"]]},{"id":"b22d0f73142b0795","type":"mqtt in","z":"5ae2678cc961bbaa","name":"","topic":"ie/d/j/simatic/v1/sqlc1/dp/r/CuttingMachine/MachineData","qos":"2","datatype":"auto-detect","broker":"7ea936acf0f1cc9d","nl":false,"rap":true,"rh":0,"inputs":0,"x":280,"y":580,"wires":[["c46215c51f9652a9","986ae1d220b4cf24","c53ec69ec75b2397","988eb299e09873f5","3f5bac1ed9f0204b"]]},{"id":"9ca241eecdd6201e","type":"inject","z":"5ae2678cc961bbaa","name":"Trigger Reset","props":[{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":170,"y":40,"wires":[["5b6f802b5bd18580"]]},{"id":"5b6f802b5bd18580","type":"function","z":"5ae2678cc961bbaa","name":"function 5","func":"global.set(\"dataPointMap\", {});\nglobal.set(\"connection\", { \"activeConnections\": [], \"status\": false })\n\n","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":460,"y":40,"wires":[[]]},{"id":"d3a8e4fbdb87b255","type":"function","z":"5ae2678cc961bbaa","name":"Converter S7+toMSQL","func":"var globalDataPointMap = global.get(\"dataPointMap\");\nvar connection = global.get(\"connection\");\n\nif (connection.status !== true){\n return\n}\nlet sendMsg = {\n \"seq\":1,\n \"vals\":[]\n}\nlet matched = false;\nlet sendDataPoint = {}\nfor (let activeConnection of connection.activeConnections){\n for (let receivedDataPoint of msg.payload.records[0].vals){\n if (activeConnection.A === receivedDataPoint.id){\n matched = true;\n activeConnection.lastVal = receivedDataPoint.val\n sendMsg.vals.push({\n \"id\": activeConnection.B,\n \"val\":receivedDataPoint.val\n })\n }\n }\n if(matched === false){\n sendMsg.vals.push({\n \"id\": activeConnection.B,\n \"val\": activeConnection.lastVal\n }) \n }\n matched = false;\n\n}\n\n\nif(sendMsg.vals.length === 0){\n return\n}\n\nmsg.payload = sendMsg\n\nglobal.set(\"connection\", connection);\n\nreturn msg","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":620,"y":360,"wires":[["637b2efb1d61f889"]]},{"id":"a2f1be15e848b88e","type":"function","z":"5ae2678cc961bbaa","name":"toggle connection","func":"if(msg.payload === undefined){\n return\n}\nif(msg.payload.start !== undefined){\n var connection = global.get(\"connection\")\n connection[\"status\"] = msg.payload.start\n global.set(\"connection\", connection)\n node.status(\"data transfer started....\")\n return\n}\n\nif (msg.payload.reset !== undefined) {\n global.set(\"connection\", {\"activeConnections\": [], \"status\": false})\n node.status(\"all connections reseted....\")\n return\n}\n","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1290,"y":260,"wires":[[]]},{"id":"0b50c26994d28ab0","type":"function","z":"5ae2678cc961bbaa","name":"Converter MSSQLtoS7+","func":"var globalStart = global.get(\"start\");\nvar globalDataPointMap = global.get(\"dataPointMap\");\nvar connections = global.get(\"connections\");\n\nif (globalStart === false){\n return\n}\nlet sendMsg = undefined\n\nfor (let receivedDataPoint of msg.payload.vals){\n\n for (let connection of connections){\n if(connection.A === receivedDataPoint.id){\n sendMsg = {\n \"seq\":1,\n \"vals\":[{\n \"id\":connection.B,\n \"val\":receivedDataPoint.val[0]\n }]\n }\n }\n }\n}\n\nif(sendMsg === undefined){\n return\n}\n\nmsg.payload = sendMsg\n\nreturn msg","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":630,"y":460,"wires":[[]]},{"id":"47d4e43892e236cb","type":"mqtt in","z":"5ae2678cc961bbaa","name":"","topic":"ie/d/j/simatic/v1/sqlc1/dp/r/CuttingMachine/MachineData","qos":"2","datatype":"auto-detect","broker":"7ea936acf0f1cc9d","nl":false,"rap":true,"rh":0,"inputs":0,"x":280,"y":460,"wires":[[]]},{"id":"c9205ec3dc8e97c0","type":"ui_template","z":"5ae2678cc961bbaa","group":"9cda59cb2db53b08","name":"Connect_From_Dropdown","order":1,"width":4,"height":10,"format":"<div style=\"display:flex\">\n <div>\n <p>Select variables to connect </p>\n <select id=\"dynamicDropdownA\"></select>\n <select id=\"dynamicDropdownB\"></select>\n \n <button ng-click=\"send({payload:action()})\">Connect Selected</button>\n </div>\n</div>\n\n\n<script>\n (function(scope) {\n scope.$watch('msg', function(data) {\n const dropdown = document.getElementById(\"dynamicDropdownA\");\n const dropdown2 = document.getElementById(\"dynamicDropdownB\");\n dropdown.innerHTML = \"\";\n dropdown2.innerHTML = \"\";\n\n for (const [key, value] of Object.entries(data.payload)) {\n const newOption = document.createElement(\"option\");\n newOption.value = key\n newOption.text = value.name\n dropdown.appendChild(newOption);\n dropdown2.appendChild(newOption.cloneNode(true));\n }\n \n });\n\n })(scope); \n this.scope.action = function() {\n \n var inputAValue = document.getElementById(\"dynamicDropdownA\").value;\n var inputBValue = document.getElementById(\"dynamicDropdownB\").value;\n \n \n return {\"inputAValue\": inputAValue, \"inputBValue\": inputBValue};\n }\n</script>","storeOutMessages":false,"fwdInMessages":false,"resendOnRefresh":true,"templateScope":"local","className":"","x":760,"y":60,"wires":[["698d90476b3e48c2"]]},{"id":"77e0951a6d8d7f24","type":"ui_template","z":"5ae2678cc961bbaa","group":"e45c880a560ffdda","name":"Active Connection Control","order":1,"width":4,"height":10,"format":"<div style=\"display:flex\">\n <div>\n <p>Connections A->B </p>\n <table border=\"1\">\n <thead>\n <tr>\n <th>A</th>\n <th>B</th>\n </tr>\n </thead>\n <tbody id=\"tableConnectionsIso\">\n </tbody>\n </table>\n <button ng-click=\"send({payload:startConnection(true)})\">Start</button>\n <button ng-click=\"send({payload:startConnection(false)})\">Stop</button>\n <button ng-click=\"send({payload:reset()})\">Reset All</button>\n </div>\n <div>\n <p>Data transfer <div id=\"statusTransfer\"></div></p>\n\n </div>\n\n</div>\n\n\n<script>\n (function(scope) {\n scope.$watch('msg', function(data) {\n var statusTransfer = document.getElementById(\"statusTransfer\")\n statusTransfer.innerHTML = \"\"\n var table = document.getElementById(\"tableConnectionsIso\")\n table.innerHTML = \"\";\n if(data === undefined){\n return\n }\n if(data.payload.status){\n statusTransfer.innerHTML = \"started...\";\n }else{\n statusTransfer.innerHTML = \"stopped...\";\n }\n\n for (datapoint of data.payload.activeConnections){\n var rowElement = document.createElement(\"tr\");\n var rowItem1 = document.createElement(\"td\");\n var rowItem2 = document.createElement(\"td\");\n rowItem1.textContent = datapoint.A\n rowItem2.textContent = datapoint.B\n \n rowElement.appendChild(rowItem1)\n rowElement.appendChild(rowItem2)\n \n table.appendChild(rowElement)\n }\n\n });\n\n })(scope); \n this.scope.startConnection = function(start) {\n return {\"start\": start};\n }\n this.scope.reset = function() {\n return {\"reset\": true};\n }\n</script>","storeOutMessages":false,"fwdInMessages":true,"resendOnRefresh":true,"templateScope":"local","className":"","x":1010,"y":260,"wires":[["a2f1be15e848b88e"]]},{"id":"94e4ad66decc225b","type":"trigger","z":"5ae2678cc961bbaa","name":"","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"-1","extend":false,"overrideDelay":false,"units":"s","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":440,"y":260,"wires":[["35312c461227e445"]]},{"id":"35312c461227e445","type":"function","z":"5ae2678cc961bbaa","name":"Mapped Connection Table","func":"var connection = global.get(\"connection\");\n\nmsg.payload = connection;\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":710,"y":260,"wires":[["77e0951a6d8d7f24"]]},{"id":"3afe5d7ee56d7bcb","type":"inject","z":"5ae2678cc961bbaa","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":190,"y":260,"wires":[["94e4ad66decc225b"]]},{"id":"c46215c51f9652a9","type":"ui_template","z":"5ae2678cc961bbaa","group":"201b781136648299","name":"Overview Table","order":7,"width":14,"height":2,"format":"<div style=\"display:block; width:100%\">\n <div>\n <p>Data from SQL </p>\n <table border=\"1\"; style=\"table-layout: auto; width: 100%\">\n <thead>\n <tr>\n <th style=\"width:20%\">TimeStamp</th>\n <th>Data</th>\n </tr>\n </thead>\n <tbody id=\"sqlData\">\n </tbody>\n </table>\n </div>\n\n</div>\n\n\n<script>\n (function(scope) {\n scope.$watch('msg.payload', function(data) {\n var table = document.getElementById(\"sqlData\")\n table.innerHTML = \"\";\n if(data === undefined){\n return\n }\n var rowElement = document.createElement(\"tr\");\n var rowItem1 = document.createElement(\"td\");\n var rowItem2 = document.createElement(\"td\");\n rowItem1.textContent = data.ts\n rowItem2.textContent = JSON.stringify(data.vals)\n \n rowElement.appendChild(rowItem1)\n rowElement.appendChild(rowItem2)\n \n table.appendChild(rowElement)\n \n\n });\n\n })(scope); \n this.scope.startConnection = function(start) {\n return {\"start\": start};\n }\n this.scope.reset = function() {\n return {\"reset\": true};\n }\n</script>","storeOutMessages":false,"fwdInMessages":true,"resendOnRefresh":true,"templateScope":"local","className":"","x":640,"y":580,"wires":[[]]},{"id":"147fc40d55bde831","type":"comment","z":"5ae2678cc961bbaa","name":"Convert Datapoints from one connector to the other","info":"","x":270,"y":320,"wires":[]},{"id":"d73d64811f66b15d","type":"comment","z":"5ae2678cc961bbaa","name":"Display SQL Data","info":"","x":170,"y":540,"wires":[]},{"id":"91ae6c4476e21ff5","type":"ui_gauge","z":"5ae2678cc961bbaa","name":"","group":"201b781136648299","order":1,"width":3,"height":2,"gtype":"gage","title":"Machine Temperature","label":"units","format":"{{value | number:2}}","min":0,"max":"130","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","diff":false,"className":"","x":980,"y":660,"wires":[]},{"id":"986ae1d220b4cf24","type":"function","z":"5ae2678cc961bbaa","name":"get sensor temperature data","func":"msg.payload = msg.payload.vals[0].val\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":680,"y":660,"wires":[["91ae6c4476e21ff5"]]},{"id":"bd0190d47cd68333","type":"ui_gauge","z":"5ae2678cc961bbaa","name":"","group":"201b781136648299","order":2,"width":3,"height":2,"gtype":"gage","title":"Machine Velocity","label":"units","format":"{{value | number:2}}","min":0,"max":"1000","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","diff":false,"className":"","x":970,"y":700,"wires":[]},{"id":"c53ec69ec75b2397","type":"function","z":"5ae2678cc961bbaa","name":"get sensor velocity data","func":"msg.payload = msg.payload.vals[1].val\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":670,"y":700,"wires":[["bd0190d47cd68333"]]},{"id":"d19a7e813b7398c6","type":"ui_gauge","z":"5ae2678cc961bbaa","name":"","group":"201b781136648299","order":3,"width":3,"height":2,"gtype":"gage","title":"Machine Vibration","label":"units","format":"{{value | number:2}}","min":0,"max":"1000","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","diff":false,"className":"","x":970,"y":740,"wires":[]},{"id":"988eb299e09873f5","type":"function","z":"5ae2678cc961bbaa","name":"get sensor vibration data","func":"msg.payload = msg.payload.vals[2].val\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":670,"y":740,"wires":[["d19a7e813b7398c6"]]},{"id":"0845999d8c0b22cd","type":"ui_gauge","z":"5ae2678cc961bbaa","name":"","group":"201b781136648299","order":4,"width":2,"height":2,"gtype":"donut","title":"Overheated","label":"","format":"{{value}}","min":0,"max":"1","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","diff":false,"className":"","x":950,"y":780,"wires":[]},{"id":"3f5bac1ed9f0204b","type":"function","z":"5ae2678cc961bbaa","name":"get overheated var","func":"msg.payload = msg.payload.vals[4].val\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":650,"y":780,"wires":[["0845999d8c0b22cd"]]},{"id":"730639e527bb5006","type":"OpcUa-Client","z":"5ae2678cc961bbaa","endpoint":"574bec2a69685437","action":"subscribe","deadbandtype":"a","deadbandvalue":1,"time":10,"timeUnit":"s","certificate":"n","localfile":"","localkeyfile":"","securitymode":"None","securitypolicy":"None","folderName4PKI":"","useTransport":false,"maxChunkCount":1,"maxMessageSize":8192,"receiveBufferSize":8192,"sendBufferSize":8192,"name":"","x":740,"y":920,"wires":[["d95cecfc9f180165"]]},{"id":"884481ef9d30e096","type":"OpcUa-Item","z":"5ae2678cc961bbaa","item":"ns=11;i=6014","datatype":"Float","value":"1201.0","name":"","x":500,"y":920,"wires":[["730639e527bb5006"]]},{"id":"c976eef53998cfe6","type":"inject","z":"5ae2678cc961bbaa","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"1201","payloadType":"num","x":250,"y":920,"wires":[["884481ef9d30e096"]]},{"id":"d95cecfc9f180165","type":"debug","z":"5ae2678cc961bbaa","name":"Log-OPC UA Write","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":990,"y":920,"wires":[]}]