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 35.4k 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 @strawberry 3.141
      last edited by

      @strawberry-3.141 HI Thanks. Sorry but, where do I insert the code?
      I´m new in this…

      1 Reply Last reply Reply Quote 0
      • strawberry 3.141S Offline
        strawberry 3.141 Project Sponsor Module Developer
        last edited by

        in sensor.js you have the function getdom replace it with this

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

        D 1 Reply Last reply Reply Quote 0
        • D Offline
          dominic @strawberry 3.141
          last edited by

          @strawberry-3.141 Yeah :) Thanks :)

          1 Reply Last reply Reply Quote 0
          • S Offline
            SaschaSP
            last edited by yawns

            @strawberry-3-141 great solution from you.
            I want to use your solution not for showing Temperatur/ Humidity rather for showing alerts from sensors.

            The content from my txt is for example:

            Meldung Stellmotor Antrieb blockiert
            Zone Nebenantrieb
            Zeit 6.Juni 2018 10:40
            +++ENDE DER DATEI+++
            

            I change the sensor.js:

            Module.register("Home-Status",{
            	defaults: {
            		updateInterval: 0.5 * 60 * 1000 //reads the file every 30 seconds
            	},
            
            	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){
                                    var meldungRegExp = /Meldung = (.*?) /ig;
                                    var meldung = meldungRegExp.exec(this.dataFile)[1];
            
                                    var zoneRegExp = /Zone = (.*?) /ig;
                                    var zone = zoneRegExp.exec(this.dataFile)[1];
            
            			var zeitRegExp = /Zeit = (.*?) /ig;
            			var zeit = zeitRegExp.exec(this.dataFile)[1];
            			wrapper.innerHTML = "Meldung: " + meldung + " , Zone: " + zone + " , "Zeit: " + zeit" ;
            		} else {
            			wrapper.innerHTML = "No Data";
            		}
            		return wrapper;
            	}
            });
            

            but it dosn´t work.
            Firtst problem: my txt have no seperators like = or :
            second probleme: my alert text (Meldung) contains of several words
            third Problem: only the newest txt should be displayed. The Names from the txt files are for example 20180112090125.txt or 20185912085949.txt etc. It´s not possible to edit the incoming txt names. Best way is to automaticly delete the previous txt

            I hope you can help me to Display " Meldung, Zone, Zeit" on my MagicMirror

            Best regards

            Sascha

            strawberry 3.141S 1 Reply Last reply Reply Quote 0
            • strawberry 3.141S Offline
              strawberry 3.141 Project Sponsor Module Developer @SaschaSP
              last edited by

              @saschasp you can change your regular expressions to the following:
              /Meldung (.*)/ig;, /Zone (.*)/ig; and /Zeit (.*)/ig;. This should help you displaying the data. For the problem with the newest file you need to do the following steps: Scan the directory, sort file list by highest number, read the first file.

              Scan the directory https://nodejs.org/api/fs.html#fs_fs_readdir_path_options_callback

              Sort the file names https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

              Read the file https://nodejs.org/api/fs.html#fs_fs_readfile_path_options_callback

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

              S 1 Reply Last reply Reply Quote 1
              • S Offline
                SaschaSP @strawberry 3.141
                last edited by SaschaSP

                @strawberry-3-141
                Ok, i will try step by step.
                Beginning with my first probleme:
                The Output message (displayed on the mirror) is only displaying one word after the “identifyer-word”

                identifyer "Meldung"
                Stellmotor Antrieb blockiert
                MagicMirror Display only Stellmotor
                Antrieb blockiert is missing

                The identifyer-wordsare Meldung Zone Zeit

                The content from my txt:

                Meldung Stellmotor Antrieb blockiert
                Zone Nebenantrieb
                Zeit 6.Juni 2018 10:40
                +++ENDE DER DATEI+++
                

                My edited sensor.js:

                Module.register("Home-Status",{
                	defaults: {
                		updateInterval: 0.5 * 60 * 1000 //reads the file every 30 seconds
                	},
                
                	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){
                                        var meldungRegExp = /Meldung (.*?) /ig;
                                        var meldung = meldungRegExp.exec(this.dataFile)[1];
                
                
                                        var zoneRegExp = /Zone (.*?) /ig;
                                        var zone = zoneRegExp.exec(this.dataFile)[1];
                
                			var zeitRegExp = /Zeit (.*?) /ig;
                			var zeit = zeitRegExp.exec(this.dataFile)[1];
                			wrapper.innerHTML = "Meldung: " + meldung + " Zone: " + zone + " Zeit: " + zeit;
                		} else {
                			wrapper.innerHTML = "No Data";
                		}
                		return wrapper;
                	}
                });
                
                

                Result wich is displayed at MagicMirror:

                Meldung:Stellmotor Zone:Nebenantrieb Zeit:6.Juni

                strawberry 3.141S 1 Reply Last reply Reply Quote 0
                • strawberry 3.141S Offline
                  strawberry 3.141 Project Sponsor Module Developer @SaschaSP
                  last edited by

                  @saschasp your regular expressens are different from the one i posted, use them and I’m sure it will work

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

                  1 Reply Last reply Reply Quote 0
                  • B Offline
                    banbutcher
                    last edited by

                    hi,
                    sorry to be dragging up old posts, but im trying to get my mirror to display the contents of a txt file and i have it partly working… i have the contents displaying on my mirror but its all showing up on one line, how can i display it with each line break as in txt file?

                    thanks

                    S 1 Reply Last reply Reply Quote 0
                    • S Offline
                      sdetweil @banbutcher
                      last edited by

                      @banbutcher you will have to replace the line feeds (\n) with html breaks (
                      )

                      Sam

                      How to add modules

                      learning how to use browser developers window for css changes

                      1 Reply Last reply Reply Quote 0
                      • B Offline
                        banbutcher
                        last edited by

                        hi again,

                        im after getting my script to update my txt file with the names of downloaded movies and tv series… how would i go about reading the title of the series and just having the title and info ie:

                        if title has S**E** in it then
                        filename - Archer S01E01pilot 1080p x265.mkv
                        desired result - Archer S01E01

                        else its a movie and just add movie name

                        i think this is the bit of code im to edit but i havent got it working :(

                        	getDom: function(){
                        		var wrapper = document.createElement("div");
                        		if(this.dataFile){
                                                var meldungRegExp = /Meldung (.*?) /ig;
                                                var meldung = meldungRegExp.exec(this.dataFile)[1];
                        
                        
                                                var zoneRegExp = /Zone (.*?) /ig;
                                                var zone = zoneRegExp.exec(this.dataFile)[1];
                        
                        			var zeitRegExp = /Zeit (.*?) /ig;
                        			var zeit = zeitRegExp.exec(this.dataFile)[1];
                        			wrapper.innerHTML = "Meldung: " + meldung + " Zone: " + zone + " Zeit: " + zeit;
                        		} else {
                        			wrapper.innerHTML = "No Data";
                        		}
                        		return wrapper;
                        	}
                        });
                        

                        thanks

                        Richie

                        S 1 Reply Last reply Reply Quote 0
                        • 1
                        • 2
                        • 3
                        • 4
                        • 5
                        • 6
                        • 2 / 6
                        • First post
                          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