[
    {
        "id": "e4e30c42d69f0e9c",
        "type": "tab",
        "label": "File Browser",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "4fa73dd9.83cca4",
        "type": "comment",
        "z": "e4e30c42d69f0e9c",
        "name": "File Browser",
        "info": "1) Update the default folder in the Init node\n2) Update the default folder in the Reset node as well\n3) You can duplicate the Reset nodes and use them as saved shortcuts\n4) Check the Convert Timestamps function node if you want to see your dates in a different format. I just used the Javascript toISOString format.\n5) The Graph button can read any CSV file which have any number of values, but the first column always contains a timestamp column with javascript timestamp of the data point.",
        "x": 90,
        "y": 40,
        "wires": []
    },
    {
        "id": "993d7272.843ae",
        "type": "fs-file-lister",
        "z": "e4e30c42d69f0e9c",
        "name": "Files",
        "start": "C:\\Users\\177008EIE\\Desktop",
        "pattern": "*.*",
        "folders": "*",
        "hidden": false,
        "lstype": "files",
        "path": true,
        "single": true,
        "depth": 0,
        "stat": true,
        "showWarnings": false,
        "x": 490,
        "y": 140,
        "wires": [
            [
                "dd88bd23.37cde"
            ]
        ]
    },
    {
        "id": "d185a45.2327a58",
        "type": "inject",
        "z": "e4e30c42d69f0e9c",
        "name": "Init",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": true,
        "onceDelay": 0.1,
        "topic": "change",
        "payload": "D:\\Node_red\\",
        "payloadType": "str",
        "x": 90,
        "y": 100,
        "wires": [
            [
                "3d4e5e51.bdf952"
            ]
        ]
    },
    {
        "id": "a715f7a4.a398a8",
        "type": "ui_button",
        "z": "e4e30c42d69f0e9c",
        "name": "",
        "group": "160e81fb.f1c86e",
        "order": 1,
        "width": "2",
        "height": "1",
        "passthru": false,
        "label": "Refresh",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "refresh",
        "payload": "",
        "payloadType": "str",
        "topic": "refresh",
        "topicType": "str",
        "x": 80,
        "y": 140,
        "wires": [
            [
                "3d4e5e51.bdf952"
            ]
        ]
    },
    {
        "id": "eb17c7ee.e61988",
        "type": "ui_dropdown",
        "z": "e4e30c42d69f0e9c",
        "name": "File Selector",
        "label": "",
        "tooltip": "",
        "place": "Select a file",
        "group": "160e81fb.f1c86e",
        "order": 9,
        "width": "5",
        "height": "1",
        "passthru": false,
        "multiple": false,
        "options": [
            {
                "label": "",
                "value": "",
                "type": "str"
            }
        ],
        "payload": "",
        "topic": "",
        "topicType": "str",
        "className": "",
        "x": 890,
        "y": 140,
        "wires": [
            [
                "be4830df.5775d"
            ]
        ]
    },
    {
        "id": "dd88bd23.37cde",
        "type": "function",
        "z": "e4e30c42d69f0e9c",
        "name": "Format data",
        "func": "// format the data for the dropdown\nmsg.options = [];\nfor (var i=0; i<msg.payload.length; i++) {\n    // This is a file\n    obj = {};\n    obj [msg.payload[i].name.replace(/^.*(\\\\|\\/|\\:)/, '')]=msg.payload[i].name;\n    msg.options.push(obj);\n}\nmsg.payload={};\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 690,
        "y": 140,
        "wires": [
            [
                "eb17c7ee.e61988"
            ]
        ]
    },
    {
        "id": "7b7e0d58.05e244",
        "type": "ui_button",
        "z": "e4e30c42d69f0e9c",
        "name": "",
        "group": "160e81fb.f1c86e",
        "order": 10,
        "width": "2",
        "height": "1",
        "passthru": false,
        "label": "Delete",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "icon": "delete",
        "payload": "",
        "payloadType": "str",
        "topic": "",
        "x": 110,
        "y": 300,
        "wires": [
            [
                "8da8147a.999af8"
            ]
        ]
    },
    {
        "id": "7d490dd1.8458b4",
        "type": "function",
        "z": "e4e30c42d69f0e9c",
        "name": "Get filename",
        "func": "// Get the filename from the flow context\nlet filename = flow.get(\"fileselected\");\n\n// check, if the filename is undefined that means it does not exist yet, nothing is selected yet\n// return: do not output anything\nif (filename===undefined) {\n    return;\n}\n\n// return the filename to the file-in node to delete\nmsg.filename = filename;\n\nif (msg.filename.replace(/^.*(\\\\|\\/|\\:)/, '')[0]!==\".\") {\n    // Only do this if this is a file, we don't delete folders\n    // and delete the context/selection as we are deleting the file as well\n    flow.set(\"fileselected\");\n    return msg;\n}",
        "outputs": 1,
        "noerr": 0,
        "x": 310,
        "y": 360,
        "wires": [
            [
                "372ee262.fc94de"
            ]
        ]
    },
    {
        "id": "372ee262.fc94de",
        "type": "file",
        "z": "e4e30c42d69f0e9c",
        "name": "Delete file",
        "filename": "",
        "appendNewline": true,
        "createDir": false,
        "overwriteFile": "delete",
        "encoding": "none",
        "x": 520,
        "y": 360,
        "wires": [
            [
                "993d7272.843ae",
                "5219875b.c070d8"
            ]
        ]
    },
    {
        "id": "554f0095.ac1b2",
        "type": "ui_toast",
        "z": "e4e30c42d69f0e9c",
        "position": "dialog",
        "displayTime": "3",
        "highlight": "",
        "sendall": false,
        "outputs": 1,
        "ok": "Yes",
        "cancel": "No",
        "raw": false,
        "className": "",
        "topic": "",
        "name": "Confirmation",
        "x": 490,
        "y": 300,
        "wires": [
            [
                "24df84fe.ebf45c"
            ]
        ]
    },
    {
        "id": "8da8147a.999af8",
        "type": "change",
        "z": "e4e30c42d69f0e9c",
        "name": "Set message",
        "rules": [
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "Delete confirmation",
                "tot": "str"
            },
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "Are you sure you want to delete this file?",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 290,
        "y": 300,
        "wires": [
            [
                "554f0095.ac1b2"
            ]
        ]
    },
    {
        "id": "24df84fe.ebf45c",
        "type": "switch",
        "z": "e4e30c42d69f0e9c",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "Yes",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 690,
        "y": 300,
        "wires": [
            [
                "7d490dd1.8458b4"
            ]
        ]
    },
    {
        "id": "3d4e5e51.bdf952",
        "type": "function",
        "z": "e4e30c42d69f0e9c",
        "name": "Folder handling",
        "func": "let folder = context.get(\"folder\");\nif (folder===undefined) {\n    folder=\"/\";\n    context.set(\"folder\", folder);\n}\n\nlet hidden = context.get(\"hidden\");\nif (hidden===undefined) {\n    hidden=false;\n    context.set(\"hidden\", hidden);\n}\n\nif (msg.topic===\"up\") {\n    var the_arr = folder.split('/');\n    the_arr.pop();\n    folder=the_arr.join('/'); \n    context.set(\"folder\", folder);\n}\nif (msg.topic===\"change\") {\n    folder=msg.payload;    \n    context.set(\"folder\", folder);\n}\nif (msg.topic===\"hidden\") {\n    hidden=msg.payload;    \n    context.set(\"hidden\", hidden);\n}\n\nmsg.payload = {\"start\":folder, \"hidden\": hidden};\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 280,
        "y": 200,
        "wires": [
            [
                "993d7272.843ae",
                "399ac341.7d43bc",
                "5219875b.c070d8"
            ]
        ]
    },
    {
        "id": "399ac341.7d43bc",
        "type": "ui_text",
        "z": "e4e30c42d69f0e9c",
        "group": "160e81fb.f1c86e",
        "order": 4,
        "width": "9",
        "height": "1",
        "name": "",
        "label": "Folder:",
        "format": "{{msg.payload.start}}",
        "layout": "row-left",
        "className": "",
        "x": 480,
        "y": 80,
        "wires": []
    },
    {
        "id": "b40ea1d8.c700a",
        "type": "ui_button",
        "z": "e4e30c42d69f0e9c",
        "name": "",
        "group": "160e81fb.f1c86e",
        "order": 3,
        "width": "2",
        "height": "1",
        "passthru": false,
        "label": "Up",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "arrow_upwards",
        "payload": "",
        "payloadType": "str",
        "topic": "up",
        "topicType": "str",
        "x": 90,
        "y": 220,
        "wires": [
            [
                "3d4e5e51.bdf952"
            ]
        ]
    },
    {
        "id": "80940e39.5035b",
        "type": "ui_button",
        "z": "e4e30c42d69f0e9c",
        "name": "",
        "group": "160e81fb.f1c86e",
        "order": 8,
        "width": "2",
        "height": "1",
        "passthru": false,
        "label": "Open",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "folder_open",
        "payload": "",
        "payloadType": "str",
        "topic": "",
        "topicType": "str",
        "x": 110,
        "y": 420,
        "wires": [
            [
                "8c1dfaac.979588"
            ]
        ]
    },
    {
        "id": "8c1dfaac.979588",
        "type": "function",
        "z": "e4e30c42d69f0e9c",
        "name": "Change folder",
        "func": "// Get the filename from the flow context\nlet folderselected = flow.get(\"folderselected\");\n\n// check, if the filename is undefined that means it does not exist yet, nothing is selected yet\n// return: do not output anything\nif (folderselected===undefined) {\n    return;\n}\n\nmsg.topic = \"change\";\nmsg.payload = folderselected;\n\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 320,
        "y": 420,
        "wires": [
            [
                "3d4e5e51.bdf952"
            ]
        ]
    },
    {
        "id": "58414ec4.c716e",
        "type": "ui_button",
        "z": "e4e30c42d69f0e9c",
        "name": "",
        "group": "160e81fb.f1c86e",
        "order": 2,
        "width": "2",
        "height": "1",
        "passthru": false,
        "label": "Reset",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "autorenew",
        "payload": "D:\\Node_red\\",
        "payloadType": "str",
        "topic": "change",
        "topicType": "str",
        "x": 90,
        "y": 180,
        "wires": [
            [
                "3d4e5e51.bdf952"
            ]
        ]
    },
    {
        "id": "5219875b.c070d8",
        "type": "fs-file-lister",
        "z": "e4e30c42d69f0e9c",
        "name": "Folders",
        "start": "C:\\Users\\177008EIE\\Desktop",
        "pattern": "*.*",
        "folders": "*",
        "hidden": false,
        "lstype": "directories",
        "path": true,
        "single": true,
        "depth": 0,
        "stat": true,
        "showWarnings": false,
        "x": 500,
        "y": 240,
        "wires": [
            [
                "ebc234be.d53fe8"
            ]
        ]
    },
    {
        "id": "37485c24.212054",
        "type": "ui_dropdown",
        "z": "e4e30c42d69f0e9c",
        "name": "Folder Selector",
        "label": "",
        "tooltip": "",
        "place": "Select a folder",
        "group": "160e81fb.f1c86e",
        "order": 7,
        "width": "5",
        "height": "1",
        "passthru": false,
        "options": [
            {
                "label": "",
                "value": "",
                "type": "str"
            }
        ],
        "payload": "",
        "topic": "",
        "x": 900,
        "y": 240,
        "wires": [
            [
                "2875c79f.531558"
            ]
        ]
    },
    {
        "id": "ebc234be.d53fe8",
        "type": "function",
        "z": "e4e30c42d69f0e9c",
        "name": "Format data",
        "func": "// format the data for the dropdown\nmsg.options = [];\nfor (var i=0; i<msg.payload.length; i++) {\n    // This is a foler\n    obj = {};\n    obj [\"[\"+msg.payload[i].name.replace(/^.*(\\\\|\\/|\\:)/, '')+\"]\"]=msg.payload[i].name;\n    msg.options.push(obj);\n}\nmsg.payload={};\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 690,
        "y": 240,
        "wires": [
            [
                "37485c24.212054"
            ]
        ]
    },
    {
        "id": "be4830df.5775d",
        "type": "change",
        "z": "e4e30c42d69f0e9c",
        "name": "Save selection",
        "rules": [
            {
                "t": "set",
                "p": "fileselected",
                "pt": "flow",
                "to": "payload",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1100,
        "y": 140,
        "wires": [
            []
        ]
    },
    {
        "id": "2875c79f.531558",
        "type": "change",
        "z": "e4e30c42d69f0e9c",
        "name": "Save selection",
        "rules": [
            {
                "t": "set",
                "p": "folderselected",
                "pt": "flow",
                "to": "payload",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1100,
        "y": 240,
        "wires": [
            []
        ]
    },
    {
        "id": "928e60a7.994be",
        "type": "ui_switch",
        "z": "e4e30c42d69f0e9c",
        "name": "",
        "label": "Hidden",
        "tooltip": "Show hidden files or not",
        "group": "160e81fb.f1c86e",
        "order": 5,
        "width": "2",
        "height": "1",
        "passthru": false,
        "decouple": "false",
        "topic": "hidden",
        "style": "",
        "onvalue": "true",
        "onvalueType": "bool",
        "onicon": "check_box",
        "oncolor": "#000000",
        "offvalue": "false",
        "offvalueType": "bool",
        "officon": "check_box_outline_blank",
        "offcolor": "#000000",
        "x": 80,
        "y": 260,
        "wires": [
            [
                "3d4e5e51.bdf952"
            ]
        ]
    },
    {
        "id": "bdb8660cab2fb6ee",
        "type": "ui_button",
        "z": "e4e30c42d69f0e9c",
        "name": "",
        "group": "160e81fb.f1c86e",
        "order": 11,
        "width": "2",
        "height": "1",
        "passthru": false,
        "label": "Graph",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "show_chart",
        "payload": "",
        "payloadType": "str",
        "topic": "",
        "topicType": "str",
        "x": 90,
        "y": 540,
        "wires": [
            [
                "4af56c96d2c84bd8"
            ]
        ]
    },
    {
        "id": "4af56c96d2c84bd8",
        "type": "function",
        "z": "e4e30c42d69f0e9c",
        "name": "Get filename",
        "func": "// Get the filename from the flow context\nlet filename = flow.get(\"fileselected\");\n\n// check, if the filename is undefined that means it does not exist yet, nothing is selected yet\n// return: do not output anything\nif (filename===undefined) {\n    return;\n}\n\n// return the filename to the file-in node to delete\nmsg.filename = filename;\n\nif (msg.filename.replace(/^.*(\\\\|\\/|\\:)/, '')[0]!==\".\") {\n    // Only do this if this is a file, we don't delete folders\n    return msg;\n}",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 258,
        "y": 540,
        "wires": [
            [
                "24eacfda49cb6762"
            ]
        ]
    },
    {
        "id": "24eacfda49cb6762",
        "type": "file in",
        "z": "e4e30c42d69f0e9c",
        "name": "",
        "filename": "",
        "format": "utf8",
        "chunk": false,
        "sendError": false,
        "encoding": "none",
        "allProps": false,
        "x": 438,
        "y": 540,
        "wires": [
            [
                "8726e1bb706a2891"
            ]
        ]
    },
    {
        "id": "8726e1bb706a2891",
        "type": "csv",
        "z": "e4e30c42d69f0e9c",
        "name": "",
        "sep": ",",
        "hdrin": false,
        "hdrout": "none",
        "multi": "mult",
        "ret": "\\n",
        "temp": "",
        "skip": "0",
        "strings": true,
        "include_empty_strings": false,
        "include_null_values": false,
        "x": 588,
        "y": 540,
        "wires": [
            [
                "3293d2ddeabf37ba"
            ]
        ]
    },
    {
        "id": "135d930d7215ffff",
        "type": "debug",
        "z": "e4e30c42d69f0e9c",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "x": 1170,
        "y": 340,
        "wires": []
    },
    {
        "id": "fc1bde06c37f5f44",
        "type": "debug",
        "z": "e4e30c42d69f0e9c",
        "name": "",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "x": 670,
        "y": 400,
        "wires": []
    },
    {
        "id": "3293d2ddeabf37ba",
        "type": "function",
        "z": "e4e30c42d69f0e9c",
        "name": "Format data for chart",
        "func": "var chart = [{\n    \"series\":[],\n    \"data\":[msg.payload],\n    \"labels\":[\"\"]\n}];\n\n\n/*\nvar pressure = [];\nvar out2 = [];\n\nfor (var i=0; i<msg.payload.length; i++) {\n    pressure.push({\"x\":msg.payload[i].timestamp, \"y\":msg.payload[i].pressure});\n    out2.push({\"x\":msg.payload[i].timestamp, \"y\":msg.payload[i].out2*200});\n\n}\nchart[0].data.push(pressure);\nchart[0].data.push(out2);\n*/\n\nlet columns = 0;\n\nfor(var series in msg.payload[0]) {\n    if(series!==\"timestamp\") {\n        chart[0].series.push(series);\n        chart[0].data.push([]);\n        columns++;\n    }\n}\n\n\nfor (var j=0; j<msg.payload.length; j++) {\n   for(var i=0;i<columns;i++) {\n       chart[0].data[i].push({\"x\":msg.payload[j].timestamp, \"y\":msg.payload[j][chart[0].series[i]]});\n   } \n}\n\n\n\n\nmsg.payload = chart;\n\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 800,
        "y": 540,
        "wires": [
            [
                "7312f2a78a4eef04"
            ]
        ]
    },
    {
        "id": "7312f2a78a4eef04",
        "type": "ui_chart",
        "z": "e4e30c42d69f0e9c",
        "name": "",
        "group": "160e81fb.f1c86e",
        "order": 12,
        "width": "18",
        "height": "6",
        "label": "",
        "chartType": "line",
        "legend": "false",
        "xformat": "HH:mm:ss",
        "interpolate": "linear",
        "nodata": "",
        "dot": false,
        "ymin": "",
        "ymax": "",
        "removeOlder": 1,
        "removeOlderPoints": "",
        "removeOlderUnit": "3600",
        "cutout": 0,
        "useOneColor": false,
        "useUTC": false,
        "colors": [
            "#1f77b4",
            "#aec7e8",
            "#ff7f0e",
            "#2ca02c",
            "#98df8a",
            "#d62728",
            "#ff9896",
            "#9467bd",
            "#c5b0d5"
        ],
        "outputs": 1,
        "useDifferentColor": false,
        "className": "",
        "x": 1090,
        "y": 580,
        "wires": [
            []
        ]
    },
    {
        "id": "160e81fb.f1c86e",
        "type": "ui_group",
        "name": "File Browser",
        "tab": "c2e47548e62261b9",
        "order": 3,
        "disp": true,
        "width": "18",
        "collapse": false
    },
    {
        "id": "c2e47548e62261b9",
        "type": "ui_tab",
        "name": "Home",
        "icon": "dashboard",
        "order": 1,
        "disabled": false,
        "hidden": false
    }
]
* List item
The Csv file has two column one is timestamp and temperature data .I have put the debug node at the end of chart but not sure what message I am recieving
Thankyou in Advance ,.





