Wrzucam kod index.php i data.php gdyby ktoś chciał, dodałem na stronie kilka temperatur na jednym wykresie
<?php
/** data.php
<?php
$id = (int)$_GET['id'];
echo "[".file_get_contents($id.".txt")."]";
?>
**/
$temp = array(); $obecna = array();
$test = false; // pokazuje wszystkie pokoje na wykresie
$temp[0] = "Sypialnia";
$temp[1] = "Zewnątrz #1";
$temp[2] = "Pokój Dagmary";
$temp[3] = "Strych";
$temp[4] = "Łazienka";
$temp[5] = "Pokój Bartosza";
$temp[6] = "Salon";
$temp[7] = "Zewnątrz #2";
$temp[8] = "Piec (temp)";
$temp[9] = "Grunt (10 cm)";
$temp[10] = "Kaloryfer";
$temp[11] = "Zewnątrz #3";
$temp[12] = "Kuchnia";
$temp[99] = "Status Pieca";
// obecna temp
$a = unserialize(base64_decode(file_get_contents("last.txt")));
$ps = file_get_contents("piec_status.txt");
foreach($a as $id => $t) {
$obecna[($id)] = "".$t."°C";
}
if(!isset($_GET['id']))
$test = true;
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Temperatura</title>
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
$(function() {
<?php
if(!$test)
echo " $.getJSON('data.php?id=".$_GET['id']."', function(data) {";
?>
Highcharts.setOptions({
lang: {
months: ['Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec',
'Lipiec', 'Śierpień', 'Wrzesień', 'Październik', 'Listopad', 'Grudzień'],
//months: ['Sty', 'Lut', 'Mar', 'Kwi', 'Maj', 'Cze',
//'Lip', 'Śie', 'Wrz', 'Paź', 'Lis', 'Gru'],
weekdays: ['Nie', 'Pon', 'Wt', 'Śr', 'Czw', 'Pt', 'Sob']
},
global: {
useUTC: false
}
}),
// Create the chart
window.chart = new Highcharts.StockChart({
chart: {
renderTo: 'container'
},
xAxis: {
type: 'datetime',
dateTimeLabelFormats: {
second: '%d-%m-%y<br/>%H:%M:%S',
minute: '%d-%m<br/>%H:%M',
// minute: '%d-%m-%y<br/>%H:%M',
hour: '%d-%m<br/>%H:%M',
// hour: '%d-%m-%y<br/>%H:%M',
day: '%Y<br/>%d-%m',
week: '%Y<br/>%d-%m',
month: '%m-%Y',
year: '%Y'
}
},
rangeSelector: {
buttons: [{
type: 'day',
count: 1,
text: '1d'
}, {
type: 'day',
count: 7,
text: '7d'
}, {
type: 'month',
count: 1,
text: '1m'
}, {
type: 'year',
count: 1,
text: '1rok'
}, {
type: 'all',
text: 'All'
}],
selected: 0
},
title: {
text: '<?php if($_GET['id'] == 99) echo "".$temp[($_GET['id'])]; else echo "Temperatura - ".$temp[($_GET['id'])]; ?>'
},
yAxis: {
title: {
text: '<?php echo ($_GET['id'] == 99 ? "Status" : "Temperatura ( °C )"); ?>'
},
},
<?php
if(!$test) {
echo "series: [{
name: '".($_GET['id'] == 99 ? "Status" : "Temperatura")."',
data: data,
type: 'spline',
shadow: true,
tooltip: {
valueDecimals: ".($_GET['id'] == 99 ? "0" : "2").",
valueSuffix: '".($_GET['id'] == 99 ? "" : " °C")."'
}
}] ";
} else {
echo "series: [";
foreach($temp as $k => $v) {
if(in_array($k,array(99,1,7,11,10,8,3,9))) continue;
if($k) echo ",";
echo "{
name: '".$v."',
data: [".file_get_contents($k.'.txt')."],
type: 'spline',
shadow: true,
tooltip: {
valueDecimals: '2',
valueSuffix: ' °C'
}
}";
}
echo "] ";
}
?>
});
<?php
if(!$test)
echo "});";
?>
});
</script>
</head>
<body>
<script src="js/highstock.js"></script>
<script src="js/modules/exporting.js"></script>
<script type="text/javascript" src="js/themes/gray.js"></script>
<b>Temperatura by BBarwik (<a href="?">wszystkie pokoje</a>)</b>
<table rules="all" border=1 width="90%"><tr width="90%">
<td align="center"><a href="?id=6">SALON</a></td>
<td align="center"><a href="?id=12">KUCHNIA</a></td>
<td align="center"><a href="?id=5">POKÓJ BARTOSZA</a></td>
<td align="center"><a href="?id=2">POKÓJ DAGMARY</a></td>
<td align="center"><a href="?id=0">SYPIALNIA</a></td>
<td align="center"><a href="?id=4">ŁAZIENKA</a></td>
<td align="center"><a href="?id=3">STRYCH</a></td></tr>
<td align="center"><b><?php echo $obecna[6]; ?></b></td>
<td align="center"><b><?php echo $obecna[12]; ?></b></td>
<td align="center"><b><?php echo $obecna[5]; ?></b></td>
<td align="center"><b><?php echo $obecna[2]; ?></b></td>
<td align="center"><b><?php echo $obecna[0]; ?></b></td>
<td align="center"><b><?php echo $obecna[4]; ?></b></td>
<td align="center"><b><?php echo $obecna[3]; ?></b></td></tr><tr>
<td align="center"><a href="?id=1">ZEWNĄTRZ #1</a></td>
<td align="center"><a href="?id=7">ZEWNĄTRZ #2</a></td>
<td align="center"><a href="?id=11">ZEWNĄTRZ #3</a></td>
<td align="center"><a href="?id=8"> PIEC (temp) </a></td>
<td align="center"><a href="?id=10">KALORYFER</a></td>
<td align="center"><a href="?id=9">GRUNT (10 cm)</a></td>
<td align="center"><a href="?id=99"> PIEC (status) </a></td>
</tr><tr>
<td align="center"><b><?php echo $obecna[1]; ?></b></td>
<td align="center"><b><?php echo $obecna[7]; ?></b></td>
<td align="center"><b><?php echo $obecna[11]; ?></b></td>
<td align="center"><b><?php echo $obecna[8]; ?></b></td>
<td align="center"><b><?php echo $obecna[10]; ?></b></td>
<td align="center"><b><?php echo $obecna[9]; ?></b></td>
<td align="center"><b><?php echo ($ps == 1 ? '<font color="green">ON</font>' : '<font color="red">OFF</font>'); ?></b></td></tr>
</table><br>
<div id="container" style="height: 500px"></div><br>
Programy dla pieca:<br>
<?php
$dni_tygodnia = array( 'Nd', 'Pon', 'Wt', 'Śr', 'Czw', 'Pt', 'Sob' );
echo "<table rules='all' border=1 width='80%'><tr>
<td>Nazwa Programu</td>
<td>Warunki</td>
<td>Ramy czasowe</td>
<td>Dni tygodnia</td>
<td>Stan</td></tr>";
foreach(file("piec.txt") as $k => $v) {
if(strlen($v) < 10) continue;
$v = str_replace("&&","\r\n",$v);
$d = unserialize($v);
echo "<tr>
<td>".$d['name']."</td><td>";
foreach(explode("\r\n",trim($d['vars'])) as $kk => $e) {
if($kk > 0)
echo "<br>";
$e1 = explode(" ",$e);
echo $temp[($e1[0])]." ".$e1[1]." ".$e1[2]."";
}
echo "</td><td>".nl2br($d['czas'])."</td>
<td>";
foreach($d['dni'] as $kk => $vv)
if($vv == 1)
echo $dni_tygodnia[($kk)]." ";
echo "</td>
<td>".($d['status'] == 1 ? '<font color="green">Aktywny</font>' : '<font color="red">Nieaktywny</font>')."</td></tr>";
}
echo "</table><br>";
?>
<a href="strych2.jpg">Jesteś ciekaw jak wygląda stacja?</a><br>
Budowane wg. <a href="http://openwrt.pl/doku.php/usb:1wire">tego</a> poradnika.<br>
Kontakt: <a href="mailto:bbarwik@gmail.com">bbarwik@gmail.com</a><br>
</body>
</html>
http://bbarwik.com/meteo/ - stacja meteo na OpenWrt
MR3420v2 + 2xWDR3600 + Foxconn NT-435 + Foxconn NT-535.
Niestety teraz wynajmuję mieszkanie więc tymczasowo plany rozbudowy wstrzymane
