MRTG Script to Graph the Current Outdoor Temperature
I’m graphing a few things around my home and wanted to graph the current outdoor temperature. I wrote this quick script to grab the current temperature or my zip code from weatherunderground.com and have it graphed with MRTG:
#!/usr/bin/php
<?php
$zipcode = $argv[1];
$page = file_get_contents("http://www.wunderground.com/cgi-bin/findweather/getForecast?query=$zipcode&wuSelect=WEATHER");
$current_temp = 0;
if (preg_match('#pwsvariable="tempf" english="°F" metric="°C" value="([0-9\.]+)">#', $page, $matches)) {
$current_temp = $matches[1];
}
if (preg_match('#Heat Index:</td>.*?<span class="nobr"><span class="b">([0-9\.]+)</span>#s', $page, $matches)) {
$heat_index = $matches[1];
}
echo "$current_temp\n$heat_index\non\non\n";
?>
And add it to your MRTG config with something like this (Note that you need to specify your zip code in the ‘Target’ line):
Target[temp]: `/etc/mrtg/temperature.php 30605` Options[temp]: nopercent,growright,nobanner,nolegend,noinfo,integer,gauge Title[temp]: Outdoor Temperature PageTop[temp]: <h3>Outdoor Temperature</h3> YLegend[temp]: Degrees Farenheight ShortLegend[temp]: °F LegendI[temp]: Temperature °F LegendO[temp]: Heat Index °F

on December 3rd, 2009 at 5:01 am
Exactly what I needed, thanks. I’m not the best at scripting though, so when I adjusted to make a second graph for gathering pressure and humidity, I failed brilliantly
Below is what I was attempting to do, and I get output. The problem is that the output is “1″ off, meaning that instead of grabbing the humidity, it grabs the value listed below it on the web page, like visibility. Any tips? Thanks again.
#!/usr/bin/php
<?php
$zipcode = $argv[1];
$page = file_get_contents("http://www.wunderground.com/cgi-bin/findweather/getForecast?query=$zipcode&wuSelect=WEATHER");
if (preg_match('#Humidity:.*?([0-9\.]+)#s', $page, $matches)) {
$humidity = $matches[1];
}
if (preg_match('#Pressure:.*?([0-9\.]+)#s', $page, $matches)) {
$pressure = $matches[1];
}
echo "$humidity\n$pressure\n\n";
?>
on December 3rd, 2009 at 9:15 am
Also, I would like it to display negative values if they are present. I tried stripping out some of the code here and there without luck.
on January 4th, 2010 at 3:11 am
hi.good day.i am developing a system that has to do with mrtg. the system has log in page and user may enter and see their mrtg graph.
But i am not sure how to create the graph.
Could u help me to sort out this thing.
thank you.