• 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.6k 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 Sep 3, 2016, 1:02 PM

    @strawberry-3.141
    Raspberry Pi wiringPi DHT22 reader www.lolware.net Data not good, skip Data not good, skip Data not good, skip Humidity = 47.10 % Temperature = 24.50 *C .

    This is the contetn of the .txt file. And its all in one line.

    1 Reply Last reply Reply Quote 0
    • D Offline
      dominic @strawberry 3.141
      last edited by Sep 9, 2016, 2:42 PM

      @strawberry-3.141 Hi, do you have any idea?

      1 Reply Last reply Reply Quote 0
      • S Offline
        strawberry 3.141 Project Sponsor Module Developer
        last edited by Sep 9, 2016, 5:16 PM

        getDom: function(){
        		var wrapper = document.createElement("div");
        		if(this.dataFile){
                                var humidityRegExp = /Humidity = (.*?) %/ig;
                                var humidity = humidityRegExp.exec(this.dataFile)[1];
        
                                var temperatureRegExp = /Temperature = (.*?) *C/ig;
                                var temperature = temperatureRegExp.exec(this.dataFile)[1];
        			wrapper.innerHTML = "Humidity: " + humidity + "% and Temperature: " + temperature + "°C";
        		} 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 Sep 9, 2016, 5:20 PM Reply Quote 0
        • D Offline
          dominic @strawberry 3.141
          last edited by Sep 9, 2016, 5:20 PM

          @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
          • S Offline
            strawberry 3.141 Project Sponsor Module Developer
            last edited by Sep 9, 2016, 5:22 PM

            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 Sep 9, 2016, 5:25 PM Reply Quote 0
            • D Offline
              dominic @strawberry 3.141
              last edited by Sep 9, 2016, 5:25 PM

              @strawberry-3.141 Yeah :) Thanks :)

              1 Reply Last reply Reply Quote 0
              • S Offline
                SaschaSP
                last edited by yawns Jun 12, 2018, 10:21 AM Jun 12, 2018, 10:09 AM

                @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

                S 1 Reply Last reply Jun 12, 2018, 7:08 PM Reply Quote 0
                • S Offline
                  strawberry 3.141 Project Sponsor Module Developer @SaschaSP
                  last edited by Jun 12, 2018, 7:08 PM

                  @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 Jun 13, 2018, 9:42 AM Reply Quote 1
                  • S Offline
                    SaschaSP @strawberry 3.141
                    last edited by SaschaSP Jun 13, 2018, 9:51 AM Jun 13, 2018, 9:42 AM

                    @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

                    S 1 Reply Last reply Jun 13, 2018, 6:21 PM Reply Quote 0
                    • S Offline
                      strawberry 3.141 Project Sponsor Module Developer @SaschaSP
                      last edited by Jun 13, 2018, 6:21 PM

                      @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
                      • 1
                      • 2
                      • 3
                      • 4
                      • 5
                      • 6
                      • 3 / 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