Sida 1 av 1
					
				Flera 1wire sensorer på samma graf
				Postat: 24 feb 2015, 17:34
				av 522167
				Hej.
Jag har nu lyckats via guiden på m.nu att göra en graf för temperatur. Jag har dock två sensorer en för Tillopp till radiatorer och en för retur. Hur ska jag få båda att hamna på samma graf? alltså två kurvor på samma bild...
Jag har en Raspberry Pi
			 
			
					
				Re: Flera 1wire sensorer på samma graf
				Postat: 25 feb 2015, 09:17
				av mrxswe
				
			 
			
					
				Re: Flera 1wire sensorer på samma graf
				Postat: 25 feb 2015, 22:04
				av 522167
				hrmm kikade igenom den tråden och hittade lite matnyttigt... men den andra graphen ritas inte ut...
när jag kör get_temp.sh så får jag fram båda temperaturerna utan problem... så problemet måste ligga i Graph_temp.pl...men vad?
Så här ser min graph_temp.pl ut
Kod: Markera allt
#!/usr/bin/perl
use RRDs;
my $cur_time = time();
my $start_time = $cur_time - 86400;     # set end time to 24 hours ago
RRDs::graph "/var/www/graph_temp.png",
                        "--start= $start_time",
                        "--end= $cur_time",
                        "--title= Temp ute",
                        "--height= 300",
                        "--width= 500",
                        "--vertical-label= °Celsius",
                "DEF:OutsideTemp=/home/pi/rrddata/outside_temp.rrd:outsidetemp:AVERAGE:",
                        "COMMENT:\t\t\t\tNu     Medel    Max    Min\\n",
                        "HRULE:0#FF0000",
                "LINE1:OutsideTemp#FF0000:Ute\t\t\t",
                        "GPRINT:OutsideTemp:LAST:%6.1lf",
                        "GPRINT:OutsideTemp:AVERAGE:%6.1lf",
                        "GPRINT:OutsideTemp:MAX:%6.1lf",
                        "GPRINT:OutsideTemp:MIN:%6.1lf\\n",
               "DEF:insideTemp=/home/pi/rrddata/inside_temp.rrd:insidetemp:AVERAGE:",
               "LINE3:insideTemp#0000FF:Inne\t\t",
                        "GPRINT:insideTemp:LAST:%6.1lf",
                        "GPRINT:insideTemp:AVERAGE:%6.1lf",
                        "GPRINT:insideTemp:MAX:%6.1lf",
                        "GPRINT:insideTemp:MIN:%6.1lf\\n";
my $err=RRDs::error;
if ($err) {print "problem generating the graph: $err\n";}
print "Done!\n"
och så här der grafen ut:
 
			 
			
					
				Re: Flera 1wire sensorer på samma graf
				Postat: 26 feb 2015, 05:37
				av mrxswe
				Prova så här
Kod: Markera allt
#!/usr/bin/perl
use RRDs;
my $cur_time = time();
my $start_time = $cur_time - 86400;     # set end time to 24 hours ago
RRDs::graph "/var/www/graph_temp.png",
                        "--start= $start_time",
                        "--end= $cur_time",
                        "--title= Temp ute",
                        "--height= 300",
                        "--width= 500",
                        "--vertical-label= °Celsius",
                "DEF:OutsideTemp=/home/pi/rrddata/outside_temp.rrd:outsidetemp:AVERAGE:",
                "DEF:insideTemp=/home/pi/rrddata/inside_temp.rrd:insidetemp:AVERAGE:",       
                  "COMMENT:\t\t\t\tNu     Medel    Max    Min\\n",
                        "HRULE:0#FF0000",
                "LINE1:OutsideTemp#FF0000:Ute\t\t\t",
                        "GPRINT:OutsideTemp:LAST:%6.1lf",
                        "GPRINT:OutsideTemp:AVERAGE:%6.1lf",
                        "GPRINT:OutsideTemp:MAX:%6.1lf",
                        "GPRINT:OutsideTemp:MIN:%6.1,
                 "LINE2:insideTemp#0000FF:Inne\t\t",
                        "GPRINT:insideTemp:LAST:%6.1lf",
                        "GPRINT:insideTemp:AVERAGE:%6.1lf",
                        "GPRINT:insideTemp:MAX:%6.1lf",
                        "GPRINT:insideTemp:MIN:%6.1lf\\n";
