Home‎ > ‎Home Automation Project‎ > ‎

Code - Create Graphs

#!/usr/bin/perl

use RRDs;

use POSIX qw(strftime); 
my $displaydate= strftime('%Y%m%d', localtime);

my $cur_time = time();
my $start_time = $cur_time - 86400;     # set end time to 24 hours ago

# print $displaydate;
#$namn = $displaydate . "pump.png";
#print $namn;

######## 2 graphs Heating pump                
RRDs::graph "/var/www/graph/" . $displaydate . "_pump.png",   
"--start= $start_time",
"--end= $cur_time",
"--title= Framledning & Retur",
"--height= 300",
"--width= 400",
# "--upper-limit=35",
# "--lower-limit=25",
"--rigid",
"--vertical-label= °C",
     "DEF:Temp_2=/home/jl/rrddata/temp_1.rrd:1:AVERAGE",                          
              "DEF:Temp_1=/home/jl/rrddata/temp_2.rrd:1:AVERAGE",
"COMMENT:\t\t\t\tNu     Medel    Max    Min\\n",
"HRULE:0#0000FF",         
     "LINE2:Temp_1#FF0000:Framledning\t\t",    
"GPRINT:Temp_1:LAST:%6.1lf",
"GPRINT:Temp_1:AVERAGE:%6.1lf",
"GPRINT:Temp_1:MAX:%6.1lf",
"GPRINT:Temp_1:MIN:%6.1lf\\n",
              "LINE2:Temp_2#0000FF:Retur\t\t\t",
                        "GPRINT:Temp_2:LAST:%6.1lf",
                        "GPRINT:Temp_2:AVERAGE:%6.1lf",
                        "GPRINT:Temp_2:MAX:%6.1lf",
                        "GPRINT:Temp_2:MIN:%6.1lf\\n";



############ Power consumption
my $cur_time = time();
my $start_time = $cur_time - 86400;     # set end time to 24 hours ago

RRDs::graph "/var/www/graph/" . $displaydate . "_power.png",
"--slope-mode",
    "--start= $start_time",
    "--end= $cur_time",
    "--width= 600",
    "--height= 400",
    "--title= El Thermia VP",
    "--vertical-label= Watt",
# "--lower-limit= 0",
   "DEF:energi=/home/jl/rrddata/el_vp.rrd:energi:AVERAGE",
   "CDEF:W=energi,3600,*",
   "AREA:W#AAAAee",
   "LINE3:W#000000",
   "CDEF:energiK=energi,1000,/",
   "VDEF:value_sum=energiK,TOTAL",
   "COMMENT:Forbrukad Mangd EL ",
   "GPRINT:value_sum:%0.2lf kWh\\n",
   "COMMENT:Momentanforbrukning\\n",
   "COMMENT:Min\tMedel\tMax\tJust nu\\n",
   "GPRINT:W:MIN:%0.2lf%sW",
   "GPRINT:W:AVERAGE:%0.2lf%sW",
   "GPRINT:W:MAX:%0.2lf%sW",
   "GPRINT:W:LAST:%0.2lf%sW\\n";



########### GV Hallen
my $cur_time = time();
my $start_time = $cur_time - 86400;     # set end time to 24 hours ago

RRDs::graph "/var/www/graph/" . $displaydate . "_gvhall.png",
                        "--start= $start_time",
                        "--end= $cur_time",
                        "--title= Framledning & Retur",
                        "--height= 300",
                        "--width= 400",
#                       "--upper-limit=35",
#                       "--lower-limit=25",
                        "--rigid",
                        "--vertical-label= °C",
              "DEF:Temp_1=/home/jl/rrddata/temp_gvhall.rrd:FL:AVERAGE",
              "DEF:Temp_2=/home/jl/rrddata/temp_gvhall.rrd:RL:AVERAGE",
                        "COMMENT:\t\t\t\tNu     Medel    Max    Min\\n",
                        "HRULE:0#0000FF",
              "LINE2:Temp_1#FF0000:Framledning\t\t",
                        "GPRINT:Temp_1:LAST:%6.1lf",
                        "GPRINT:Temp_1:AVERAGE:%6.1lf",
                        "GPRINT:Temp_1:MAX:%6.1lf",
                        "GPRINT:Temp_1:MIN:%6.1lf\\n",
              "LINE2:Temp_2#0000FF:Retur\t\t\t",
                        "GPRINT:Temp_2:LAST:%6.1lf",
                        "GPRINT:Temp_2:AVERAGE:%6.1lf",
                        "GPRINT:Temp_2:MAX:%6.1lf",
                        "GPRINT:Temp_2:MIN:%6.1lf\\n";

############ Datarum
RRDs::graph "/var/www/graph/" . $displaydate . "_gvdatarum.png",
                        "--start= $start_time",
                        "--end= $cur_time",
                        "--title= Framledning & Retur",
                        "--height= 300",
                        "--width= 400",
#                       "--upper-limit=35",
#                       "--lower-limit=25",
                        "--rigid",
                        "--vertical-label= °C",
              "DEF:Temp_1=/home/jl/rrddata/temp_gvdatarum.rrd:FL:AVERAGE",
              "DEF:Temp_2=/home/jl/rrddata/temp_gvdatarum.rrd:RL:AVERAGE",
                        "COMMENT:\t\t\t\tNu     Medel    Max    Min\\n",
                        "HRULE:0#0000FF",
              "LINE2:Temp_1#FF0000:Framledning\t\t",
                        "GPRINT:Temp_1:LAST:%6.1lf",
                        "GPRINT:Temp_1:AVERAGE:%6.1lf",
                        "GPRINT:Temp_1:MAX:%6.1lf",
                        "GPRINT:Temp_1:MIN:%6.1lf\\n",
              "LINE2:Temp_2#0000FF:Retur\t\t\t",
                        "GPRINT:Temp_2:LAST:%6.1lf",
                        "GPRINT:Temp_2:AVERAGE:%6.1lf",
                        "GPRINT:Temp_2:MAX:%6.1lf",
                        "GPRINT:Temp_2:MIN:%6.1lf\\n";


############ Lightsensor
my $cur_time = time();
my $start_time = $cur_time - 64800;     # set end time to 12 hours 6 hours from now
my $end_time = $cur_time - 21600;


RRDs::graph "/var/www/graph/" . $displaydate . "_light.png",
                        "--start= $start_time",
                        "--end= $end_time",
                        "--title= Outdoor Lightning $displaydate",
                        "--height= 300",
                        "--width= 600",
#                       "--upper-limit=35",
#                       "--lower-limit=25",
                        "--rigid",
#                       "--vertical-label= °C",
              "DEF:value=/home/jl/rrddata/light.rrd:light:AVERAGE",
              "CDEF:Light=value,1000,*",
                        "COMMENT:\t\t  Nu      Max         Min\\n",
                        "HRULE:0#0000FF",
              "LINE2:Light#FF0000:Light\t\t",
                        "GPRINT:Light:LAST:%3.2lf",
#                        "GPRINT:Light:AVERAGE:%6.1lf",
                        "GPRINT:Light:MAX:%6.1lf",
                        "GPRINT:Light:MIN:%6.1lf\\n";


Comments