Skip to content

Instantly share code, notes, and snippets.

@hj91
Created April 9, 2024 15:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hj91/aebb39fb2787afedd03d6407dfe460a2 to your computer and use it in GitHub Desktop.
Save hj91/aebb39fb2787afedd03d6407dfe460a2 to your computer and use it in GitHub Desktop.
A flow to visualize historic and live data obtained from MQTT broker and stored in InfluxDB. We will be using @flowfuse/node-red-contrib-dashboard and node-red-contrib-influxdb
[
{
"id": "dc1c7f4e5ddc86f8",
"type": "tab",
"label": "MING",
"disabled": false,
"info": "",
"env": []
},
{
"id": "1423665d39048eba",
"type": "mqtt in",
"z": "dc1c7f4e5ddc86f8",
"name": "",
"topic": "flowfuse/temp",
"qos": "2",
"datatype": "auto-detect",
"broker": "e8ea838e83035408",
"nl": false,
"rap": true,
"rh": 0,
"inputs": 0,
"x": 190,
"y": 160,
"wires": [
[
"7ddcaadd5c43f11d",
"c359b55bc77165c2"
]
]
},
{
"id": "993651c073e7659c",
"type": "mqtt in",
"z": "dc1c7f4e5ddc86f8",
"name": "",
"topic": "flowfuse/RH",
"qos": "2",
"datatype": "auto-detect",
"broker": "e8ea838e83035408",
"nl": false,
"rap": true,
"rh": 0,
"inputs": 0,
"x": 190,
"y": 220,
"wires": [
[
"01f4e507e7deaaea",
"33e5c2e4a61d01e3"
]
]
},
{
"id": "7ddcaadd5c43f11d",
"type": "change",
"z": "dc1c7f4e5ddc86f8",
"name": "Temp",
"rules": [
{
"t": "set",
"p": "topic",
"pt": "msg",
"to": "temp",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 350,
"y": 160,
"wires": [
[
"f39435df2b4db94f"
]
]
},
{
"id": "01f4e507e7deaaea",
"type": "change",
"z": "dc1c7f4e5ddc86f8",
"name": "RH",
"rules": [
{
"t": "set",
"p": "topic",
"pt": "msg",
"to": "RH",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 350,
"y": 220,
"wires": [
[
"f39435df2b4db94f"
]
]
},
{
"id": "f39435df2b4db94f",
"type": "join",
"z": "dc1c7f4e5ddc86f8",
"name": "",
"mode": "custom",
"build": "object",
"property": "payload",
"propertyType": "msg",
"key": "topic",
"joiner": "\\n",
"joinerType": "str",
"accumulate": false,
"timeout": "",
"count": "2",
"reduceRight": false,
"reduceExp": "",
"reduceInit": "",
"reduceInitType": "",
"reduceFixup": "",
"x": 550,
"y": 180,
"wires": [
[
"fa067011fa3f705f",
"c9d37220d787ac92",
"681b2e5009ec5e1e"
]
]
},
{
"id": "fa067011fa3f705f",
"type": "function",
"z": "dc1c7f4e5ddc86f8",
"name": "Send it to InfluxDB",
"func": "var temp = Number(msg.payload.temp);\nvar RH = Number(msg.payload.RH);\n\nmsg.measurement = \"room1\";\nmsg.payload = {Temperature:temp,RH:RH};\n\nreturn msg;",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 770,
"y": 180,
"wires": [
[
"0e86e1bd4bf8b9f6"
]
]
},
{
"id": "0e86e1bd4bf8b9f6",
"type": "influxdb out",
"z": "dc1c7f4e5ddc86f8",
"influxdb": "cb09abcd8b693ca8",
"name": "",
"measurement": "",
"precision": "",
"retentionPolicy": "",
"database": "database",
"precisionV18FluxV20": "ms",
"retentionPolicyV18Flux": "",
"org": "organisation",
"bucket": "bucket",
"x": 1080,
"y": 180,
"wires": []
},
{
"id": "c359b55bc77165c2",
"type": "ui-text",
"z": "dc1c7f4e5ddc86f8",
"group": "11df00492fb20acd",
"order": 0,
"width": 0,
"height": 0,
"name": "",
"label": "Temperature",
"format": "{{msg.payload}}",
"layout": "row-spread",
"style": true,
"font": "Verdana,Verdana,Geneva,sans-serif",
"fontSize": 16,
"color": "#717171",
"className": "",
"x": 530,
"y": 100,
"wires": []
},
{
"id": "33e5c2e4a61d01e3",
"type": "ui-text",
"z": "dc1c7f4e5ddc86f8",
"group": "11df00492fb20acd",
"order": 0,
"width": 0,
"height": 0,
"name": "",
"label": "RH",
"format": "{{msg.payload}}",
"layout": "row-spread",
"style": true,
"font": "Verdana,Verdana,Geneva,sans-serif",
"fontSize": 16,
"color": "#717171",
"className": "",
"x": 510,
"y": 280,
"wires": []
},
{
"id": "c9d37220d787ac92",
"type": "function",
"z": "dc1c7f4e5ddc86f8",
"name": "Temp",
"func": "var temp = Number(msg.payload.temp);\n\nmsg.payload = temp;\n\nreturn msg;",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 730,
"y": 120,
"wires": [
[
"432850955a867e1e",
"28d0b846fd2a48ab"
]
]
},
{
"id": "681b2e5009ec5e1e",
"type": "function",
"z": "dc1c7f4e5ddc86f8",
"name": "RH",
"func": "var RH = Number(msg.payload.RH);\nmsg.payload = RH;\n\nreturn msg;",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 730,
"y": 240,
"wires": [
[
"a41e65a351476137",
"80b1312f88e4f656"
]
]
},
{
"id": "432850955a867e1e",
"type": "ui-chart",
"z": "dc1c7f4e5ddc86f8",
"group": "aa70ec0abc058d78",
"name": "",
"label": "Live Temperature ",
"order": 9007199254740991,
"chartType": "line",
"category": "Temperature",
"categoryType": "str",
"xAxisProperty": "",
"xAxisPropertyType": "msg",
"xAxisType": "time",
"yAxisProperty": "",
"ymin": "0",
"ymax": "50",
"action": "append",
"pointShape": "line",
"pointRadius": 4,
"showLegend": true,
"removeOlder": 1,
"removeOlderUnit": "3600",
"removeOlderPoints": "",
"colors": [
"#1f77b4",
"#aec7e8",
"#ff7f0e",
"#2ca02c",
"#98df8a",
"#d62728",
"#ff9896",
"#9467bd",
"#c5b0d5"
],
"width": "6",
"height": "8",
"className": "",
"x": 950,
"y": 120,
"wires": [
[]
]
},
{
"id": "a41e65a351476137",
"type": "ui-chart",
"z": "dc1c7f4e5ddc86f8",
"group": "aa70ec0abc058d78",
"name": "",
"label": "Live RH",
"order": 9007199254740991,
"chartType": "line",
"category": "RH",
"categoryType": "str",
"xAxisProperty": "",
"xAxisPropertyType": "msg",
"xAxisType": "time",
"yAxisProperty": "",
"ymin": "0",
"ymax": "100",
"action": "append",
"pointShape": "line",
"pointRadius": 4,
"showLegend": true,
"removeOlder": 1,
"removeOlderUnit": "3600",
"removeOlderPoints": "",
"colors": [
"#1f77b4",
"#aec7e8",
"#ff7f0e",
"#2ca02c",
"#98df8a",
"#d62728",
"#ff9896",
"#9467bd",
"#c5b0d5"
],
"width": "6",
"height": "8",
"className": "",
"x": 940,
"y": 240,
"wires": [
[]
]
},
{
"id": "87ebfee665b784ee",
"type": "function",
"z": "dc1c7f4e5ddc86f8",
"name": "Min",
"func": "// Construct the query using the provided start and stop timestamps\nmsg.query = `SELECT min(Temperature) FROM room1`;\n\n// Pass the modified message object to the next node\nreturn msg;\n",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 450,
"y": 500,
"wires": [
[
"7d727f5a7723a73d"
]
]
},
{
"id": "7d727f5a7723a73d",
"type": "influxdb in",
"z": "dc1c7f4e5ddc86f8",
"influxdb": "cb09abcd8b693ca8",
"name": "Read Temp",
"query": "",
"rawOutput": false,
"precision": "",
"retentionPolicy": "",
"org": "organisation",
"x": 610,
"y": 540,
"wires": [
[
"fe9230e31884d82b"
]
]
},
{
"id": "1da5df166734acac",
"type": "switch",
"z": "dc1c7f4e5ddc86f8",
"name": "Temp",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "Min",
"vt": "str"
},
{
"t": "eq",
"v": "Max",
"vt": "str"
},
{
"t": "eq",
"v": "Total",
"vt": "str"
}
],
"checkall": "true",
"repair": false,
"outputs": 3,
"x": 310,
"y": 540,
"wires": [
[
"87ebfee665b784ee"
],
[
"1322af95dd29b8c3"
],
[
"717e1a07222ec348"
]
]
},
{
"id": "1322af95dd29b8c3",
"type": "function",
"z": "dc1c7f4e5ddc86f8",
"name": "Max",
"func": "// Construct the query using the provided start and stop timestamps\nmsg.query = `SELECT max(Temperature) FROM room1`;\n\n// Pass the modified message object to the next node\nreturn msg;\n",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 450,
"y": 540,
"wires": [
[
"7d727f5a7723a73d"
]
]
},
{
"id": "88e2e00b4e5f5fd6",
"type": "ui-dropdown",
"z": "dc1c7f4e5ddc86f8",
"group": "f02746ad7e1ab68c",
"name": "",
"label": "Select Option:",
"tooltip": "",
"order": 0,
"width": 0,
"height": 0,
"passthru": false,
"multiple": false,
"options": [
{
"label": "Min",
"value": "Min",
"type": "str"
},
{
"label": "Max",
"value": "Max",
"type": "str"
},
{
"label": "Total",
"value": "Total",
"type": "str"
}
],
"payload": "",
"topic": "topic",
"topicType": "msg",
"className": "",
"x": 160,
"y": 540,
"wires": [
[
"1da5df166734acac"
]
]
},
{
"id": "57a7757bf943bce5",
"type": "ui-text",
"z": "dc1c7f4e5ddc86f8",
"group": "f02746ad7e1ab68c",
"order": 0,
"width": 0,
"height": 0,
"name": "",
"label": "Temp Stats",
"format": "{{msg.payload}}",
"layout": "row-spread",
"style": true,
"font": "Verdana,Verdana,Geneva,sans-serif",
"fontSize": 16,
"color": "#717171",
"className": "",
"x": 1290,
"y": 540,
"wires": []
},
{
"id": "cac36785f12f3bf5",
"type": "function",
"z": "dc1c7f4e5ddc86f8",
"name": "Min",
"func": "var min = msg.payload[0].min\nmsg.payload = \"Minimum is \" + min;\nreturn (msg)",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 1090,
"y": 500,
"wires": [
[
"57a7757bf943bce5"
]
]
},
{
"id": "fc6330b5fcc33acc",
"type": "function",
"z": "dc1c7f4e5ddc86f8",
"name": "Max",
"func": "var avg = msg.payload[0].max;\nmsg.payload = \"Max is \" + avg;\nreturn msg;",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 1090,
"y": 540,
"wires": [
[
"57a7757bf943bce5"
]
]
},
{
"id": "6453914fa7bdd751",
"type": "switch",
"z": "dc1c7f4e5ddc86f8",
"name": "Temp",
"property": "payload[0]",
"propertyType": "msg",
"rules": [
{
"t": "hask",
"v": "min",
"vt": "str"
},
{
"t": "hask",
"v": "max",
"vt": "str"
},
{
"t": "hask",
"v": "count",
"vt": "str"
}
],
"checkall": "true",
"repair": false,
"outputs": 3,
"x": 950,
"y": 540,
"wires": [
[
"cac36785f12f3bf5"
],
[
"fc6330b5fcc33acc"
],
[
"d29294d236bef25c"
]
]
},
{
"id": "717e1a07222ec348",
"type": "function",
"z": "dc1c7f4e5ddc86f8",
"name": "Count",
"func": "// Construct the query using the provided start and stop timestamps\nmsg.query = `SELECT count(Temperature) FROM room1`;\n\n// Pass the modified message object to the next node\nreturn msg;\n",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 450,
"y": 580,
"wires": [
[
"7d727f5a7723a73d"
]
]
},
{
"id": "d29294d236bef25c",
"type": "function",
"z": "dc1c7f4e5ddc86f8",
"name": "Count",
"func": "var count = msg.payload[0].count;\nmsg.payload = \"Total Record is \" + count;\nreturn msg;",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 1090,
"y": 580,
"wires": [
[
"57a7757bf943bce5"
]
]
},
{
"id": "e7465ddb4fd72e6a",
"type": "function",
"z": "dc1c7f4e5ddc86f8",
"name": "Min",
"func": "// Construct the query using the provided start and stop timestamps\nmsg.query = `SELECT min(RH) FROM room1`;\n\n// Pass the modified message object to the next node\nreturn msg;\n",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 450,
"y": 620,
"wires": [
[
"db0873d1bbef089a"
]
]
},
{
"id": "db0873d1bbef089a",
"type": "influxdb in",
"z": "dc1c7f4e5ddc86f8",
"influxdb": "cb09abcd8b693ca8",
"name": "Read RH",
"query": "",
"rawOutput": false,
"precision": "",
"retentionPolicy": "",
"org": "organisation",
"x": 600,
"y": 660,
"wires": [
[
"f14e43cc318fa92b"
]
]
},
{
"id": "a27e50703cb15e38",
"type": "switch",
"z": "dc1c7f4e5ddc86f8",
"name": "RH",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "Min",
"vt": "str"
},
{
"t": "eq",
"v": "Max",
"vt": "str"
},
{
"t": "eq",
"v": "Total",
"vt": "str"
}
],
"checkall": "true",
"repair": false,
"outputs": 3,
"x": 310,
"y": 660,
"wires": [
[
"e7465ddb4fd72e6a"
],
[
"0e8acb8b65e368f6"
],
[
"7402a7eec1245643"
]
]
},
{
"id": "0e8acb8b65e368f6",
"type": "function",
"z": "dc1c7f4e5ddc86f8",
"name": "Max",
"func": "// Construct the query using the provided start and stop timestamps\nmsg.query = `SELECT max(RH) FROM room1`;\n\n// Pass the modified message object to the next node\nreturn msg;\n",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 450,
"y": 660,
"wires": [
[
"db0873d1bbef089a"
]
]
},
{
"id": "a36dafb79f2fce75",
"type": "ui-dropdown",
"z": "dc1c7f4e5ddc86f8",
"group": "f02746ad7e1ab68c",
"name": "",
"label": "Select Option:",
"tooltip": "",
"order": 0,
"width": 0,
"height": 0,
"passthru": false,
"multiple": false,
"options": [
{
"label": "Min",
"value": "Min",
"type": "str"
},
{
"label": "Max",
"value": "Max",
"type": "str"
},
{
"label": "Total",
"value": "Total",
"type": "str"
}
],
"payload": "",
"topic": "topic",
"topicType": "msg",
"className": "",
"x": 160,
"y": 660,
"wires": [
[
"a27e50703cb15e38"
]
]
},
{
"id": "4800381c4950d245",
"type": "ui-text",
"z": "dc1c7f4e5ddc86f8",
"group": "f02746ad7e1ab68c",
"order": 0,
"width": 0,
"height": 0,
"name": "",
"label": "RH Stats",
"format": "{{msg.payload}}",
"layout": "row-spread",
"style": true,
"font": "Verdana,Verdana,Geneva,sans-serif",
"fontSize": 16,
"color": "#717171",
"className": "",
"x": 1280,
"y": 660,
"wires": []
},
{
"id": "4af1d2b0abf0009f",
"type": "function",
"z": "dc1c7f4e5ddc86f8",
"name": "Min",
"func": "var min = msg.payload[0].min\nmsg.payload = \"Minimum is \" + min;\nreturn (msg)",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 1090,
"y": 620,
"wires": [
[
"4800381c4950d245"
]
]
},
{
"id": "cfc4f16f835d3724",
"type": "function",
"z": "dc1c7f4e5ddc86f8",
"name": "Max",
"func": "var avg = msg.payload[0].max;\nmsg.payload = \"Max is \" + avg;\nreturn msg;",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 1090,
"y": 660,
"wires": [
[
"4800381c4950d245"
]
]
},
{
"id": "49ac1cdfe4289eac",
"type": "switch",
"z": "dc1c7f4e5ddc86f8",
"name": "RH",
"property": "payload[0]",
"propertyType": "msg",
"rules": [
{
"t": "hask",
"v": "min",
"vt": "str"
},
{
"t": "hask",
"v": "max",
"vt": "str"
},
{
"t": "hask",
"v": "count",
"vt": "str"
}
],
"checkall": "true",
"repair": false,
"outputs": 3,
"x": 950,
"y": 660,
"wires": [
[
"4af1d2b0abf0009f"
],
[
"cfc4f16f835d3724"
],
[
"57b2d15bae6a4d42"
]
]
},
{
"id": "7402a7eec1245643",
"type": "function",
"z": "dc1c7f4e5ddc86f8",
"name": "Count",
"func": "// Construct the query using the provided start and stop timestamps\nmsg.query = `SELECT count(RH) FROM room1`;\n\n// Pass the modified message object to the next node\nreturn msg;\n",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 450,
"y": 700,
"wires": [
[
"db0873d1bbef089a"
]
]
},
{
"id": "57b2d15bae6a4d42",
"type": "function",
"z": "dc1c7f4e5ddc86f8",
"name": "Count",
"func": "var count = msg.payload[0].count;\nmsg.payload = \"Total Record is \" + count;\nreturn msg;",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 1090,
"y": 700,
"wires": [
[
"4800381c4950d245"
]
]
},
{
"id": "fb1cbe8ec45b5de7",
"type": "comment",
"z": "dc1c7f4e5ddc86f8",
"name": "Write Operation",
"info": "",
"x": 100,
"y": 80,
"wires": []
},
{
"id": "931c16333d3efcad",
"type": "comment",
"z": "dc1c7f4e5ddc86f8",
"name": "Read Operation",
"info": "",
"x": 180,
"y": 340,
"wires": []
},
{
"id": "f200e4be2158481e",
"type": "comment",
"z": "dc1c7f4e5ddc86f8",
"name": "Read Operation",
"info": "",
"x": 180,
"y": 480,
"wires": []
},
{
"id": "80b1312f88e4f656",
"type": "ui-gauge",
"z": "dc1c7f4e5ddc86f8",
"name": "Live RH",
"group": "f02746ad7e1ab68c",
"order": 0,
"width": "0",
"height": "0",
"gtype": "gauge-34",
"gstyle": "rounded",
"title": "Live RH",
"units": "%",
"icon": "",
"prefix": "",
"suffix": "",
"segments": [
{
"from": "0",
"color": "#5cd65c"
},
{
"from": "40",
"color": "#ffc800"
},
{
"from": "70",
"color": "#ea5353"
}
],
"min": 0,
"max": "100",
"sizeThickness": 16,
"sizeGap": 4,
"sizeKeyThickness": 8,
"styleRounded": true,
"styleGlow": false,
"className": "",
"x": 940,
"y": 280,
"wires": []
},
{
"id": "28d0b846fd2a48ab",
"type": "ui-gauge",
"z": "dc1c7f4e5ddc86f8",
"name": "Live Temperature",
"group": "f02746ad7e1ab68c",
"order": 0,
"width": "0",
"height": "0",
"gtype": "gauge-34",
"gstyle": "rounded",
"title": "Temperature",
"units": "Degrees C",
"icon": "",
"prefix": "",
"suffix": "",
"segments": [
{
"from": "0",
"color": "#5cd65c"
},
{
"from": "30",
"color": "#ffc800"
},
{
"from": "40",
"color": "#ea5353"
}
],
"min": 0,
"max": "50",
"sizeThickness": 16,
"sizeGap": 4,
"sizeKeyThickness": 8,
"styleRounded": true,
"styleGlow": false,
"className": "",
"x": 950,
"y": 80,
"wires": []
},
{
"id": "f22ff292ec2d0964",
"type": "ui-form",
"z": "dc1c7f4e5ddc86f8",
"name": "Start Time",
"group": "11df00492fb20acd",
"label": "Select Date and Time",
"order": 0,
"width": 0,
"height": 0,
"options": [
{
"label": "Start",
"key": "Start Date",
"type": "date",
"required": true,
"rows": null
},
{
"label": "Start Time",
"key": "Start Time",
"type": "time",
"required": true,
"rows": null
},
{
"label": "Stop Date",
"key": "Stop Date",
"type": "date",
"required": true,
"rows": null
},
{
"label": "Stop Time",
"key": "Stop Time",
"type": "time",
"required": true,
"rows": null
}
],
"formValue": {
"Start Date": "",
"Start Time": "",
"Stop Date": "",
"Stop Time": ""
},
"payload": "",
"submit": "submit",
"cancel": "clear",
"resetOnSubmit": false,
"topic": "topic",
"topicType": "msg",
"splitLayout": false,
"className": "",
"x": 160,
"y": 420,
"wires": [
[
"05dfd0f5d8b97fba"
]
]
},
{
"id": "05dfd0f5d8b97fba",
"type": "function",
"z": "dc1c7f4e5ddc86f8",
"name": "start date and end date",
"func": "var startDate = msg.payload[\"Start Date\"];\nvar startTime = msg.payload[\"Start Time\"];\nvar stopDate = msg.payload[\"Stop Date\"];\nvar stopTime = msg.payload[\"Stop Time\"];\n\n\n\nvar startTimestamp = `${startDate}T${startTime}:00+05:30`; // +05:30 is the offset for IST\nvar stopTimestamp = `${stopDate}T${stopTime}:00+05:30`; // +05:30 is the offset for IST\n\n// Construct the query using the provided start and stop timestamps\nmsg.query = `SELECT * FROM room1 WHERE time >= '${startTimestamp}' AND time <= '${stopTimestamp}'`;\n\nreturn msg;\n",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 410,
"y": 420,
"wires": [
[
"a1d3dda63ad3bd6f"
]
]
},
{
"id": "a1d3dda63ad3bd6f",
"type": "influxdb in",
"z": "dc1c7f4e5ddc86f8",
"influxdb": "cb09abcd8b693ca8",
"name": "Read",
"query": "",
"rawOutput": false,
"precision": "",
"retentionPolicy": "",
"org": "organisation",
"x": 610,
"y": 420,
"wires": [
[
"ad4f278b680749b2"
]
]
},
{
"id": "024b2830c4183fd1",
"type": "function",
"z": "dc1c7f4e5ddc86f8",
"name": "Table",
"func": "var temp=[];\nvar a = msg.payload;\n\na.forEach(function (value,index) {\ntemp.push(value)\n});\n\nmsg.payload=temp\n\nreturn msg;",
"outputs": 1,
"timeout": "",
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 1650,
"y": 780,
"wires": [
[]
]
},
{
"id": "5bb2164a578330bd",
"type": "ui-table",
"z": "dc1c7f4e5ddc86f8",
"group": "11df00492fb20acd",
"name": "Historic Data",
"label": "text",
"order": 0,
"width": 0,
"height": 0,
"maxrows": 0,
"autocols": true,
"columns": [],
"x": 1050,
"y": 420,
"wires": []
},
{
"id": "ad4f278b680749b2",
"type": "copy-array",
"z": "dc1c7f4e5ddc86f8",
"name": "Table",
"x": 790,
"y": 420,
"wires": [
[
"5bb2164a578330bd"
]
]
},
{
"id": "dd00c6e47e1480ad",
"type": "ui-button",
"z": "dc1c7f4e5ddc86f8",
"group": "aa70ec0abc058d78",
"name": "",
"label": "Clear Temp",
"order": 0,
"width": 0,
"height": 0,
"passthru": false,
"tooltip": "",
"color": "",
"bgcolor": "",
"className": "",
"icon": "",
"payload": "[]",
"payloadType": "json",
"topic": "topic",
"topicType": "msg",
"x": 730,
"y": 60,
"wires": [
[
"432850955a867e1e"
]
]
},
{
"id": "7e6d8eb54dc0d8aa",
"type": "ui-button",
"z": "dc1c7f4e5ddc86f8",
"group": "aa70ec0abc058d78",
"name": "",
"label": "Clear RH",
"order": 0,
"width": 0,
"height": 0,
"passthru": false,
"tooltip": "",
"color": "",
"bgcolor": "",
"className": "",
"icon": "",
"payload": "[]",
"payloadType": "json",
"topic": "topic",
"topicType": "msg",
"x": 740,
"y": 300,
"wires": [
[
"a41e65a351476137"
]
]
},
{
"id": "fe9230e31884d82b",
"type": "copy-array",
"z": "dc1c7f4e5ddc86f8",
"name": "Temp Data",
"x": 810,
"y": 540,
"wires": [
[
"6453914fa7bdd751"
]
]
},
{
"id": "f14e43cc318fa92b",
"type": "copy-array",
"z": "dc1c7f4e5ddc86f8",
"name": "RH Data",
"x": 800,
"y": 660,
"wires": [
[
"49ac1cdfe4289eac"
]
]
},
{
"id": "e8ea838e83035408",
"type": "mqtt-broker",
"name": "",
"broker": "192.168.1.39",
"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": "cb09abcd8b693ca8",
"type": "influxdb",
"hostname": "127.0.0.1",
"port": "8086",
"protocol": "http",
"database": "environment",
"name": "",
"usetls": false,
"tls": "cff98b62.009678",
"influxdbVersion": "1.x",
"url": "http://localhost:8086",
"timeout": "10",
"rejectUnauthorized": true
},
{
"id": "11df00492fb20acd",
"type": "ui-group",
"name": "Room 1",
"page": "6a43b6805a66d2b8",
"width": "6",
"height": "1",
"order": -1,
"showTitle": true,
"className": "",
"visible": "true",
"disabled": "false"
},
{
"id": "aa70ec0abc058d78",
"type": "ui-group",
"name": "Live Data",
"page": "6a43b6805a66d2b8",
"width": "6",
"height": "1",
"order": -1,
"showTitle": true,
"className": "",
"visible": "true",
"disabled": "false"
},
{
"id": "f02746ad7e1ab68c",
"type": "ui-group",
"name": "Stat Data",
"page": "6a43b6805a66d2b8",
"width": "6",
"height": "1",
"order": -1,
"showTitle": true,
"className": "",
"visible": "true",
"disabled": "false"
},
{
"id": "cff98b62.009678",
"type": "tls-config",
"name": "",
"cert": "",
"key": "",
"ca": "",
"certname": "",
"keyname": "",
"caname": "",
"servername": "",
"verifyservercert": false
},
{
"id": "6a43b6805a66d2b8",
"type": "ui-page",
"name": "Environment Data",
"ui": "20ae73d735a60fbc",
"path": "/page2",
"icon": "home",
"layout": "flex",
"theme": "074b315414230834",
"order": -1,
"className": "",
"visible": "true",
"disabled": "false"
},
{
"id": "20ae73d735a60fbc",
"type": "ui-base",
"name": "UI Name",
"path": "/dashboard",
"showPathInSidebar": false
},
{
"id": "074b315414230834",
"type": "ui-theme",
"name": "Theme Name",
"colors": {
"surface": "#ffffff",
"primary": "#0094ce",
"bgPage": "#eeeeee",
"groupBg": "#ffffff",
"groupOutline": "#cccccc"
},
"sizes": {
"pagePadding": "12px",
"groupGap": "12px",
"groupBorderRadius": "4px",
"widgetGap": "12px"
}
}
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment