Hjälp med två temperaturer / grafer

RRDTool är en Linuxmjukvara som kan användas för att lagra data i Round-Robin Databaser för att sedan generera grafer utifrån den lagrade datan.

Moderator: elf98

Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
ante
Tar hemautomation på allvar
Inlägg: 71
Blev medlem: 09 nov 2012, 19:06
Ort: Stockholm

Hjälp med två temperaturer / grafer

Inlägg av ante » 18 nov 2013, 21:45

Ja vad säger man, jag får inte till det med två temperaturer / grafer, det är bara att erkänna :oops: . Fungerar utmärkt med en graf efter installation mha wikin. Har läst otaliga trådar men har inte lyckats hitta vad jag gör fel.

bifogar create_rrd.sh, get_temp.sh och graph_temp.pl

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/"
RRDDataFileOut="outside_temp.rrd"
RRDDataFileIn="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$filename \
                 --step 150 \
                 DS:outsidetemp:GAUGE:300:-50:60 \
                 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

Kod: Markera allt

#!/bin/bash

OutsideTempSensor="10.27AD18020800"
InsideTempSensor="10.407D18020800"
RRDDataDirectory="/home/pi/rrddata/"
RRDDataFileOut="outside_temp.rrd"
RRDDataFileIn="inside_temp.rrd"


# Get temps form OWFS
OutsideTemp=`cat /mnt/1wire/$OutsideTempSensor/temperature|sed -e s/" "//g|awk $
sleep 2;
IndoorTemp=`cat /mnt/1wire/$InsideTempSensor/temperature|sed -e s/" "//g|awk '{$


#Update RRD database
rrdtool update $RRDDataDirectory$RRDDataFile N:$OutsideTemp
sleep 5;
rrdtool update $RRDDataDirectory$RRDDataFileIn N:$InsideTemp
echo $OutsideTemp
echo $InsideTemp

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= °C",
                "DEF:OutsideTemp=/home/pi/rrddata/outside_temp.rrd:outsidetemp:$
                "DEF:InsideTemp=/home/pi/rrddata/inside_temp.rrd:insidetemp:AVE$
                        "COMMENT:\t\t\t\tNu     Medel    Max    Min\\n",
                        "HRULE:0#0000FF",
              "LINE2:OutsideTemp#0000FF: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";
                        "HRULE:18#FFFF00",
              "LINE2:InsideTemp#00FF00: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"

Användarvisningsbild
NiclasF
Tar hemautomation på allvar
Inlägg: 160
Blev medlem: 24 sep 2011, 00:55
Ort: Stockholm

Re: Hjälp med två temperaturer / grafer

Inlägg av NiclasF » 18 nov 2013, 22:03

I create_rrd.sh så definierar du ju aldrig $ filename.

Sent from my GT-I9305 using Tapatalk

Användarvisningsbild
NiclasF
Tar hemautomation på allvar
Inlägg: 160
Blev medlem: 24 sep 2011, 00:55
Ort: Stockholm

Re: Hjälp med två temperaturer / grafer

Inlägg av NiclasF » 18 nov 2013, 22:06

Liknande fel i get_temp.sh. Du uppdaterar aldrig RRDDataFileOut, bara RRDDataFile.

Sent from my GT-I9305 using Tapatalk

ante
Tar hemautomation på allvar
Inlägg: 71
Blev medlem: 09 nov 2012, 19:06
Ort: Stockholm

Re: Hjälp med två temperaturer / grafer

Inlägg av ante » 18 nov 2013, 22:08

NiclasF skrev:I create_rrd.sh så definierar du ju aldrig $ filename.

Sent from my GT-I9305 using Tapatalk
Okej,

Kan man då skriva två filename?
Så här?

filename="outside_temp.rrd"
filename="inside_temp.rrd"

Tack för snabbt svar
Förresten fin hemsida du har, eller är inte hemkoll.nu din sida?

Användarvisningsbild
CirruZZ
Master Moderator
Inlägg: 1619
Blev medlem: 13 feb 2008, 16:46
Ort: Ystad
Kontakt:

Re: Hjälp med två temperaturer / grafer

Inlägg av CirruZZ » 18 nov 2013, 22:15

