#!/bin/sh
# Script by Georges Rosset
# to update and graph temperature and humidity
# 19.10.2004
# =============================================================
# User defined parameters
# -------------------------------------------------
logfileTemp="/usr/local/rrdtool/datas/tempLast";
logfileHumi="/usr/local/rrdtool/datas/humiLast";
rrdfileTemp="/usr/local/rrdtool/datas/temperature.rrd";
rrdfileHumi="/usr/local/rrdtool/datas/humidity.rrd";
rrdtoolbin="/usr/local/rrdtool/bin/rrdtool";
digitempbin="/root/Scripts";
htmldir="/WWW/temperature";
# =============================================================
#
cd $digitempbin; 
timenow=$(date +%s);
#
#
# =============================
# Mesure and graph temperature:
# -----------------------------
$digitempbin/digitemp -a -c.digitemprc0 -o"%.2C" | tail -n1 > $logfileTemp
value=$( tail $logfileTemp )
#
$rrdtoolbin update $rrdfileTemp N:$value
#
# Create 24hrs image 
$rrdtoolbin graph $htmldir/tempDaily.png --title="Température: variations sur 24hrs (moyenne sur 5 minutes)" \
        DEF:tempC=$rrdfileTemp:temp:LAST -v"° Celsius" -aPNG -h250 -w700 \
        LINE2:tempC#DD0000:"Température" \
        CDEF:nodat=tempC,tempC,+,UN,INF,UNKN,IF \
	HRULE:0#0000DD \
        AREA:nodat#BBBBBB:"NoData"
#
# Create 24hrs image (small)
$rrdtoolbin graph $htmldir/tempsmall.png --title="Température: variations sur 24hrs (moyenne sur 5minutes)" \
        DEF:tempC=$rrdfileTemp:temp:LAST -v"° Celsius" -aPNG -h80 -w350 \
        LINE2:tempC#DD0000:"Température" \
        CDEF:nodat=tempC,tempC,+,UN,INF,UNKN,IF \
        HRULE:0#0000DD \
        AREA:nodat#BBBBBB:"NoData"
#
let vruletime=$timenow-86400;
# Create 7 days image
$rrdtoolbin graph $htmldir/tempWeekly.png --title="Température: variations sur 7 jours (moyenne sur 1 hr)" \
	-v"° Celsius" -aPNG -h150 -w700 -u40 -s-604800 \
        DEF:tempC=$rrdfileTemp:temp:AVERAGE \
        LINE2:tempC#DD0000:"Température" \
        CDEF:nodat=tempC,tempC,+,UN,INF,UNKN,IF \
	HRULE:0#0000DD \
	VRULE:$vruletime#009900:"-24hrs" \
        AREA:nodat#BBBBBB:"NoData"
#
let vruletime=$timenow-604800;
# Create 28 days image
$rrdtoolbin graph $htmldir/tempMonthly.png --title="Température: variations sur 28 jours" \
	-v"° Celsius" -aPNG -h150 -w700 -u40 -s-2419200 \
        DEF:tempC=$rrdfileTemp:temp:AVERAGE \
        LINE2:tempC#DD0000:"Température" \
        CDEF:nodat=tempC,tempC,+,UN,INF,UNKN,IF \
	HRULE:0#0000DD \
	VRULE:$vruletime#009900:"-7 jours" \
        AREA:nodat#BBBBBB:"NoData"
#
let vruletime=$timenow-5184000;
# Create 60 days image
$rrdtoolbin graph $htmldir/temp2Monthly.png --title="Température: variations sur 60 jours (-60j < 0)" \
        -v"° Celsius" -aPNG -h150 -w700 -l0 -u40 -s-5270400 \
        DEF:tempC=$rrdfileTemp:temp:AVERAGE \
        LINE2:tempC#DD0000:"Température" \
        CDEF:nodatp=tempC,tempC,+,UN,INF,UNKN,IF \
        CDEF:nodatn=tempC,tempC,+,UN,NEGINF,UNKN,IF \
        HRULE:0#0000DD \
	VRULE:$vruletime#009900:"-60 jours" \
        AREA:nodatp#BBBBBB:"NoData" \
        AREA:nodatn#BBBBBB
#
let vruletime=$timenow-10368000;
# Create 2nd 60 days image
$rrdtoolbin graph $htmldir/temp3Monthly.png --title="Température: variations sur 60 jours (-120j < -60j)" \
        -v"° Celsius" -aPNG -h150 -w700 -l0 -u40 -s-10454400 -e-5184000 \
        DEF:tempC=$rrdfileTemp:temp:AVERAGE \
        LINE2:tempC#DD0000:"Température" \
        CDEF:nodatp=tempC,tempC,+,UN,INF,UNKN,IF \
        CDEF:nodatn=tempC,tempC,+,UN,NEGINF,UNKN,IF \
        HRULE:0#0000DD \
	VRULE:$vruletime#009900:"-120 jours" \
        AREA:nodatp#BBBBBB:"NoData" \
        AREA:nodatn#BBBBBB
