@strawberry-3.141 This is amazing! Is there the potential for other leagues like MLB or the NHL? Or perhaps selecting your favorite teams and only showing the scores?
Great job nonetheless!
@strawberry-3.141 This is amazing! Is there the potential for other leagues like MLB or the NHL? Or perhaps selecting your favorite teams and only showing the scores?
Great job nonetheless!
@KirAsh4 awesome, I will give it a shot. I can’t thank you enough! Much appreciated!
@KirAsh4 I had actually uploaded that file a few posts back. For reference here’s the entire thing (forgive the ugliness)
<head>
<title>Magic Mirror</title>
<html>
<style type="text/css">
<?php include('css/main.css') ?>
<?php include('css//mbta-icons.css') ?>
</style>
<link rel="stylesheet" type="text/css" href="css/weather-icons.css">
<script type="text/javascript">
var gitHash = '<?php echo trim(`git rev-parse HEAD`) ?>';
</script>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="google" value="notranslate" />
</head>
<body>
<div class="backgroundTint"></div>
<div class="top left">
<div class="date small dimmed"></div>
<div class="time"></div>
<div class="timeWarning xxsmall"></div>
<div class="holidays xxsmall dimmed"></div>
<div class="calendar xxsmall"></div>
<div class="mbta xxxsmall dimmed"></div>
</div>
<div class="top right">
<div class="windsun small dimmed"></div>
<div class="temp"></div>
<div class="tempfeelslike xxsmall"></div>
<div class="spacer"></div>
<div class="tempgraph"></div>
<div class="weekgraph"></div>
<div class="summary xxsmall2 dimmed"></div>
<div class="weatheralerts xxsmall2 dimmed"></div>
</div>
<div class="lower-third center-hor">
<div class="compliment light"></div>
<div class="weatherCompliment small light"></div>
</div>
<div class="bottom center-hor">
<div class="newsTitle xsmall xxdimmed"></div>
<div class="news medium"></div>
</div>
<div class="farbottom center-hor">
<div class="newsDots xxxsmall"></div>
</div>
<div class="farbottom right">
<div class="lastupdated luWeather xxxsmall xxdimmed"></div>
<div class="lastupdated luMBTA xxxsmall xxdimmed"></div>
<div class="lastupdated luRSS xxxsmall xxdimmed"></div>
<div class="lastupdated luHolidays xxxsmall xxdimmed"></div>
</div>
</div>
<!-- Third Parties -->
<script src="js/jquery.js"></script>
<script src="js/ical_parser.js"></script>
<script src="js/moment-with-locales.js"></script>
<script src="js/config.js"></script>
<script src="js/rrule.js"></script>
<script src="js/d3.js"></script>
<!-- Our Stuff -->
<script src="js/main.js?nocache=<?php echo md5(microtime()) ?>"></script>
<script src="js/mm-weather.js?nocache=<?php echo md5(microtime()) ?>"></script>
<script src="js/mm-mbta.js?nocache=<?php echo md5(microtime()) ?>"></script>
<script src="js/mm-mta.js?nocache=<?php echo md5(microtime()) ?>"></script>
</html>
</body>
@KirAsh4 Just out of curiosity, if I were to add the code you provided into the PHP file, would i need to bracket it with <?php then add the code here?>
@KirAsh4 LOL - I’m just lost these days with all of this stuff. I should stick to my DB work.
Let me see what I can do with the module documentation, it would be a good experience anyway to learn.
@KirAsh4 OK, so my PHP script is actually index.php, it’s effectively the page that loads and is my Mirror. In that file I have a reference to the JS file which runs the mta code.
<script src="js/mm-mta.js"></script>
So would I put the following in the PHP page? (sorry if I sound dumb here)
var prev_datestamp = 0;
var expire_time = 15 * 60 * 1000; // 15 minutes
// run every five minutes
if (file exists) {
if (file.datestamp > previous_datestamp) {
<script src="js/mm-mta.js"></script>
previous_datestamp = file.datestamp;
} else if (now > file.datestamp + expire_time) {
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<script>
$("#mta").empty();
</script>
}
}
@KirAsh4 This is awesome!
I would just put this in my JS file, right? I’m currently sending the following command through Tasker to the Pi so I think I’m good.
touch curr-train.txt
@KirAsh4 Yup! That’s exactly what the setup is. The Pi is exposed to the internet via SSH on port 22, I changed the password to something pretty obscure but may look into additional security.
Right now the JS script is running every 5 minutes and presenting the ETA for the train that is currently running closest to the actual time of the day. Problem here is that information clearly isn’t important because I’m at work and not in transit. I was trying to make it more robust in that I am able to use Tasker to ping cell towers and once I am in a specific location, output the file to the Pi to then trigger the script. Of course, if there is a better way I’d absolutely look into that, it was just my first thought on how to accomplish it.
@KirAsh4 the file wouldn’t have anything in it, it simply would trigger the mirror to display the current train status. The only reason I haven’t just sent a text directly from my phone when I hit a location is because there is no way for me to send the actual trains ETA (and if you’ve rode the MTA before it is always late). I was thinking I could display the results of my mta JS module (which does a JSON pull to their api getting the trains ETA) on the screen only when the file becomes available, thus having to avoid her looking at the mirror showing every trains ETA and only displaying my train. If you have any other suggestions I’d definitely like to try them out; like I said I’m doing this more to learn as well. Thanks!
I’m actually looking to do the reverse, take some MM2 modules and add them into my current MM1 (more for learning purposes). Any idea if this is possible?
@KirAsh4 I’m actually not storing any data into the file, it’s more like an “OK” file. What I’m trying to do is output a file to the Pi via Tasker when I hit a specific location in my commute home (I have this part working). From there I want to call a function that I have already written in JavaScript which looks up the train status from the MTA (NYC’s transit system). The idea is to run this function only when the file is output so that my wife can see which train I’m on and what the ETA will be. Currently I have the function running whenever there are delays but the problem is that it lists every train and not the specific one I am on. I’d like to have it so it just appears once the text file is output. Thanks again for your help!
Thanks for your reply, I’m more of a database developer so I’m really not sure how to do certain things using PHP or JavaScript. So I have a PHP page which I load and in that page it calls references some JS files. Would I add the file_exists check in the php page directly, then if it does exist, call the new JS file which will contain the info I want displayed if the file exists? Again sorry for these questions, I’m trying to learn as I go.
Hi everyone, I have a working MM1 currently and wanted to know if it’s possible to integrate some of the new MM2 modules into the old MM1. I’m assuming I’d have to save the JS file from the module to the /js folder in MM1 and update the old config.js file? What I would update these files with is where I’m stuck. I also would need to edit the css file too. For reference I’m thinking of integrating the MMM-Nest module to the old mirror. Any help or guidance is appreciated.
FYI, I’d am doing this more to learn JavaScript as I’m a rookie - gotta start somewhere!
Hi all, this is unrelated to the existing Mirror project but I am hoping someone can help.
I have a text file which I am outputting to my Pi from my phone using Tasker. For arguments sake lets say this file is test.txt. I would like to find a way to run a filewatcher to check to see if this file is available and then run some JavaScript code which will update values on my PHP page once the file is found.
I am very new with JavaScript and am not sure of the best approach to do this.
Any help is appreciated!