Hur ser filerna ut nu?
Projekt tråd | Blogg | Hemautomation
Rapporterar för : Ystad & Duved

ante
Tar hemautomation på allvar
Inlägg: 71
Blev medlem: 09 nov 2012, 19:06
Ort: Stockholm

Re: Hjälp med två temperaturer / grafer

Inlägg av ante » 18 nov 2013, 22:16

CirruZZ skrev:Hur ser filerna ut nu?
Öööööhhh, vilka filer? :oops:

Användarvisningsbild
NiclasF
Tar hemautomation på allvar
Inlägg: 160
Blev medlem: 24 sep 2011, 00:55
Ort: Stockholm

Re: Hjälp med två temperaturer / grafer

Inlägg av NiclasF » 18 nov 2013, 22:17

Inte min sida. Min sida dyker upp här inom kort, http://foogadget.tictail.com

Jag tycker att du ska ha en rrd per sensor. Gör om create_rrd.sh till att göra det.

Uppdatera sedan get_temp.sh till att uppdatera även RRDDataFileOut.

Sen skulle det kunna fungera.



Sent from my GT-I9305 using Tapatalk

Användarvisningsbild
NiclasF
Tar hemautomation på allvar
Inlägg: 160
Blev medlem: 24 sep 2011, 00:55
Ort: Stockholm

Re: Hjälp med två temperaturer / grafer

Inlägg av NiclasF » 18 nov 2013, 22:31

Prova det här scriptet för att skapa databaserna,
OBS. Jag har inte testat detta själv.

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/"
RRDDataFileOut="outside_temp.rrd"
RRDDataFileIn="inside_temp.rrd"

# Check if file already exists
if [ ! -f "$directory$RRDDataFileOut" ]
then
        # File doesn't exist, create new rrd-file
        echo "Creating RRDtool DB for outside temp sensor"
        rrdtool create $directory$RRDDataFileOut \
                 --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 "Out Done!"
else
        echo $directory$RRDDataFileOut" already exists, delete it first."
fi

# Check if file already exists
if [ ! -f "$directory$RRDDataFileIn" ]
then
        # File doesn't exist, create new rrd-file
        echo "Creating RRDtool DB for inside temp sensor"
        rrdtool create $directory$RRDDataFileIn \
                 --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 "In Done!"
else
        echo $directory$RRDDataFileIn" already exists, delete it first."
fi

ante
Tar hemautomation på allvar
Inlägg: 71
Blev medlem: 09 nov 2012, 19:06
Ort: Stockholm

Re: Hjälp med två temperaturer / grafer

Inlägg av ante » 18 nov 2013, 22:32

NiclasF skrev:Inte min sida. Min sida dyker upp här inom kort, http://foogadget.tictail.com
Jag tycker att du ska ha en rrd per sensor. Gör om create_rrd.sh till att göra det.
Uppdatera sedan get_temp.sh till att uppdatera även RRDDataFileOut.
Sen skulle det kunna fungera.
Sent from my GT-I9305 using Tapatalk
Hmm, hur göra detta? Kan jag dubbla det jag har i create_rrd.sh och sedan ändra outside till inside osv?

Användarvisningsbild
NiclasF
Tar hemautomation på allvar
Inlägg: 160
Blev medlem: 24 sep 2011, 00:55
Ort: Stockholm

Re: Hjälp med två temperaturer / grafer

Inlägg av NiclasF » 18 nov 2013, 22:33

Testa sedan den här get_temp.sh

Kod: Markera allt

#!/bin/bash

OutsideTempSensor="10.27AD18020800"
InsideTempSensor="10.407D18020800"
RRDDataDirectory="/home/pi/rrddata/"
RRDDataFileOut="outside_temp.rrd"
RRDDataFileIn="inside_temp.rrd"


# Get temps form OWFS
OutsideTemp=`cat /mnt/1wire/$OutsideTempSensor/temperature|sed -e s/" "//g|awk $
sleep 2;
IndoorTemp=`cat /mnt/1wire/$InsideTempSensor/temperature|sed -e s/" "//g|awk '{$


