Read the statement by Michael Teeuw here.
read csv-data and put it in an array
-
ok thank.
if i want to testreadCSV: fs.readFile('birthdaylist.csv', 'utf8', function (err, data) { var dataArray = data.split(/\r?\n/); Log.log(dataArray);
or
readList: function() { var JFile=require('jfile'); var myF=new JFile("MMM-birthday.txt"); myF.lines // ["first line","second line"]
i have to do this in node_helper right? and first i have to require them and of course to install them … something i forgot ?
-
@Perlchamp Log.log is ONLY in the browser, but fs. Is not usable in browser
U can test it w node to make sure it works. Then for mm it has to be in node_helper
Install library, so that you CAN require
-
hallo sam :-)
i have now this in my node_helper.js:var NodeHelper = require("node_helper"); // add require of other javascripot components here // var xxx = require('yyy'); here const csv = require("csvtojson"); const csvFilePath = this.path + 'birthdaylist.csv'; module.exports = NodeHelper.create({ init(){ console.log("init module helper perlchamp"); }, start() { console.log("Starting module helper: ${this.name}"); console.log("dieser Pfad: ${this.path}"); csv() .fromFile(csvFilePath) .then((jsonObj)=>{ console.log(jsonObj); }) }, /* stop(){ console.log(`Stopping module helper: ${this.name}`); }, */ // handle messages from our module// each notification indicates a different messages // payload is a data structure that is different per message.. up to you to design this socketNotificationReceived(notification, payload) { console.log(this.name + " received a socket notification: " + notification + " - Payload: " + payload); // if config message from module if (notification === "CONFIG") { // save payload config info this.config=payload // wait 15 seconds, send a message back to module setTimeout(()=> { this.sendSocketNotification("message_from_helper"," this is a test_message")}, 15000) } else if(notification === "????2") { } }, });
terminal says:
Unhandled rejection Error: File does not exist. Check to make sure the file path to your csv is correct. at /home/dirk/MagicMirror/node_modules/csvtojson/v2/Converter.js:81:37 at suppressedCallback (fs.js:209:5) at FSReqCallback.oncomplete (fs.js:153:23)
it’s from your SampleModule …
- how can i see the console.log statements in the browser, starting MM ?
- did i enter the code in the right place?
- if I enter the following into the terminal window:
node console.log (‘path: $ {this.path}’)
i got an error message:
bash: Syntaxerror unexpected word `(’
what am I doing wrong ?
many thanks in advance
-
@Perlchamp said in read csv-data and put it in an array:
-
how can i see the console.log statements in the browser, starting MM ?
cannot see node_helper messages in browser, must look in the terminal window where u did npm start
you can redirect those messages to a file
npm start >somefile
and then look at somefile live with editor -
did i enter the code in the right place?
const csvFilePath = this.path + ‘birthdaylist.csv’;
u have this.path outside the NodeHelper.create, at that time ‘this’ does not exist
‘this’ means ‘instance of’, and u are outside the thing that creates the instance -
if I enter the following into the terminal window:
because u are not running in magic mirror , ‘this’ does not exist
node console.log (‘path: $ {this.path}’)- i got an error message:
- bash: Syntaxerror unexpected word `(’
what am I doing wrong…
bash would not see any ( unless u put it on the line with node
node (something)
that is a command to bash (the terminal window program, he has his own rules about parens, and other special characters (* means ALL filenames in this folder for example!)I never ever use $ in node_helper (or anywhere else)
I would do this
console.log (‘path: '+ this.path) -
-
thank you. ok, i will test …
only for your information:
start() { console.log(`Starting module helper: ${this.name}`); }, stop(){ console.log(`Stopping module helper: ${this.name}`); },
this is from your SampleModule. i’m not here to reprimand you. it should only be information. so please do not misunderstand.
-
@Perlchamp thanks… will fix… never copy from another without review!!
-
always my pleasure
-
@Perlchamp fixed
-
if u redirect the output of npm start to a file, this is what you will see in the file
> magicmirror@2.11.0 start /home/sam/MagicMirror > DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js [2020-04-30 11:15:53.521] [LOG] Starting MagicMirror: v2.11.0 [2020-04-30 11:15:53.524] [LOG] Loading config ... [2020-04-30 11:15:53.526] [LOG] Loading module helpers ... [2020-04-30 11:15:53.528] [LOG] Initializing new module helper ... [2020-04-30 11:15:53.528] [LOG] Module helper loaded: MMM-Logging [2020-04-30 11:15:53.529] [LOG] No helper found for module: alert. [2020-04-30 11:15:53.529] [LOG] No helper found for module: clock. [2020-04-30 11:15:53.663] [LOG] Initializing new module helper ... [2020-04-30 11:15:53.663] [LOG] Module helper loaded: MyCovid19 [2020-04-30 11:15:53.784] [LOG] Initializing new module helper ... [2020-04-30 11:15:53.785] [LOG] Module helper loaded: MMM-AlexaControl [2020-04-30 11:15:53.786] [LOG] handler helper in init [2020-04-30 11:15:53.786] [LOG] Module helper loaded: MMM-SleepWake [2020-04-30 11:15:53.786] [LOG] All module helpers loaded. [2020-04-30 11:15:53.820] [LOG] Starting server on port 8090 ... [2020-04-30 11:15:53.821] [INFO] [33mYou're using a full whitelist configuration to allow for all IPs[39m [2020-04-30 11:15:53.823] [LOG] Server started ... [2020-04-30 11:15:53.823] [LOG] Connecting socket for: MMM-Logging [2020-04-30 11:15:53.824] [LOG] Module helper started for MMM-Logging [2020-04-30 11:15:53.824] [LOG] Connecting socket for: MyCovid19 [2020-04-30 11:15:53.824] [LOG] Starting node_helper for module: MyCovid19 [2020-04-30 11:15:53.824] [LOG] path=/home/sam/MagicMirror/modules/MyCovid19 [2020-04-30 11:15:53.824] [LOG] Connecting socket for: MMM-AlexaControl [2020-04-30 11:15:53.824] [LOG] MMM-AlexaControl helper, started... [2020-04-30 11:15:53.824] [LOG] Connecting socket for: MMM-SleepWake [2020-04-30 11:15:53.825] [LOG] handler helper in start [2020-04-30 11:15:53.825] [LOG] Sockets connected & modules started ... [2020-04-30 11:15:53.906] [LOG] Launching application. [2020-04-30 11:15:53.928] [LOG] setup for latent showing // < --- from my module node_helper [2020-04-30 11:15:54.487] [LOG] requested file exists=modules/MyCovid19/states-rawdata-04-30-2020 sending back to module_13_MyCovid19_5731 // < --- from my module node_helper [2020-04-30 11:15:54.490] [LOG] requested file exists=modules/MyCovid19/countries-rawdata-04-30-2020 sending back to module_16_MyCovid19_7951 // < --- from my module node_helper [2020-04-30 11:15:54.492] [LOG] requested file exists=modules/MyCovid19/countries-rawdata-04-30-2020 sending back to module_14_MyCovid19_1721 // < --- from my module node_helper [2020-04-30 11:15:54.493] [LOG] requested file exists=modules/MyCovid19/countries-rawdata-04-30-2020 sending back to module_15_MyCovid19_91 // < --- from my module node_helper [2020-04-30 11:15:54.498] [LOG] requested file exists=modules/MyCovid19/countries-rawdata-04-30-2020 sending back to module_17_MyCovid19_2191 // < --- from my module node_helper etc
-
ok, it’s slowly dawning on me, see little light at the end of the tunnel