my $err=RRDs::error;
if ($err) {print "problem generating the graph: $err\n";}
print "Done!\n"
 
			 
			
					
				Re: Flera 1wire sensorer på samma graf
				Postat: 26 feb 2015, 10:50
				av 522167
				Nä den verkar inte kunna läsa min inside_temp.rrd fil.
så här ser min min create_rrd.sh ut
Kod: Markera allt
#!/bin/bash
# Script to create rrd-file 
# 24h with 2,5 min resolution
# 7d with 5 min resolution
# 1y with 10 min resolution
# 20y with 1h resolution
directory="/home/pi/rrddata/"
filename1="outside_temp.rrd"
filename2="inside_temp.rrd"
# Check i file already exists
if [ ! -f "$directory$filename" ]
then
        # File doesn't exist, create new rrd-file
        echo "Creating RRDtool DB for outside temp sensor"
        rrdtool create $directory$filename1 \
                 --step 150 \
                 DS:outsidetemp:GAUGE:300:-50:60 \
                 RRA:AVERAGE:0.5:1:576 \
                 RRA:AVERAGE:0.5:2:2016 \
                 RRA:AVERAGE:0.5:4:52560 \
                 RRA:AVERAGE:0.5:24:175200 \
                 RRA:MAX:0.5:1:5760 \
                 RRA:MAX:0.5:2:2016 \
                 RRA:MAX:0.5:4:52560 \
                 RRA:MAX:0.5:24:175200 \
                 RRA:MIN:0.5:1:5760 \
                 RRA:MIN:0.5:2:2016 \
                 RRA:MIN:0.5:4:52560 \
                 RRA:MIN:0.5:24:175200
        echo "Done!"
echo "Creating RRDtool DB for inside temp sensor"
        rrdtool create $directory$filename2 \
                 --step 150 \
                 DS:insideTemp:GAUGE:300:-50:60 \
                 RRA:AVERAGE:0.5:1:576 \
                 RRA:AVERAGE:0.5:2:2016 \
                 RRA:AVERAGE:0.5:4:52560 \
                 RRA:AVERAGE:0.5:24:175200 \
                 RRA:MAX:0.5:1:5760 \
                 RRA:MAX:0.5:2:2016 \
                 RRA:MAX:0.5:4:52560 \
                 RRA:MAX:0.5:24:175200 \
                 RRA:MIN:0.5:1:5760 \
                 RRA:MIN:0.5:2:2016 \
                 RRA:MIN:0.5:4:52560 \
                 RRA:MIN:0.5:24:175200
        echo "Done!"
else
        echo $directory$filename" already exists, delete it first."
fi
och så här ser min get_temp.sh ut:
Kod: Markera allt
#!/bin/bash
OutsideTempSensor="28.434695040000"
insideTempSensor="28.476395040000"
RRDDataDirectory="/home/pi/rrddata/"
RRDDataFile1="outside_temp.rrd"
RRDDataFile2="inside_temp.rrd"
# Get temps form OWFS
OutsideTemp=`cat /mnt/1wire/$OutsideTempSensor/temperature|sed -e s/" "//g|awk '{$1=$1 + 0.005;printf "%.2f", $1}'`
insideTemp=`cat /mnt/1wire/$insideTempSensor/temperature|sed -e s/" "//g|awk '{$1=$1 + 0.005;printf "%.2f", $1}'`
#Update RRD database
rrdtool update $RRDDataDirectory$RRDDataFile1 N:$OutsideTemp
rrdtool update $RRDDataDirectory$RRDDataFile2 N:$insideTemp
echo $OutsideTemp
echo $insideTemp
outside_temp.rrd verkar den kunna läsa...vet inte varför det är så
 
			 
			
					
				Re: Flera 1wire sensorer på samma graf
				Postat: 26 feb 2015, 18:41
				av motoz
				Du skapar ds för insideTemp med stort T, sedan då du läser av databasen i så har du litet t.
echo "Creating RRDtool DB for inside temp sensor"
        rrdtool create $directory$filename2 \
                 --step 150 \
                 DS:insideTemp:GAUGE:300:-50:60 \
                 RRA:AVERAGE:0.5:1:576 \
vs.
"DEF:insideTemp=/home/pi/rrddata/inside_temp.rrd:insidetemp:AVERAGE:",
Det hänger på detaljerna...
			 
			
					
				Re: Flera 1wire sensorer på samma graf
				Postat: 26 feb 2015, 20:48
				av 522167
				Ok det funkar nu...detaljer, detaljer...glömde bort att linux är petig på stora och små bokstäver