• 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.7k 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 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
                • B Offline
                  banbutcher
                  last edited by Apr 13, 2020, 5:26 AM

                  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 Apr 13, 2020, 10:54 AM Reply Quote 0
                  • S Offline
                    sdetweil @banbutcher
                    last edited by Apr 13, 2020, 10:54 AM

                    @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 Apr 16, 2020, 2:01 PM

                      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 Apr 16, 2020, 2:33 PM Reply Quote 0
                      • 1
                      • 2
                      • 3
                      • 4
                      • 5
                      • 6
                      • 4 / 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