#
let vruletime=$timenow-15552000;
# Create 3th 60 days image
$rrdtoolbin graph $htmldir/temp4Monthly.png --title="Température: variations sur 60 jours (-180j < -120j)" \
        -v"° Celsius" -aPNG -h150 -w700 -l0 -u40 -s-15638400 -e-10368000 \
        DEF:tempC=$rrdfileTemp:temp:AVERAGE \
        LINE2:tempC#DD0000:"Température" \
        CDEF:nodatp=tempC,tempC,+,UN,INF,UNKN,IF \
        CDEF:nodatn=tempC,tempC,+,UN,NEGINF,UNKN,IF \
        HRULE:0#0000DD \
	VRULE:$vruletime#009900:"-180 jours" \
        AREA:nodatp#BBBBBB:"NoData" \
        AREA:nodatn#BBBBBB
#
let vruletime=$timenow-20736000;
# Create 4th 60 days image
$rrdtoolbin graph $htmldir/temp5Monthly.png --title="Température: variations sur 60 jours (-240j < -180j)" \
        -v"° Celsius" -aPNG -h150 -w700 -l0 -u40 -s-20822400  -e-15552000 \
        DEF:tempC=$rrdfileTemp:temp:AVERAGE \
        LINE2:tempC#DD0000:"Température" \
        CDEF:nodatp=tempC,tempC,+,UN,INF,UNKN,IF \
        CDEF:nodatn=tempC,tempC,+,UN,NEGINF,UNKN,IF \
        HRULE:0#0000DD \
	VRULE:$vruletime#009900:"-240 jours" \
        AREA:nodatp#BBBBBB:"NoData" \
        AREA:nodatn#BBBBBB
#
# Create 1 year image
$rrdtoolbin graph $htmldir/tempYearly.png --title="Température: variations sur une année" \
        -v"° Celsius" -aPNG -h150 -w700 -u40 -r -s-31449600 \
        DEF:tempMin=$rrdfileTemp:temp:MIN \
	DEF:tempMax=$rrdfileTemp:temp:MAX \
	AREA:tempMax#EEDDAA:"Variations journalières" \
	AREA:tempMin#FFFFFF \
        LINE1:tempMax#FF0000:"Temp. max journalière" \
        LINE1:tempMin#AA0000:"Temp. min journalière" \
        CDEF:nodatp=tempMax,tempMin,+,UN,INF,UNKN,IF \
        CDEF:nodatn=tempMax,tempMin,+,UN,NEGINF,UNKN,IF \
	HRULE:0#0000DD \
        AREA:nodatp#BBBBBB:"NoData" \
        AREA:nodatn#BBBBBB
#
date > $htmldir/lastdate.txt
echo - Température: $value ° Celsius > $htmldir/lasttemp.txt
echo $value ° Celsius > /WWW/temp.txt
#
#
cut -d. -f1 $logfileTemp > /home/bb/bb19c/ext/tempLast4bb
#
#
# =============================
# Mesure and graph humidity:
# -----------------------------
#
$digitempbin/digitemp -a -c.digitemprc1 -H"%h" | tail -n1 > $logfileHumi
value=$( tail $logfileHumi )
#
$rrdtoolbin update $rrdfileHumi N:-30:$value
#
# Create 24hrs image 
$rrdtoolbin graph $htmldir/humiDaily.png --title="Humidité relative: variations sur 24hrs (moyenne sur 5 minutes)" \
	-v"% relatif" -l0 -u100 -r -aPNG -h250 -w700 \
        DEF:humidity=$rrdfileHumi:humi:LAST \
        LINE2:humidity#0000DD:"Humidité relative" \
        CDEF:nodat=humidity,humidity,+,UN,INF,UNKN,IF \
        AREA:nodat#BBBBBB:"NoData"
#
# Create 24hrs image (small)
$rrdtoolbin graph $htmldir/humismall.png --title="Humidité relative: variations sur 24hrs (moyenne sur 5minutes)" \
	-v"% relatif" -l0 -u100 -r -aPNG -h80 -w350 \
        DEF:humidity=$rrdfileHumi:humi:LAST \
        LINE2:humidity#0000DD:"Humidité relative" \
        CDEF:nodat=humidity,humidity,+,UN,INF,UNKN,IF \
        AREA:nodat#BBBBBB:"NoData"
#
let vruletime=$timenow-86400;
# Create 7 days image
$rrdtoolbin graph $htmldir/humiWeekly.png --title="Humidité relative: variations sur 7 jours (moyenne sur 1 hr)" \
 	-v"% relatif" -l0 -u100 -r -aPNG -h150 -w700 -s-604800 \
        DEF:humidity=$rrdfileHumi:humi:AVERAGE \
        LINE2:humidity#0000DD:"Humidité relative" \
        CDEF:nodat=humidity,humidity,+,UN,INF,UNKN,IF \
        VRULE:$vruletime#009900:"-24hrs" \
        AREA:nodat#BBBBBB:"NoData"
