Read the statement by Michael Teeuw here.
.txt file include
-
Hello, i have a .txt file,
this file I want to embed to the mirror. So the
Content is displayed on the mirror.
In addition , the file should be up-dated after a time= x.can someone help me?
Thanks
-
@dominic this should give you an idea how to solve your problem, I just wrote it down maybe you have to adjust something a little bit and it’s not a finished solution
- nodehelper:
const fs = require('fs'); ... socketNotificationReceived: function(notification, payload) { if(notification === 'START'){ this.config = payload; this.readData(); setInterval(() => { this.readData(); }, this.config.updateInterval); } }, readData: function(){ //to read a file to do the following fs.readFile('YOUR FILE PATH', (err, data) => { if (err) throw err; this.sendSocketNotification('DATA', data); }); }- module:
defaults: { updateInterval: 30*60*1000 //reads the file every 30 mins }, start: function(){ this.sendSocketNotification('START', this.config); }, socketNotificationReceived: function(notification, payload) { if(notification === 'DATA'){ this.dataFile = payload; this.updateDom(); } }, getDom: function(){ var wrapper = document.createElement('div'); if(this.dataFile){ wrapper.innerHTML = this.dataFile; } else { wrapper.innerHTML = 'No data'; } return wrapper; } -
@strawberry-3.141 Hi thank you.
Sorry for the questions, i´m new in .js.Where do I insert the nodehelper und the module and and what I need to modify?
I have insert the nodehelper code in the file: MagicMirror/modules/node_modules/node_helper/index.js.
And the module code in /MagicMirror/modules/sensor/sensor.js.on the mirror is displayed : Sensor module_2_sensor…
-
there is a general design your module have to look like
you have to create a directory in
~/MagicMirror/modules/YOUR_MODULE_NAMEthen create a file
YOUR_MODULE_NAME.jsModule.register("YOUR_MODULE_NAME",{ //here comes the rest of the code for module I posted above });then create a file
node_helper.jsconst NodeHelper = require("node_helper"); const fs= require("fs"); module.exports = NodeHelper.create({ //here comes the part of the nodehelper after the 3 dots as posted above }); -
@strawberry-3.141 Thanks for the fast answer :)
I did it , just as you said it. on the mirror is displayed : NO DATA
Here is the code from the nodehelper:
Is the path specified correctly or I need to change something?- readData: function(){
//to read a file to do the following
fs.readFile(‘/home/pi/MagicMirror/Test-temp.txt’, (err, data) => {
if (err) throw err;
this.sendSocketNotification(‘DATA’, data);
});
- readData: function(){
-
i think this should do the job
fs.readFile('Test-temp.txt', (err, data) => { -
@strawberry-3.141
hi, now i get " [object ArryBuffer]"
what did i worng? -
sry wasn’t aware of that a buffer gets returned instead of a string if there is no encoding specified
fs.readFile('Test-temp.txt', 'utf8', (err, data) => { -
@strawberry-3.141 said in .txt file include:
fs.readFile(‘Test-temp.txt’, ‘utf8’, (err, data) => {
Hi, sorry.
It didn´t work :/Here is the
node_helper.jscodeconst NodeHelper = require("node_helper"); const fs= require("fs"); module.exports = NodeHelper.create({ //here comes the part of the nodehelper after the 3 dots as posted above socketNotificationReceived: function(notification, payload) { if(notification === 'START'){ this.config = payload; this.readData(); setInterval(() => { this.readData(); }, this.config.updateInterval); } }, readData: function(){ //to read a file to do the following fs.readFile('Test-temp.txt', 'utf8', (err, data) => { if (err) throw err; this.sendSocketNotification('DATA', data); }); } }); and here is the sensor.js code: Module.register("sensor",{ defaults: { updateInterval: 30*60*1000 //reads the file every 30 mins }, start: function(){ this.sendSocketNotification('START', this.config); }, socketNotificationReceived: function(notification, payload) { if(notification === 'DATA'){ this.dataFile = payload; this.updateDom(); } }, getDom: function(){ var wrapper = document.createElement('div'); if(this.dataFile){ wrapper.innerHTML = this.dataFile; } else { wrapper.innerHTML = 'No data'; } return wrapper; } });Waht did i wrong? :D
I hope you can help me.
Note from admin: Please use Markdown on code snippets for easier reading!
-
this works for me you had everywhere weird quotes and the updateinterval was also wrong
Module.register("sensor",{ defaults: { updateInterval: 30 * 60 * 1000 //reads the file every 30 mins }, start: function(){ this.sendSocketNotification("START", this.config); }, socketNotificationReceived: function(notification, payload) { if(notification === "DATA"){ this.dataFile = payload; this.updateDom(); } }, getDom: function(){ var wrapper = document.createElement("div"); if(this.dataFile){ wrapper.innerHTML = this.dataFile; } else { wrapper.innerHTML = "No data"; } return wrapper; } });const NodeHelper = require("node_helper"); const fs= require("fs"); module.exports = NodeHelper.create({ //here comes the part of the nodehelper after the 3 dots as posted above socketNotificationReceived: function(notification, payload) { if(notification === "START"){ this.config = payload; this.readData(); setInterval(() => { this.readData(); }, this.config.updateInterval); } }, readData: function(){ //to read a file to do the following fs.readFile("Test-temp.txt", "utf8", (err, data) => { if (err) throw err; this.sendSocketNotification("DATA", data); }); } }); -
@strawberry-3.141
Mh… than i don´t know…
i have copy your code but it doesen´t work…
I need to change anything els?And thank you for your patience :)
-
@strawberry-3.141 1_1472575446381_sensor.js 0_1472575446381_node_helper.js 0_1472575579268_config.js
Here are my code files. Maybe this can help?
-
do you get any error in the console or in the electron console (cmd+shift+I)
did you place your Test-temp.txt in ~/MagicMirror or somewhere else?
-
@strawberry-3.141
Sorry i hade no time the last days.I put the Test-temp.txt in ~/MagicMirror and for tests ind~/MagicMirror/modules/sensor.
But nothing happens.I get only an error about the weatherforecast bu nothing els…
-
@dominic can you remove the weatherforecast from the config when its causing issues, so we can troubleshoot this module?
-
Hm, maybe you could try this.
Put the file in the modules folder and open it with “./Test-temp.txt“
Additionally i would suggest to go with lowercase during testing to exclude case sensitive mistakes. -
@yawns electron is running in
~/MagicMirror, so putting the file in the modules directory and do./Test-temp.txtwon’t work. The code is generally working I tested it on my rpi -
@strawberry-3.141 Hi :) it works :)
i don´t know why, but it works. I have reseted the system and after taht ist works.
Thank you very mutch.i want to display not all the text out of the .txt file.
Do you know what i must change in the node_helper.js? -
i think this depends on the content of the file
-
@strawberry-3.141 in the file are values from a dht22 temp.sensor.
but i only need the values for Humidity = xx and Temperature =xx.is there any why to get only this values ?
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login