Hi!!
I am currently building a datalogger for my gps.
I would like to have a switch that u press to start logging and also stop logging.
Every time I stop logging and start over logging I would like a new file to be generated and saved to my folder.
I am tinking about using node-red-contrib-simple-gate...
I am not really sure how to do it since I am new to NR.
Thanks in advance!
[
{
"id": "2cd82789b65e21b3",
"type": "tab",
"label": "Flow 3",
"disabled": false,
"info": "",
"env": []
},
{
"id": "18e64fc4f03f85e0",
"type": "gate",
"z": "2cd82789b65e21b3",
"name": "",
"controlTopic": "control",
"defaultState": "closed",
"openCmd": "open",
"closeCmd": "close",
"toggleCmd": "toggle",
"defaultCmd": "default",
"statusCmd": "status",
"persist": false,
"storeName": "memory",
"x": 470,
"y": 660,
"wires": [
[
"46c5e78853f545fa"
]
]
},
{
"id": "939995ccfbeb6faa",
"type": "gpsd",
"z": "2cd82789b65e21b3",
"name": "",
"hostname": "localhost",
"port": "2947",
"tpv": true,
"sky": false,
"info": false,
"device": false,
"gst": false,
"att": false,
"x": 170,
"y": 660,
"wires": [
[
"b9f3d901b1d8eeaa"
]
]
},
{
"id": "3160293e9028d697",
"type": "function",
"z": "2cd82789b65e21b3",
"name": "Filename",
"func": "var now = new Date();\nvar yyyy = now.getFullYear();\nvar mm = now.getMonth() < 9 ? \"0\" + (now.getMonth() + 1) : (now.getMonth() + 1); // getMonth() is zero-based\nvar dd = now.getDate() < 10 ? \"0\" + now.getDate() : now.getDate();\nvar hh = now.getHours() < 10 ? \"0\" + now.getHours() : now.getHours();\nvar mmm = now.getMinutes() < 10 ? \"0\" + now.getMinutes() : now.getMinutes();\nvar ss = now.getSeconds() < 10 ? \"0\" + now.getSeconds() : now.getSeconds();\n\n// Generate out file name pattern\nmsg.fname = \"Log_\"+ yyyy +\"-\" + mm +\"-\"+ dd +\"_\"+hh+\"_\"+mm+ \".txt\";\n// Full filename with path for the file node later\nmsg.filename = \"/home/pi/gps_log_self/\"+ msg.fname;\nmsg.filecontent = msg.payload;\nmsg.payload = {\"pattern\":msg.fname};\n\nnode.status({fill:\"blue\",shape:\"ring\",text:msg.fname});\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 720,
"y": 800,
"wires": [
[
"1515c3ab7cf5b0ee"
]
]
},
{
"id": "1515c3ab7cf5b0ee",
"type": "fs-file-lister",
"z": "2cd82789b65e21b3",
"name": "",
"start": "/home/pi/gps_log",
"pattern": "",
"folders": "*",
"hidden": true,
"lstype": "files",
"path": true,
"single": true,
"depth": 0,
"stat": true,
"showWarnings": false,
"x": 840,
"y": 720,
"wires": [
[
"0fa537dca4636800"
]
]
},
{
"id": "0fa537dca4636800",
"type": "change",
"z": "2cd82789b65e21b3",
"name": "Get file content",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "filecontent",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 980,
"y": 780,
"wires": [
[
"3fcbbee264fa11c4"
]
]
},
{
"id": "3fcbbee264fa11c4",
"type": "file",
"z": "2cd82789b65e21b3",
"name": "",
"filename": "",
"appendNewline": true,
"createDir": true,
"overwriteFile": "false",
"encoding": "none",
"x": 1100,
"y": 720,
"wires": [
[]
]
},
{
"id": "46c5e78853f545fa",
"type": "function",
"z": "2cd82789b65e21b3",
"name": "",
"func": "\nfunction getRandomString(length) {\n var randomChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n var result = '';\n for ( var i = 0; i < length; i++ ) {\n result += randomChars.charAt(Math.floor(Math.random() * randomChars.length));\n }\n return result;\n}\n\n\nmsg.payload = {\n \"name\" : getRandomString(5),\n \"lat\" : msg.payload.lat,\n \"lon\" : msg.payload.lon,\n \"time\" : msg.payload.time.substr(11,8),\n\n \n}\nreturn msg;\n\n",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 520,
"y": 760,
"wires": [
[
"3160293e9028d697"
]
]
},
{
"id": "b9f3d901b1d8eeaa",
"type": "ui_switch",
"z": "2cd82789b65e21b3",
"name": "",
"label": "switch",
"tooltip": "",
"group": "6ce64df2b03eece2",
"order": 6,
"width": 0,
"height": 0,
"passthru": true,
"decouple": "false",
"topic": "control",
"topicType": "str",
"style": "",
"onvalue": "open",
"onvalueType": "str",
"onicon": "",
"oncolor": "",
"offvalue": "close",
"offvalueType": "str",
"officon": "",
"offcolor": "",
"animate": false,
"className": "",
"x": 320,
"y": 680,
"wires": [
[
"18e64fc4f03f85e0"
]
]
},
{
"id": "6ce64df2b03eece2",
"type": "ui_group",
"name": "GNSS Tracker",
"tab": "42f2e0a585dcba03",
"order": 1,
"disp": false,
"width": "20",
"collapse": false,
"className": ""
},
{
"id": "42f2e0a585dcba03",
"type": "ui_tab",
"name": "GNSS Tracker",
"icon": "fa-map-o",
"order": 1,
"disabled": false,
"hidden": false
}
]