Read the statement by Michael Teeuw here.
.txt file include
-
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 ?
-
@yawns Danke für deinen Tipp. Aber es läuft nun.
Habe aber nun ein anderes Problem ;)
gibt es eine Möglichkeit, die asugabe der txt Datei zu beregenzen, so dass mir nur bestimmte Werte angezeigt werden.
In der Datei stehen Werte von einem dht22 sensor und ich möchte nur diese werte ausgeben ohne die den anderen INhalt. -
are these all in seperate lines?
if so then you could check in a for loop if there is the word humidity or temperature otherwise ignore the line
-
@strawberry-3.141
No. There is only one line. -
can you please upload your txt file i have no clue how it looks like, so we can help you out with that
-
@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.
-
@strawberry-3.141 Hi, do you have any idea?
-
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; } -
@strawberry-3.141 HI Thanks. Sorry but, where do I insert the code?
I´m new in this… -
in sensor.js you have the function getdom replace it with this
-
@strawberry-3.141 Yeah :) Thanks :)
-
@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 txtI hope you can help me to Display " Meldung, Zone, Zeit" on my MagicMirror
Best regards
Sascha
-
@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
-
@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 onlyStellmotor
Antrieb blockiert is missingThe
identifyer-wordsare Meldung Zone ZeitThe 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 -
@saschasp your regular expressens are different from the one i posted, use them and I’m sure it will work
-
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
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