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