Zmodyfikowałem trochę skrypt bbarwika, tak że zapisuje dokładnie te same informacje do pliku o nazwie jak numer seryjny czujnika z rozszerzeniem .txt
Potrzeba zmiany wynika z tego, że jak dodaje kolejny czujnik to "rozjeżdżają" się numery id.
Niestety dalej nie mogę sobie poradzić z wyciąganiem tych danych z pliku - wynika to z nieznajomości php.
Napiszcie proszę co zmodyfikować żeby skrypt czytał dane z plików gdzie id=SN czujnika.
pliki z danymi mają np. nazwy:
28B6AECC00000011.txt
Tablicy o takiej długości się nie da zadeklarować...
Może jakieś mapowania wewnętrzne z sn na ID np. sortując po SN rosnąco...
<?php
$temp = array(); $obecna = array();
// Trzeba uzupelnic nazwy
// Jeszcze tam na dole trzeba tez pozmieniac
$temp[0] = "Sypialnia";
$temp[1] = "Salon";
$temp[2] = "PokĂłj Martynki";
$temp[3] = "Na ZewnÄ…trz";
//$temp[4] = "Ĺazienka";
//$temp[5] = "PokĂłj Bartosza";
//$temp[6] = "Salon";
//$temp[7] = "Zewnątrz (cień)";
// obecna temp
$f = file_get_contents("/root/meteo.txt");
$e = explode("Sensor ",$f); unset($e[0]);
foreach($e as $v) {
$e1 = explode(" ",$v);
$id = $e1[0];
$t = $e1[2];
$obecna[($id)] = "".$t."°C";
}
if(!isset($_GET['id']))
$_GET['id'] = 6;
?>
<!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() {
$.getJSON('data.php?id=<?php echo $_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: 'Temperatura - <?php echo $temp[($_GET['id'])]; ?>'
},
yAxis: {
title: {
text: 'Temperatura ( °C )'
}
},
series: [{
name: 'Temperatura',
data: data,
type: 'spline',
shadow : true,
tooltip: {
valueDecimals: 2,
valueSuffix: ' °C'
}
}]
});
});
});
</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</b>
<table rules="all" border=1 width="80%"><tr width="80%">
<td align="center"><a href="?id=28B6AECC00000011">SALON</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>
<td align="center"><a href="?id=1">ZEWNĄTRZ (słońce)</a></td>
<td align="center"><a href="?id=7">ZEWNĄTRZ (cień)</a></td></tr>
<td align="center"><b><?php echo $obecna[6]; ?></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>
<td align="center"><b><?php echo $obecna[1]; ?></b></td>
<td align="center"><b><?php echo $obecna[7]; ?></b></td>
</table><br>
<div id="container" style="height: 500px"></div>
</body>
</html>