@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
JSON
[
{
"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