start.bsh
Code: Select all
startTimer("minmax_101_temp", 70);
Code: Select all
//logga min samt max per dygn till fil
//spara värden för att presentera termometer (.png)
import java.text.SimpleDateFormat;
sensor = "101";
name = "T1 - Ute";
setData("name" + sensor, name);
temp = getSensorValue(sensor); //sträng
temp_timestamp = getSensorTimestamp(sensor, true);
if (temp_timestamp != null && temp_timestamp.length() != 0) {
temp_date = temp_timestamp.substring(0, 10);
temp_time = temp_timestamp.substring(11, 16);
echo(sensor + " = " + temp_time);
}
echo(sensor + " = " + temp);
setData("temp" + sensor, temp);
setData("temp_time" + sensor, temp_time);
temp_value = Float.parseFloat(temp); //decimaltal
min = getData("min" + sensor);
min_time = getData("min_time" + sensor);
max = getData("max" + sensor);
echo("min = " + min + ", max = " + max);
max_time = getData("max_time" + sensor);
minmax_date = getData("minmax_date" + sensor);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
date = sdf.format(cal.getTime());
if (min != null && min.length() != 0) {
min_value = Float.parseFloat(min);
max_value = Float.parseFloat(max);
graf_offset = 59;
pixel_per_grad = ((float)620 - 59) / 80;
temp_graf_value = (float)409 - (temp_value * pixel_per_grad);
temp_graf_value = Math.round(temp_graf_value);
setData("temp_graf_value" + sensor, temp_graf_value);
temp_graf_text_pos = temp_graf_value - 12;
setData("temp_graf_text_pos" + sensor, temp_graf_text_pos);
graf_height_value = (float)409 - (-33 * pixel_per_grad) - temp_graf_value + 1;
graf_height_value = Math.round(graf_height_value);
setData("graf_height_value" + sensor, graf_height_value);
max_graf_value = (((float)50 - max_value) * pixel_per_grad) + graf_offset;
max_graf_value = Math.round(max_graf_value);
max_graf_value = max_graf_value - 19;
setData("max_graf_value" + sensor, max_graf_value);
max_graf_text_pos = max_graf_value - 17;
setData("max_graf_text_pos" + sensor, max_graf_text_pos);
min_graf_value = (((float)50 - min_value) * pixel_per_grad) + graf_offset;
min_graf_value = Math.round(min_graf_value);
min_graf_value = min_graf_value - 19;
setData("min_graf_value" + sensor, min_graf_value);
min_graf_text_pos = min_graf_value + 36;
setData("min_graf_text_pos" + sensor, min_graf_text_pos);
if (temp_value < min_value) {
echo("nytt värde - mintemp = " + temp_value);
min = temp_value;
min_time = temp_time;
setData("min" + sensor, temp);
setData("min_time" + sensor, temp_time);
} else if (temp_value > max_value) {
echo("nytt värde - maxtemp = " + temp_value);
max = temp_value;
max_time = temp_time;
setData("max" + sensor, temp);
setData("max_time" + sensor, temp_time);
} else {
hideOutput();
}
if (!date.equals(minmax_date)) {
//echo(date + " - " + minmax_date);
//sdf.format(cal.getTime())
if (temp_time.equals("23:59")) {temp_time="00:00";}
try{
file = "temp_minmax" + "." + sensor + ".txt";
FileWriter fw = new FileWriter(file, true);
BufferedWriter out = new BufferedWriter(fw);
out.write(minmax_date + "\t" + min + "\t" + min_time + "\t" + max + "\t" + max_time+ "\r\n");
out.close();
echo("write to file");
setData("min" + sensor, temp);
setData("min_time" + sensor, temp_time);
setData("max" + sensor, temp);
setData("max_time" + sensor, temp_time);
setData("minmax_date" + sensor, date);
echo(sensor + " min/max = " + temp + ", datum = " + date);
} catch (Exception e) {
echo("Error: " + e.getMessage());
}
}
} else {
setData("temp" + sensor, temp);
setData("temp_time" + sensor, temp_time);
setData("min" + sensor, temp);
setData("min_time" + sensor, temp_time);
setData("max" + sensor, temp);
setData("max_time" + sensor, temp_time);
setData("minmax_date" + sensor, date);
setData("name" + sensor, name);
echo(sensor + " min/max = " + temp + ", datum = " + date);
}
startTimer("minmax_101_temp", 60);
Code: Select all
<!DOCTYPE html>
<html>
<body>
<img style="position:absolute;top:5px;left:5px;z-index:10" src="/nexahome/termometer 7.png">
<IMG STYLE="position:absolute;TOP:#DATA#temp_graf_value101#px;LEFT:84px;WIDTH:17px;HEIGHT:#DATA#graf_height_value101#px;z-index:1" SRC="/nexahome/röd.png">
<IMG STYLE="position:absolute;TOP:#DATA#max_graf_value101#px;LEFT:83px;z-index:11" SRC="/nexahome/max(6).png">
<IMG STYLE="position:absolute;TOP:#DATA#min_graf_value101#px;LEFT:83px;z-index:11" SRC="/nexahome/min(6).png">
<div style="position: absolute; top: 16px; left: 55px;z-index:11">
#DATA#name101#
</div>
<div style="position: absolute; top: #DATA#max_graf_text_pos101#px; left: 120px;z-index:11">
#DATA#max101# ºC
</div>
<div style="position: absolute; top: #DATA#temp_graf_text_pos101#px; left: 120px;z-index:11">
#DATA#temp101# ºC
</div>
<div style="position: absolute; top: #DATA#min_graf_text_pos101#px; left: 120px;z-index:11">
#DATA#min101# ºC
</div>
<div style="position: absolute; top: 700px; left: 25px">
max
</div>
<div style="position: absolute; top: 700px; left: 65px">
#DATA#max101# ºC (#DATA#max_time101#)
</div>
<div style="position: absolute; top: 720px; left: 65px">
#DATA#temp101# ºC (#DATA#temp_time101#)
</div>
<div style="position: absolute; top: 740px; left: 25px">
min
</div>
<div style="position: absolute; top: 740px; left: 65px">
#DATA#min101# ºC (#DATA#min_time101#)
</div>
</body>
</html>
Code: Select all
2015-01-06 -8.3 02:41 0.5 21:11
2015-01-07 -0.4 20:18 0.4 09:29
2015-01-08 0.1 00:00 4.1 15:41
2015-01-09 -2.6 23:24 2.2 00:00
/Webserver/termometer 7.png
/Webserver/röd.png
/Webserver/max(6).png
/Webserver/min(6).png