UNPKG

@opcua/for-node-red

Version:

The Node-RED node to communicate via OPC UA, powered NodeOPCUA and developed by Sterfive's team

1,921 lines 100 kB
[ { "id": "8914237e0d8e46c7", "type": "tab", "label": "Advanced Coffee Machine Example", "disabled": false, "info": "", "env": [] }, { "id": "a872632f0795dffe", "type": "group", "z": "8914237e0d8e46c7", "style": { "stroke": "#999999", "stroke-opacity": "1", "fill": "none", "fill-opacity": "1", "label": true, "label-position": "nw", "color": "#a4a4a4" }, "nodes": [ "5163f0e3c15147e2", "9ce44b437e2ed4eb", "17f15759ea0b4678", "ae2a5d89ca13248d", "44eeed6c80419b5f", "7b496ba60d331069", "1c3d6230a57c852c", "c172f527ba188866", "ae3fe0588bcec600", "83de8924a1f6f2a5", "807487cd9637d0e1", "e181ef3ed9e6dc40", "6c7658b34fce0ac3" ], "x": 1114, "y": 119, "w": 432, "h": 482 }, { "id": "23e92d93ed23febc", "type": "group", "z": "8914237e0d8e46c7", "name": "Connection status", "style": { "stroke": "#ffC000", "label": true }, "nodes": [ "dc5e73eb1991eed3", "36b2628c69b87d42", "f79e321ce9b22631", "46d99d7986a03b57", "e975667424fe78b7", "dcf7ab764b7d2921" ], "x": 194, "y": 939, "w": 812, "h": 242 }, { "id": "b07d4a44ddb86adf", "type": "group", "z": "8914237e0d8e46c7", "name": "Heater", "style": { "label": true }, "nodes": [ "3e9be0f18116b2c2", "2b573431a25e870f", "68e0c3653588a07d", "bd7c7f49e974f208", "d3b1d8b5c05c2b22", "07bde3d3f85f2a40", "c369c3262a3b57fa", "f1f77b6afa4257f0" ], "x": 194, "y": 719, "w": 812, "h": 202 }, { "id": "62d148a7e9f5c520", "type": "group", "z": "8914237e0d8e46c7", "name": "Current State", "style": { "label": true }, "nodes": [ "c9717ac11b53672e", "3a8c7eb7dc515e34", "798535950531337a" ], "x": 1054, "y": 699, "w": 632, "h": 82 }, { "id": "11f19caa7b9760b7", "type": "group", "z": "8914237e0d8e46c7", "name": "Pump", "style": { "label": true }, "nodes": [ "f3ba9efdc12e30ce", "24ab918428d73e5f", "b8ba5e020aa48e2a", "7619f93616149cdc" ], "x": 1054, "y": 799, "w": 632, "h": 122 }, { "id": "f250c8ad248b028d", "type": "group", "z": "8914237e0d8e46c7", "name": "Process Variables", "style": { "fill": "#ffffbf", "label": true }, "nodes": [ "517edf10f355e464", "d22591b8e78ebe7d", "29542b83f026fb7b", "684238fb58a91415" ], "x": 188, "y": 73, "w": 724, "h": 634 }, { "id": "ec1ab7ca9e060d7f", "type": "group", "z": "8914237e0d8e46c7", "style": { "stroke": "#999999", "stroke-opacity": "1", "fill": "none", "fill-opacity": "1", "label": true, "label-position": "nw", "color": "#a4a4a4" }, "nodes": [ "4cecc03d1a64c091", "f6b1e7b0df0fa288", "0c098347de28a15d", "57622c7f24dacef7", "237e980896f1a684", "e3c1066f3260a1cb", "0597a0ffcdab77cd", "6008fa16cda462d5", "1fca2f6f28cc4828", "2857eb76526322a1", "ea1957e0718f21fd" ], "x": 1054, "y": 979, "w": 772, "h": 202 }, { "id": "230bb82688833807", "type": "group", "z": "8914237e0d8e46c7", "name": "Pooling Read", "style": { "label": true }, "nodes": [ "d21be93e03b60165", "1832b372c56dc715", "5f6eeb0fc5228a66", "5e50f3a2da48a03b", "fe845d4c6aa473d0", "50c33de026727ab2", "99b27a72cfb58370", "829ce0410d7c3b05", "1bea16ead1291025" ], "x": 194, "y": 1419, "w": 1172, "h": 162 }, { "id": "54277e0eb0f4eddd", "type": "group", "z": "8914237e0d8e46c7", "name": "Display NAMUR Symbol", "style": { "label": true }, "nodes": [ "44225cb3561717c6", "61237053c6df429d", "2456ee93776095bc" ], "x": 194, "y": 1599, "w": 592, "h": 82 }, { "id": "665736b8cbeb246d", "type": "group", "z": "8914237e0d8e46c7", "name": "Synopsis", "style": { "stroke": "#ffbfbf", "fill": "#e3f3d3", "label": true }, "nodes": [ "2c7b916b70107153", "eeaa86a8240214df", "42fea19e7e56afbc", "072413d285aeb40e", "f64d872549983d6f", "143a262a2cbfe451", "a1492e996fe8302a" ], "x": 194, "y": 1719, "w": 1012, "h": 162 }, { "id": "a9f1eb481f74dde3", "type": "group", "z": "8914237e0d8e46c7", "name": "Collect data to CSV", "style": { "stroke": "#3f93cf", "fill": "#bfdbef", "label": true }, "nodes": [ "b577d7342c008353", "529de43bbcc8ddd4", "73a7a87a437b298c", "239601af1e96d917", "ccd602507a4abc68", "b694d72cbaef5d85", "af5560e53daca7e6", "96aded34d2e12af9", "14863b828843ebb1", "6022bc4dbfcea9ed" ], "x": 204, "y": 1219, "w": 1122, "h": 169.5 }, { "id": "517edf10f355e464", "type": "group", "z": "8914237e0d8e46c7", "g": "f250c8ad248b028d", "name": "Water Tank", "style": { "label": true, "fill": "#bfdbef" }, "nodes": [ "5ddf1b5952313443", "a66ec0e0a1360f34", "9122c1157cbe0b5e", "e97157a71ff3fc6b", "d2a8ee6868d23307", "0f373262c51c849b" ], "x": 214, "y": 99, "w": 672, "h": 162 }, { "id": "d22591b8e78ebe7d", "type": "group", "z": "8914237e0d8e46c7", "g": "f250c8ad248b028d", "name": "Milk Tank", "style": { "label": true }, "nodes": [ "49367ab61a7d3443", "bbfc30b4f5fe5cdd", "ab80657e6899a890", "d341f2efd4821785", "c5df8a8624445a8a" ], "x": 214, "y": 279, "w": 652, "h": 122 }, { "id": "29542b83f026fb7b", "type": "group", "z": "8914237e0d8e46c7", "g": "f250c8ad248b028d", "name": "Coffee Beam Tank", "style": { "label": true }, "nodes": [ "0ab25a3cc9a2fb4c", "f64ae2163a90f520", "ffdc07a2a8644ee7", "d67dc25d267b8aab", "4d754c69f2e0b376" ], "x": 214, "y": 419, "w": 672, "h": 122 }, { "id": "684238fb58a91415", "type": "group", "z": "8914237e0d8e46c7", "g": "f250c8ad248b028d", "name": "Boiler", "style": { "label": true }, "nodes": [ "2cfd5287e52e0fb0", "400b6980b1a2cd45", "4f1eb368f3fb45c1", "33eb2077b9bb31d1", "528f9a8a184a078a", "f4abb62d50e829d9", "3287809947131ac3", "bc32ee4142fc26ab" ], "x": 214, "y": 559, "w": 632, "h": 122 }, { "id": "5ddf1b5952313443", "type": "OpcUa-Client2-Monitor", "z": "8914237e0d8e46c7", "g": "517edf10f355e464", "inputs": 0, "output": 2, "name": "WaterTankLevel", "endpoint": "9593045b235c321c", "subscription": "s2", "startImmediately": true, "nodeId": "/di:DeviceSet/ns1:CoffeeMachineA.kitchen:Parameters.sterfive:WaterTankLevel", "samplingInterval": "250", "discardOldest": true, "queueSize": 10, "x": 320, "y": 180, "wires": [ [ "e97157a71ff3fc6b", "d2a8ee6868d23307" ] ] }, { "id": "5163f0e3c15147e2", "type": "OpcUa-Client2-Call", "z": "8914237e0d8e46c7", "g": "a872632f0795dffe", "inputs": 1, "output": 4, "name": "Make Coffee", "endpoint": "9593045b235c321c", "action": "read", "methodId": "/di:DeviceSet/ns1:CoffeeMachineA.di:MethodSet.sterfive:MakeCoffee", "objectId": "/di:DeviceSet/ns1:CoffeeMachineA", "x": 1450, "y": 220, "wires": [ [], [] ] }, { "id": "9ce44b437e2ed4eb", "type": "inject", "z": "8914237e0d8e46c7", "g": "a872632f0795dffe", "name": "Mocha", "props": [ { "p": "payload" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "{\"RecipeName\": \"Mocha\"}", "payloadType": "json", "x": 1230, "y": 220, "wires": [ [ "5163f0e3c15147e2" ] ] }, { "id": "17f15759ea0b4678", "type": "OpcUa-Client2-Call", "z": "8914237e0d8e46c7", "g": "a872632f0795dffe", "inputs": 1, "output": 4, "name": "FillTank", "endpoint": "9593045b235c321c", "action": "read", "methodId": "/di:DeviceSet/ns1:CoffeeMachineA.di:MethodSet.sterfive:FillTank", "objectId": "/di:DeviceSet/ns1:CoffeeMachineA", "x": 1450, "y": 320, "wires": [ [], [] ] }, { "id": "ae2a5d89ca13248d", "type": "inject", "z": "8914237e0d8e46c7", "g": "a872632f0795dffe", "name": "", "props": [], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "x": 1230, "y": 320, "wires": [ [ "17f15759ea0b4678" ] ] }, { "id": "2cfd5287e52e0fb0", "type": "OpcUa-Client2-Monitor", "z": "8914237e0d8e46c7", "g": "684238fb58a91415", "inputs": 0, "output": 2, "name": "BoilerTempWater", "endpoint": "9593045b235c321c", "subscription": "s2", "startImmediately": true, "nodeId": "/di:DeviceSet/ns1:CoffeeMachineA.kitchen:Parameters.kitchen:BoilerTempWater", "samplingInterval": "100", "discardOldest": true, "queueSize": 10, "x": 320, "y": 600, "wires": [ [ "33eb2077b9bb31d1", "528f9a8a184a078a" ] ] }, { "id": "a66ec0e0a1360f34", "type": "ui-chart", "z": "8914237e0d8e46c7", "g": "517edf10f355e464", "group": "0eeeefa89ae3646a", "name": "Water Tank Level ", "label": "Tank", "order": 12, "chartType": "line", "category": "", "categoryType": "none", "xAxisLabel": "date", "xAxisProperty": "timestamp", "xAxisPropertyType": "property", "xAxisType": "time", "xAxisFormat": "", "xAxisFormatType": "HH:mm:ss", "xmin": "", "xmax": "", "yAxisLabel": "", "yAxisProperty": "value", "yAxisPropertyType": "property", "ymin": "0", "ymax": "1200", "bins": 10, "action": "append", "stackSeries": false, "pointShape": "circle", "pointRadius": 4, "showLegend": true, "removeOlder": "3", "removeOlderUnit": "60", "removeOlderPoints": "", "colors": [ "#0095ff", "#ff0000", "#ff7f0e", "#2ca02c", "#a347e1", "#d62728", "#ff9896", "#9467bd", "#c5b0d5" ], "textColor": [ "#666666" ], "textColorDefault": true, "gridColor": [ "#e5e5e5" ], "gridColorDefault": true, "width": "3", "height": "4", "className": "", "interpolation": "bezier", "x": 770, "y": 220, "wires": [ [] ] }, { "id": "400b6980b1a2cd45", "type": "ui-gauge", "z": "8914237e0d8e46c7", "g": "684238fb58a91415", "name": "Temperature", "group": "0eeeefa89ae3646a", "order": 11, "width": "3", "height": "3", "gtype": "gauge-half", "gstyle": "needle", "title": "Temperature", "units": "°C", "icon": "thermometer", "prefix": "", "suffix": "°C", "segments": [ { "from": "0", "color": "#5cd65c" }, { "from": "60", "color": "#ffc800" }, { "from": "90", "color": "#ea5353" } ], "min": 0, "max": "120", "sizeThickness": 16, "sizeGap": 4, "sizeKeyThickness": 8, "styleRounded": true, "styleGlow": false, "className": "", "x": 750, "y": 600, "wires": [] }, { "id": "9122c1157cbe0b5e", "type": "ui-gauge", "z": "8914237e0d8e46c7", "g": "517edf10f355e464", "name": "Water Tank Level", "group": "0eeeefa89ae3646a", "order": 8, "width": "3", "height": "3", "gtype": "gauge-half", "gstyle": "needle", "title": "Water Tank Level", "units": "mL", "icon": "", "prefix": "", "suffix": "", "segments": [ { "from": "0", "color": "#ff0000" }, { "from": "100", "color": "#ffc800" }, { "from": "200", "color": "#5cd65c" }, { "from": "1000", "color": "#ffc800" }, { "from": "1100", "color": "#ea5353" } ], "min": 0, "max": "1200", "sizeThickness": "60", "sizeGap": "6", "sizeKeyThickness": 8, "styleRounded": true, "styleGlow": false, "className": "", "x": 770, "y": 180, "wires": [] }, { "id": "44eeed6c80419b5f", "type": "ui-button", "z": "8914237e0d8e46c7", "g": "a872632f0795dffe", "group": "0eeeefa89ae3646a", "name": "Fill Tank", "label": "Filll Tank", "order": 7, "width": "28", "height": "1", "emulateClick": false, "tooltip": "", "color": "", "bgcolor": "", "className": "", "icon": "", "iconPosition": "left", "payload": "", "payloadType": "str", "topic": "topic", "topicType": "msg", "buttonColor": "", "textColor": "", "iconColor": "", "enableClick": true, "enablePointerdown": false, "pointerdownPayload": "", "pointerdownPayloadType": "str", "enablePointerup": false, "pointerupPayload": "", "pointerupPayloadType": "str", "x": 1220, "y": 360, "wires": [ [ "17f15759ea0b4678" ] ] }, { "id": "7b496ba60d331069", "type": "ui-button", "z": "8914237e0d8e46c7", "g": "a872632f0795dffe", "group": "0eeeefa89ae3646a", "name": "Make Mocha", "label": "Make Mocha", "order": 6, "width": "28", "height": "1", "emulateClick": false, "tooltip": "", "color": "", "bgcolor": "", "className": "", "icon": "", "iconPosition": "left", "payload": "{\"RecipeName\":\"Mocha\"}", "payloadType": "json", "topic": "topic", "topicType": "msg", "buttonColor": "", "textColor": "", "iconColor": "", "enableClick": true, "enablePointerdown": false, "pointerdownPayload": "", "pointerdownPayloadType": "str", "enablePointerup": false, "pointerupPayload": "", "pointerupPayloadType": "str", "x": 1210, "y": 260, "wires": [ [ "5163f0e3c15147e2" ] ] }, { "id": "4f1eb368f3fb45c1", "type": "ui-chart", "z": "8914237e0d8e46c7", "g": "684238fb58a91415", "group": "0eeeefa89ae3646a", "name": "Temperature", "label": "Water Temperature", "order": 15, "chartType": "line", "category": "topic", "categoryType": "msg", "xAxisLabel": "Temperature", "xAxisProperty": "timestamp", "xAxisPropertyType": "property", "xAxisType": "time", "xAxisFormat": "", "xAxisFormatType": "HH:mm:ss", "xmin": "", "xmax": "", "yAxisLabel": "", "yAxisProperty": "value", "yAxisPropertyType": "property", "ymin": "10", "ymax": "150", "bins": 10, "action": "append", "stackSeries": false, "pointShape": "line", "pointRadius": "1", "showLegend": true, "removeOlder": "3", "removeOlderUnit": "60", "removeOlderPoints": "", "colors": [ "#0095ff", "#ff0000", "#ff7f0e", "#2ca02c", "#a347e1", "#d62728", "#ff9896", "#9467bd", "#c5b0d5" ], "textColor": [ "#6a4444" ], "textColorDefault": false, "gridColor": [ "#e5e5e5" ], "gridColorDefault": false, "width": "3", "height": "4", "className": "", "interpolation": "bezier", "x": 750, "y": 640, "wires": [ [] ] }, { "id": "e97157a71ff3fc6b", "type": "function", "z": "8914237e0d8e46c7", "g": "517edf10f355e464", "name": "adapt payload", "func": "return {\n payload: {\n value: Math.floor(msg.payload*10)/10,\n timestamp: new Date(msg.sourceTimestamp).getTime()\n\n }\n};", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 560, "y": 220, "wires": [ [ "a66ec0e0a1360f34" ] ] }, { "id": "2c7b916b70107153", "type": "OpcUa-Client2-Explore", "z": "8914237e0d8e46c7", "g": "665736b8cbeb246d", "inputs": 1, "output": 4, "name": "", "endpoint": "9593045b235c321c", "nodeId": "/di:DeviceSet/ns1:CoffeeMachineA.kitchen:Parameters", "outputType": "AliasedBrowsePath", "excludeEmpty": false, "followOrganizes": true, "x": 460, "y": 1800, "wires": [ [ "eeaa86a8240214df", "a1492e996fe8302a" ] ] }, { "id": "eeaa86a8240214df", "type": "debug", "z": "8914237e0d8e46c7", "g": "665736b8cbeb246d", "name": "debug 8", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 640, "y": 1760, "wires": [] }, { "id": "42fea19e7e56afbc", "type": "inject", "z": "8914237e0d8e46c7", "g": "665736b8cbeb246d", "name": "AutoStart", "props": [], "repeat": "", "crontab": "", "once": true, "onceDelay": 0.1, "topic": "", "x": 300, "y": 1800, "wires": [ [ "2c7b916b70107153" ] ] }, { "id": "072413d285aeb40e", "type": "OpcUa-Client2-Monitor", "z": "8914237e0d8e46c7", "g": "665736b8cbeb246d", "inputs": 1, "output": 2, "name": "", "endpoint": "9593045b235c321c", "subscription": "s0", "startImmediately": false, "nodeId": "", "samplingInterval": 1000, "discardOldest": true, "queueSize": 10, "x": 820, "y": 1800, "wires": [ [ "f64d872549983d6f", "143a262a2cbfe451" ] ] }, { "id": "f64d872549983d6f", "type": "debug", "z": "8914237e0d8e46c7", "g": "665736b8cbeb246d", "name": "debug 11", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 1020, "y": 1760, "wires": [] }, { "id": "49367ab61a7d3443", "type": "OpcUa-Client2-Monitor", "z": "8914237e0d8e46c7", "g": "d22591b8e78ebe7d", "inputs": 0, "output": 2, "name": "Milk Tank Level", "endpoint": "9593045b235c321c", "subscription": "s0", "startImmediately": true, "nodeId": "/di:DeviceSet/ns1:CoffeeMachineA.kitchen:Parameters.sterfive:MilkTankLevel", "samplingInterval": "100", "discardOldest": true, "queueSize": 10, "x": 320, "y": 320, "wires": [ [ "d341f2efd4821785", "c5df8a8624445a8a" ] ] }, { "id": "bbfc30b4f5fe5cdd", "type": "ui-gauge", "z": "8914237e0d8e46c7", "g": "d22591b8e78ebe7d", "name": "Milk Level", "group": "0eeeefa89ae3646a", "order": 9, "width": "3", "height": "3", "gtype": "gauge-half", "gstyle": "needle", "title": "Milk Level", "units": "ùmL", "icon": "", "prefix": "", "suffix": "", "segments": [ { "from": "0", "color": "#d65c5c" }, { "from": "250", "color": "#2dd248" }, { "from": "1000", "color": "#ffc800" }, { "from": "1500", "color": "#ea5353" } ], "min": 0, "max": "1500", "sizeThickness": 16, "sizeGap": 4, "sizeKeyThickness": 8, "styleRounded": true, "styleGlow": false, "className": "", "x": 740, "y": 320, "wires": [] }, { "id": "ab80657e6899a890", "type": "ui-chart", "z": "8914237e0d8e46c7", "g": "d22591b8e78ebe7d", "group": "0eeeefa89ae3646a", "name": "Milk Tank Level ", "label": "Tank", "order": 13, "chartType": "line", "category": "", "categoryType": "none", "xAxisLabel": "date", "xAxisProperty": "timestamp", "xAxisPropertyType": "property", "xAxisType": "time", "xAxisFormat": "", "xAxisFormatType": "HH:mm:ss", "xmin": "", "xmax": "", "yAxisLabel": "", "yAxisProperty": "value", "yAxisPropertyType": "property", "ymin": "0", "ymax": "1200", "bins": 10, "action": "append", "stackSeries": false, "pointShape": "circle", "pointRadius": 4, "showLegend": true, "removeOlder": "3", "removeOlderUnit": "60", "removeOlderPoints": "", "colors": [ "#0095ff", "#ff0000", "#ff7f0e", "#2ca02c", "#a347e1", "#d62728", "#ff9896", "#9467bd", "#c5b0d5" ], "textColor": [ "#666666" ], "textColorDefault": true, "gridColor": [ "#e5e5e5" ], "gridColorDefault": true, "width": "3", "height": "4", "className": "", "interpolation": "bezier", "x": 760, "y": 360, "wires": [ [] ] }, { "id": "d341f2efd4821785", "type": "function", "z": "8914237e0d8e46c7", "g": "d22591b8e78ebe7d", "name": "adapt payload", "func": "return {\n payload: {\n value: Math.floor(msg.payload*10)/10,\n timestamp: new Date(msg.sourceTimestamp).getTime()\n\n }\n};", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 560, "y": 360, "wires": [ [ "ab80657e6899a890" ] ] }, { "id": "0ab25a3cc9a2fb4c", "type": "OpcUa-Client2-Monitor", "z": "8914237e0d8e46c7", "g": "29542b83f026fb7b", "inputs": 0, "output": 2, "name": "Coffe Beam Level", "endpoint": "9593045b235c321c", "subscription": "s0", "startImmediately": true, "nodeId": "/di:DeviceSet/ns1:CoffeeMachineA.kitchen:Parameters.sterfive:CoffeeBeanLevel", "samplingInterval": "100", "discardOldest": true, "queueSize": 10, "x": 330, "y": 460, "wires": [ [ "d67dc25d267b8aab", "4d754c69f2e0b376" ] ] }, { "id": "f64ae2163a90f520", "type": "ui-gauge", "z": "8914237e0d8e46c7", "g": "29542b83f026fb7b", "name": "Cofee Beam", "group": "0eeeefa89ae3646a", "order": 10, "width": "3", "height": "3", "gtype": "gauge-half", "gstyle": "needle", "title": "Coffee Beam Level", "units": "grams", "icon": "", "prefix": "", "suffix": "", "segments": [ { "from": "0", "color": "#ffc800" }, { "from": "30", "color": "#5cd65c" }, { "from": "470", "color": "#ea5353" } ], "min": 0, "max": "600", "sizeThickness": 16, "sizeGap": 4, "sizeKeyThickness": 8, "styleRounded": true, "styleGlow": false, "className": "", "x": 750, "y": 460, "wires": [] }, { "id": "ffdc07a2a8644ee7", "type": "ui-chart", "z": "8914237e0d8e46c7", "g": "29542b83f026fb7b", "group": "0eeeefa89ae3646a", "name": "Coffee Beal Level ", "label": "Tank", "order": 14, "chartType": "line", "category": "", "categoryType": "none", "xAxisLabel": "date", "xAxisProperty": "timestamp", "xAxisPropertyType": "property", "xAxisType": "time", "xAxisFormat": "", "xAxisFormatType": "HH:mm:ss", "xmin": "", "xmax": "", "yAxisLabel": "", "yAxisProperty": "value", "yAxisPropertyType": "property", "ymin": "0", "ymax": "600", "bins": 10, "action": "append", "stackSeries": false, "pointShape": "circle", "pointRadius": 4, "showLegend": true, "removeOlder": "3", "removeOlderUnit": "60", "removeOlderPoints": "", "colors": [ "#0095ff", "#ff0000", "#ff7f0e", "#2ca02c", "#a347e1", "#d62728", "#ff9896", "#9467bd", "#c5b0d5" ], "textColor": [ "#666666" ], "textColorDefault": true, "gridColor": [ "#e5e5e5" ], "gridColorDefault": true, "width": "3", "height": "4", "className": "", "interpolation": "bezier", "x": 770, "y": 500, "wires": [ [] ] }, { "id": "d67dc25d267b8aab", "type": "function", "z": "8914237e0d8e46c7", "g": "29542b83f026fb7b", "name": "adapt payload", "func": "return {\n payload: {\n value: Math.floor(msg.payload*10)/10,\n timestamp: new Date(msg.sourceTimestamp).getTime()\n\n }\n};", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 580, "y": 500, "wires": [ [ "ffdc07a2a8644ee7" ] ] }, { "id": "33eb2077b9bb31d1", "type": "function", "z": "8914237e0d8e46c7", "g": "684238fb58a91415", "name": "adapt payload", "func": "return {\n payload: {\n value: Math.floor(msg.payload*10)/10,\n timestamp: new Date(msg.sourceTimestamp).getTime()\n\n }\n};", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 560, "y": 640, "wires": [ [ "4f1eb368f3fb45c1" ] ] }, { "id": "d2a8ee6868d23307", "type": "function", "z": "8914237e0d8e46c7", "g": "517edf10f355e464", "name": "round", "func": "msg.payload = Math.ceil(msg.payload*10)/10\nreturn msg;", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 530, "y": 180, "wires": [ [ "9122c1157cbe0b5e", "0f373262c51c849b" ] ] }, { "id": "528f9a8a184a078a", "type": "function", "z": "8914237e0d8e46c7", "g": "684238fb58a91415", "name": "round", "func": "msg.payload = Math.ceil(msg.payload*100)/100\nreturn msg;", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 530, "y": 600, "wires": [ [ "400b6980b1a2cd45" ] ] }, { "id": "f4abb62d50e829d9", "type": "function", "z": "8914237e0d8e46c7", "g": "684238fb58a91415", "name": "round", "func": "msg.payload = Math.ceil(msg.payload*100)/100\nreturn msg;", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 530, "y": 600, "wires": [ [] ] }, { "id": "4d754c69f2e0b376", "type": "function", "z": "8914237e0d8e46c7", "g": "29542b83f026fb7b", "name": "round", "func": "msg.payload = Math.ceil(msg.payload*1)/1;\nreturn msg;", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 550, "y": 460, "wires": [ [ "f64ae2163a90f520" ] ] }, { "id": "c5df8a8624445a8a", "type": "function", "z": "8914237e0d8e46c7", "g": "d22591b8e78ebe7d", "name": "round", "func": "msg.payload = Math.ceil(msg.payload*1)/1\nreturn msg;", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 530, "y": 320, "wires": [ [ "bbfc30b4f5fe5cdd" ] ] }, { "id": "3287809947131ac3", "type": "OpcUa-Client2-Monitor", "z": "8914237e0d8e46c7", "g": "684238fb58a91415", "inputs": 0, "output": 2, "name": "BoilerTempWater", "endpoint": "9593045b235c321c", "subscription": "s2", "startImmediately": true, "nodeId": "/di:DeviceSet/ns1:CoffeeMachineA.kitchen:Parameters.kitchen:BoilerTempWater", "samplingInterval": "100", "discardOldest": true, "queueSize": 10, "x": 320, "y": 600, "wires": [ [] ] }, { "id": "bc32ee4142fc26ab", "type": "OpcUa-Client2-Monitor", "z": "8914237e0d8e46c7", "g": "684238fb58a91415", "inputs": 0, "output": 2, "name": "BoilerTempWater", "endpoint": "9593045b235c321c", "subscription": "s2", "startImmediately": true, "nodeId": "/di:DeviceSet/ns1:CoffeeMachineA.kitchen:Parameters.kitchen:BoilerTempWater", "samplingInterval": "250", "discardOldest": true, "queueSize": 10, "x": 320, "y": 600, "wires": [ [] ] }, { "id": "f3ba9efdc12e30ce", "type": "OpcUa-Client2-Monitor", "z": "8914237e0d8e46c7", "g": "11f19caa7b9760b7", "inputs": 0, "output": 2, "name": "PumpStatus", "endpoint": "9593045b235c321c", "subscription": "s2", "startImmediately": true, "nodeId": "/2:DeviceSet/1:CoffeeMachineA.3:Parameters.4:PumpStatus", "samplingInterval": "100", "discardOldest": true, "queueSize": 10, "x": 1150, "y": 840, "wires": [ [ "b8ba5e020aa48e2a", "7619f93616149cdc" ] ] }, { "id": "24ab918428d73e5f", "type": "ui-chart", "z": "8914237e0d8e46c7", "g": "11f19caa7b9760b7", "group": "0eeeefa89ae3646a", "name": "Pump Status", "label": "Pump Status", "order": 18, "chartType": "line", "category": "topic", "categoryType": "msg", "xAxisLabel": "Pump Status", "xAxisProperty": "timestamp", "xAxisPropertyType": "property", "xAxisType": "time", "xAxisFormat": "", "xAxisFormatType": "HH:mm:ss", "xmin": "", "xmax": "", "yAxisLabel": "", "yAxisProperty": "payload", "yAxisPropertyType": "property", "ymin": "0", "ymax": "1.2", "bins": 10, "action": "append", "stackSeries": false, "pointShape": "false", "pointRadius": 4, "showLegend": true, "removeOlder": 1, "removeOlderUnit": "3600", "removeOlderPoints": "", "colors": [ "#0095ff", "#ff0000", "#ff7f0e", "#2ca02c", "#a347e1", "#d62728", "#ff9896", "#9467bd", "#c5b0d5" ], "textColor": [ "#666666" ], "textColorDefault": true, "gridColor": [ "#e5e5e5" ], "gridColorDefault": true, "width": "8", "height": "5", "className": "", "interpolation": "step", "x": 1590, "y": 840, "wires": [ [] ] }, { "id": "b8ba5e020aa48e2a", "type": "debug", "z": "8914237e0d8e46c7", "g": "11f19caa7b9760b7", "name": "debug 7", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1380, "y": 880, "wires": [] }, { "id": "3e9be0f18116b2c2", "type": "OpcUa-Client2-Monitor", "z": "8914237e0d8e46c7", "g": "b07d4a44ddb86adf", "inputs": 0, "output": 2, "name": "Heater Status", "endpoint": "9593045b235c321c", "subscription": "s2", "startImmediately": true, "nodeId": "/di:DeviceSet/ns1:CoffeeMachineA.kitchen:Parameters.sterfive:HeaterStatus", "samplingInterval": "250", "discardOldest": true, "queueSize": 10, "x": 290, "y": 780, "wires": [ [ "2b573431a25e870f", "bd7c7f49e974f208" ] ] }, { "id": "2b573431a25e870f", "type": "debug", "z": "8914237e0d8e46c7", "g": "b07d4a44ddb86adf", "name": "debug 10", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 520, "y": 760, "wires": [] }, { "id": "68e0c3653588a07d", "type": "ui-chart", "z": "8914237e0d8e46c7", "g": "b07d4a44ddb86adf", "group": "0eeeefa89ae3646a", "name": "Heater Status 2", "label": "Heater Status", "order": 17, "chartType": "line", "category": "topic", "categoryType": "msg", "xAxisLabel": "Heater Status", "xAxisProperty": "timestamp", "xAxisPropertyType": "property", "xAxisType": "time", "xAxisFormat": "", "xAxisFormatType": "HH:mm:ss", "xmin": "", "xmax": "", "yAxisLabel": "", "yAxisProperty": "value", "yAxisPropertyType": "property", "ymin": "0", "ymax": "1", "bins": 10, "action": "append", "stackSeries": false, "pointShape": "false", "pointRadius": "0", "showLegend": true, "removeOlder": "3", "removeOlderUnit": "60", "removeOlderPoints": "", "colors": [ "#0095ff", "#ff0000", "#ff7f0e", "#2ca02c", "#a347e1", "#d62728", "#ff9896", "#9467bd", "#c5b0d5" ], "textColor": [ "#666666" ], "textColorDefault": true, "gridColor": [ "#e5e5e5" ], "gridColorDefault": true, "width": "8", "height": "5", "className": "", "interpolation": "step", "x": 900, "y": 800, "wires": [ [] ] }, { "id": "bd7c7f49e974f208", "type": "function", "z": "8914237e0d8e46c7", "g": "b07d4a44ddb86adf", "name": "function 5", "func": "\nfunction addDate(t, n){\n return (new Date((new Date(t)).getTime() + n));\n}\n// If this is the first message, initialize context.payload.\ncontext.payload = {\n timestamp: addDate(msg.sourceTimestamp,0),\n value: msg.payload\n}\n\nconst interval = 500;\n\n// Create the timer only once.\nif (!context.timer) {\n context.timer = setInterval(function () {\n context.payload.timestamp = addDate(context.payload.timestamp,interval);\n node.send({ payload: context.payload });\n }, interval);\n}\n\n\n// Return null so nothing is sent immediately from the input\nreturn null;", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "\n", "finalize": "clearInterval(context.timerId);", "libs": [], "x": 520, "y": 800, "wires": [ [ "68e0c3653588a07d", "d3b1d8b5c05c2b22" ] ] }, { "id": "d3b1d8b5c05c2b22", "type": "debug", "z": "8914237e0d8e46c7", "g": "b07d4a44ddb86adf", "name": "debug 12", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 700, "y": 840, "wires": [] }, { "id": "07bde3d3f85f2a40", "type": "inject", "z": "8914237e0d8e46c7", "g": "b07d4a44ddb86adf", "name": "", "props": [ { "p": "serverTimestamp", "v": "", "vt": "date" }, { "p": "sourceTimestamp", "v": "", "vt": "date" }, { "p": "payload" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "1", "payloadType": "str", "x": 310, "y": 840, "wires": [ [ "bd7c7f49e974f208" ] ] }, { "id": "c369c3262a3b57fa", "type": "inject", "z": "8914237e0d8e46c7", "g": "b07d4a44ddb86adf", "name": "", "props": [ { "p": "serverTimestamp", "v": "", "vt": "date" }, { "p": "sourceTimestamp", "v": "", "vt": "date" }, { "p": "payload" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "0", "payloadType": "str", "x": 310, "y": 880, "wires": [ [ "bd7c7f49e974f208" ] ] }, { "id": "7619f93616149cdc", "type": "function", "z": "8914237e0d8e46c7", "g": "11f19caa7b9760b7", "name": "function 1", "func": "\nfunction addDate(t, n){\n return (new Date((new Date(t)).getTime() + n));\n}\n// If this is the first message, initialize context.payload.\ncontext.payload = {\n timestamp: addDate(msg.sourceTimestamp,0),\n value: msg.payload\n}\n\nconst interval = 500;\n\n// Create the timer only once.\nif (!context.timer) {\n context.timer = setInterval(function () {\n context.payload.timestamp = addDate(context.payload.timestamp,interval);\n node.send({ payload: context.payload });\n }, interval);\n}\n\n\n// Return null so nothing is sent immediately from the input\nreturn null;", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "\n", "finalize": "clearInterval(context.timerId);", "libs": [], "x": 1380, "y": 840, "wires": [ [ "24ab918428d73e5f" ] ] }, { "id": "f1f77b6afa4257f0", "type": "inject", "z": "8914237e0d8e46c7", "g": "b07d4a44ddb86adf", "name": "Clear ", "props": [ { "p": "payload" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "[]", "payloadType": "str", "x": 710, "y": 760, "wires": [ [ "68e0c3653588a07d" ] ] }, { "id": "c9717ac11b53672e", "type": "function", "z": "8914237e0d8e46c7", "g": "62d148a7e9f5c520", "name": "enum to string", "func": "switch(msg.payload) {\n case 0:\n msg.payload = \"Off\";\n break;\n case 1:\n msg.payload = \"Standby\";\n break;\n case 2:\n msg.payload = \"Error\";\n break;\n case 3:\n msg.payload = \"Cleaning\";\n break;\n case 4:\n msg.payload = \"Serving Coffee\";\n break;\n case 5:\n msg.payload = \"Under Maintenance\";\n break;\n default:\n msg.payload = msg.payload;\n break;\n\n}\n// msg.payload = msg.payload;\nreturn msg;\n\n/*\n\nexport enum EnumCoffeeMachineModeEx {\n Off = 0,\n Standby = 1,\n Error = 2,\n Cleaning = 3,\n\n // not in spec !!!\n ServingCoffee = 4,\n\n UnderMaintenance = 5, // like filling coffee\n\n}\n*/", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1360, "y": 740, "wires": [ [ "798535950531337a" ] ] }, { "id": "3a8c7eb7dc515e34", "type": "OpcUa-Client2-Monitor", "z": "8914237e0d8e46c7", "g": "62d148a7e9f5c520", "inputs": 0, "output": 2, "name": "CurrentState", "endpoint": "9593045b235c321c", "subscription": "s2", "startImmediately": true, "nodeId": "/2:DeviceSet/1:CoffeeMachineA.3:Parameters.3:CurrentState", "samplingInterval": "100", "discardOldest": true, "queueSize": 10, "x": 1150, "y": 740, "wires": [ [ "c9717ac11b53672e" ] ] }, { "id": "798535950531337a", "type": "ui-markdown", "z": "8914237e0d8e46c7", "g": "62d148a7e9f5c520", "group": "0eeeefa89ae3646a", "name": "", "order": 2, "width": 0, "height": 0, "content": "# Status: {{msg.payload}}", "className": "", "x": 1590, "y": 740, "wires": [ [] ] }, { "id": "1c3d6230a57c852c", "type": "OpcUa-Client2-Call", "z": "8914237e0d8e46c7", "g": "a872632f0795dffe", "inputs": 1, "output": 4, "name": "Start", "endpoint": "9593045b235c321c", "action": "read", "methodId": "/di:DeviceSet/ns1:CoffeeMachineA.di:MethodSet.sterfive:Start", "objectId": "/di:DeviceSet/ns1:CoffeeMachineA", "x": 1450, "y": 420, "wires": [ [], [] ] }, { "id": "c172f527ba188866", "type": "inject", "z": "8914237e0d8e46c7", "g": "a872632f0795dffe", "name": "", "props": [], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "x": 1230, "y": 420, "wires": [ [ "1c3d6230a57c852c" ] ] }, { "id": "ae3fe0588bcec600", "type": "ui-button", "z": "8914237e0d8e46c7", "g": "a872632f0795dffe", "group": "0eeeefa89ae3646a", "name": "Start", "label": "Start", "order": 3, "width": "12", "height": "1", "emulateClick": false, "tooltip": "", "color": "", "bgcolor": "", "className": "", "icon": "", "iconPosition": "left", "payload": "", "payloadType": "str", "topic": "topic", "topicType": "msg", "buttonColor": "", "textColor": "", "iconColor": "", "enableClick": true, "enablePointerdown": false, "pointerdownPayload": "", "pointerdownPayloadType": "str", "enablePointerup": false, "pointerupPayload": "", "pointerupPayloadType": "str", "x": 1230, "y": 460, "wires": [ [ "1c3d6230a57c852c" ] ] }, { "id": "83de8924a1f6f2a5", "type": "OpcUa-Client2-Call", "z": "8914237e0d8e46c7", "g": "a872632f0795dffe", "inputs": 1, "output": 4, "name": "Stop", "endpoint": "9593045b235c321c", "action": "read", "methodId": "/di:DeviceSet/ns1:CoffeeMachineA.di:MethodSet.sterfive:Stop", "objectId": "/di:DeviceSet/ns1:CoffeeMachineA", "x": 1440, "y": 520, "wires": [ [], [] ] }, { "id": "807487cd9637d0e1", "type": "inject", "z": "8914237e0d8e46c7", "g": "a872632f0795dffe", "name": "", "props": [], "repeat": "", "crontab": "", "o