• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
MagicMirror Forum
  • Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.

.txt file include

Scheduled Pinned Locked Moved Troubleshooting
59 Posts 6 Posters 31.2k Views 6 Watching
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    dominic
    last edited by Aug 28, 2016, 11:22 AM

    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

    S 1 Reply Last reply Aug 28, 2016, 12:18 PM Reply Quote 0
    • S Offline
      strawberry 3.141 Project Sponsor Module Developer @dominic
      last edited by strawberry 3.141 Aug 28, 2016, 12:19 PM Aug 28, 2016, 12:18 PM

      @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;
      }
      

      Please create a github issue if you need help, so I can keep track

      D 1 Reply Last reply Aug 28, 2016, 5:01 PM Reply Quote 1
      • D Offline
        dominic @strawberry 3.141
        last edited by Aug 28, 2016, 5:01 PM

        @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…

        1 Reply Last reply Reply Quote 0
        • S Offline
          strawberry 3.141 Project Sponsor Module Developer
          last edited by Aug 28, 2016, 5:10 PM

          there is a general design your module have to look like

          you have to create a directory in ~/MagicMirror/modules/YOUR_MODULE_NAME

          then create a file YOUR_MODULE_NAME.js

          Module.register("YOUR_MODULE_NAME",{
              //here comes the rest of the code for module I posted above
          });
          

          then create a file node_helper.js

          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
          });
          

          Please create a github issue if you need help, so I can keep track

          D 1 Reply Last reply Aug 28, 2016, 5:25 PM Reply Quote 1
          • D Offline
            dominic @strawberry 3.141
            last edited by Aug 28, 2016, 5:25 PM

            @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);
              });
            1 Reply Last reply Reply Quote 0
            • S Offline
              strawberry 3.141 Project Sponsor Module Developer
              last edited by Aug 29, 2016, 2:06 PM

              i think this should do the job

              fs.readFile('Test-temp.txt', (err, data) => {
              

              Please create a github issue if you need help, so I can keep track

              D 1 Reply Last reply Aug 29, 2016, 5:12 PM Reply Quote 0
              • D Offline
                dominic @strawberry 3.141
                last edited by Aug 29, 2016, 5:12 PM

                @strawberry-3.141
                hi, now i get " [object ArryBuffer]"
                what did i worng?

                1 Reply Last reply Reply Quote 0
                • S Offline
                  strawberry 3.141 Project Sponsor Module Developer
                  last edited by strawberry 3.141 Aug 29, 2016, 7:59 PM Aug 29, 2016, 7:58 PM

                  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) => {
                  

                  Please create a github issue if you need help, so I can keep track

                  D 1 Reply Last reply Aug 30, 2016, 1:27 PM Reply Quote 0
                  • D Offline
                    dominic @strawberry 3.141
                    last edited by paviro Sep 11, 2016, 11:19 AM Aug 30, 2016, 1:27 PM

                    @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.js code

                    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);
                        });
                    }
                    });
                    
                    
                    
                    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!

                    1 Reply Last reply Reply Quote 0
                    • S Offline
                      strawberry 3.141 Project Sponsor Module Developer
                      last edited by Aug 30, 2016, 4:01 PM

                      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);
                      		});
                      	}
                      });
                      

                      Please create a github issue if you need help, so I can keep track

                      D 2 Replies Last reply Aug 30, 2016, 4:37 PM Reply Quote 0
                      • 1
                      • 2
                      • 3
                      • 4
                      • 5
                      • 6
                      • 1 / 6
                      1 / 6
                      • First post
                        3/59
                        Last post
                      Enjoying MagicMirror? Please consider a donation!
                      MagicMirror created by Michael Teeuw.
                      Forum managed by Sam, technical setup by Karsten.
                      This forum is using NodeBB as its core | Contributors
                      Contact | Privacy Policy