#
let vruletime=$timenow-604800;
# Create 28 days image
$rrdtoolbin graph $htmldir/humiMonthly.png --title="Humidité relative: variations sur 28 jours" \
        -v"% relatif" -l0 -u100 -r -aPNG -h150 -w700 -s-2419200 \
        DEF:humidity=$rrdfileHumi:humi:AVERAGE \
        LINE2:humidity#0000DD:"Humidité relative" \
        CDEF:nodat=humidity,humidity,+,UN,INF,UNKN,IF \
        VRULE:$vruletime#009900:"-7 jours" \
        AREA:nodat#BBBBBB:"NoData"
#
let vruletime=$timenow-5184000;
# Create 60 days image
$rrdtoolbin graph $htmldir/humi2Monthly.png --title="Humidité relative: variations sur 60 jours (-60j < 0)" \
        -v"% relatif" -aPNG -h150 -w700 -l0 -u100 -r -s-5270400 \
        DEF:humidity=$rrdfileHumi:humi:AVERAGE \
        LINE2:humidity#0000DD:"Humidité relative" \
        CDEF:nodatp=humidity,humidity,+,UN,INF,UNKN,IF \
        CDEF:nodatn=humidity,humidity,+,UN,NEGINF,UNKN,IF \
        HRULE:0#0000DD \
        VRULE:$vruletime#009900:"-60 jours" \
        AREA:nodatp#BBBBBB:"NoData" \
        AREA:nodatn#BBBBBB
#
let vruletime=$timenow-10368000;
# Create 2nd 60 days image
$rrdtoolbin graph $htmldir/humi3Monthly.png --title="Humidité relative: variations sur 60 jours (-120j < -60j)" \
        -v"% relatif" -aPNG -h150 -w700 -l0 -u100 -r  -s-10454400 -e-5184000 \
        DEF:humidity=$rrdfileHumi:humi:AVERAGE \
        LINE2:humidity#0000DD:"Humidité relative" \
        CDEF:nodatp=humidity,humidity,+,UN,INF,UNKN,IF \
        CDEF:nodatn=humidity,humidity,+,UN,NEGINF,UNKN,IF \
        HRULE:0#0000DD \
        VRULE:$vruletime#009900:"-60 jours" \
        AREA:nodatp#BBBBBB:"NoData" \
        AREA:nodatn#BBBBBB
#
let vruletime=$timenow-15552000;
# Create 3th 60 days image
$rrdtoolbin graph $htmldir/humi4Monthly.png --title="Humidité relative: variations sur 60 jours (-180j < -120j)" \
        -v"% relatif" -aPNG -h150 -w700 -l0 -u100 -s-15638400 -e-10368000 \
        DEF:humidity=$rrdfileHumi:humi:AVERAGE \
        LINE2:humidity#0000DD:"Humidité relative" \
        CDEF:nodatp=humidity,humidity,+,UN,INF,UNKN,IF \
        CDEF:nodatn=humidity,humidity,+,UN,NEGINF,UNKN,IF \
        HRULE:0#0000DD \
        VRULE:$vruletime#009900:"-60 jours" \
        AREA:nodatp#BBBBBB:"NoData" \
        AREA:nodatn#BBBBBB
#
let vruletime=$timenow-20736000;
# Create 4th 60 days image
$rrdtoolbin graph $htmldir/humi5Monthly.png --title="Humidité relative: variations sur 60 jours (-240j < -180j)" \
        -v"% relatif" -aPNG -h150 -w700 -l0 -u100 -r  -s-20822400  -e-15552000 \
        DEF:humidity=$rrdfileHumi:humi:AVERAGE \
        LINE2:humidity#0000DD:"Humidité relative" \
        CDEF:nodatp=humidity,humidity,+,UN,INF,UNKN,IF \
        CDEF:nodatn=humidity,humidity,+,UN,NEGINF,UNKN,IF \
        HRULE:0#0000DD \
        VRULE:$vruletime#009900:"-60 jours" \
        AREA:nodatp#BBBBBB:"NoData" \
        AREA:nodatn#BBBBBB
#
# Create 1 year image
$rrdtoolbin graph $htmldir/humiYearly.png --title="Humidité relative: variations sur une année" \
        -v"% relatif" -aPNG -h150 -w700 -u100 -l0 -r -s-31449600 \
        DEF:humiMin=$rrdfileHumi:humi:MIN \
        DEF:humiMax=$rrdfileHumi:humi:MAX \
        AREA:humiMax#EEDDAA:"Variations journalières" \
        AREA:humiMin#FFFFFF \
        LINE1:humiMax#0000FF:"Humidité max journalière" \
        LINE1:humiMin#0000AA:"Humidité min journalière" \
        CDEF:nodatp=humiMax,humiMin,+,UN,INF,UNKN,IF \
        CDEF:nodatn=humiMax,humiMin,+,UN,NEGINF,UNKN,IF \
        HRULE:0#0000DD \
        AREA:nodatp#BBBBBB:"NoData" \
        AREA:nodatn#BBBBBB
#

echo - Humidité relative: $value % > $htmldir/lasthumi.txt
echo $value % > /WWW/humi.txt
#
cd -
# End of script
# =============================================================