#Update RRD database
rrdtool update $RRDDataDirectory$RRDDataFileOut N:$OutsideTemp
sleep 5;
rrdtool update $RRDDataDirectory$RRDDataFileIn N:$InsideTemp
echo $OutsideTemp
echo $InsideTemp

Användarvisningsbild
NiclasF
Tar hemautomation på allvar
Inlägg: 160
Blev medlem: 24 sep 2011, 00:55
Ort: Stockholm

Re: Hjälp med två temperaturer / grafer

Inlägg av NiclasF » 18 nov 2013, 22:37

Och sista scriptet som genererar grafer graph_temp.sh

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= °C",
                "DEF:OutsideTemp=/home/pi/rrddata/outside_temp.rrd:outsidetemp:
                "DEF:InsideTemp=/home/pi/rrddata/inside_temp.rrd:insidetemp:
                        "COMMENT:\t\t\t\tNu     Medel    Max    Min\\n",
                        "HRULE:0#0000FF",
              "LINE2:OutsideTemp#0000FF: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";
                        "HRULE:18#FFFF00",
              "LINE2:InsideTemp#00FF00: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"

ante
Tar hemautomation på allvar
Inlägg: 71
Blev medlem: 09 nov 2012, 19:06
Ort: Stockholm

Re: Hjälp med två temperaturer / grafer

Inlägg av ante » 18 nov 2013, 22:44

Är det nått mer jag ska göra? för det funkar inte?

Kod: Markera allt

pi@raspberrypi ~/rrddata $ ls -al
total 16476
drwxr-xr-x 2 root root    4096 Nov 18 20:45 .
drwxr-xr-x 6 pi   pi      4096 Nov 18 09:43 ..
-rwxr-xr-x 1 root root    2054 Nov 18 20:35 create_rrd.sh
-rw-r--r-- 1 root root 5614104 Nov 18 20:23 DS:outsidetemp:GAUGE:300:-50:60
-rw-r--r-- 1 root root 5614104 Nov 18 20:43 inside_temp.rrd
-rw-r--r-- 1 root root 5614104 Nov 18 20:38 outside_temp.rrd
Konstig fil den där DS:......

Användarvisningsbild
NiclasF
Tar hemautomation på allvar
Inlägg: 160
Blev medlem: 24 sep 2011, 00:55
Ort: Stockholm

Re: Hjälp med två temperaturer / grafer

Inlägg av NiclasF » 18 nov 2013, 23:07

Ta bort alla filer i rrddata och börja om.

Sent from my GT-I9305 using Tapatalk

Användarvisningsbild
NiclasF
Tar hemautomation på allvar
Inlägg: 160
Blev medlem: 24 sep 2011, 00:55
Ort: Stockholm

Re: Hjälp med två temperaturer / grafer

Inlägg av NiclasF » 19 nov 2013, 00:12

Anledningen till att du ska ta bort filerna är att jag kan se att det är olika tidsstämplar på alla filerna. Det ska åtminstone vara samma datumstämpel på rrd-filerna om du kör mitt script för att skapa rrd-databaserna, annars är det något konstigt.

Kopiera scriptet för att skapa databasen och lägg det i en ny fil som heter create_rrd.sh och gör det exekverbart,

Kod: Markera allt

$ chmod 755 create_rrd.sh
Kör sedan skriptet,

Kod: Markera allt

$ ./create_rrd.sh

ante
Tar hemautomation på allvar
Inlägg: 71
Blev medlem: 09 nov 2012, 19:06
Ort: Stockholm

Re: Hjälp med två temperaturer / grafer

Inlägg av ante » 19 nov 2013, 14:38

Fixat, tyvärr funkar det inte iaf

Nu vart de ordning i rrddata

Kod: Markera allt

total 10988
drwxr-xr-x 2 root root    4096 Nov 19 12:26 .
drwxr-xr-x 6 pi   pi      4096 Nov 18 09:43 ..
-rwxr-xr-x 1 root root    2054 Nov 19 12:25 create_rrd.sh
-rw-r--r-- 1 root root 5614104 Nov 19 12:26 inside_temp.rrd
-rw-r--r-- 1 root root 5614104 Nov 19 12:26 outside_temp.rrd
pi@raspberrypi ~/rrddata $

Skriv svar