Sida 1 av 1

Graf slutar ritas vid 60 grader

Postat: 01 maj 2015, 19:14
av 522167
Hej.

Har satt in en temp sensor (som klarar +125 C) i min bastu. Sensorn registrerar tempen som jag skriver ut i en txt-fil men grafen slutar vid 60 grader. När sedan bastun svalnat och går under 60 så börjar den att rita igen. förmodar att det har med min .pl fil att göra, men vad? så här ser den 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 "/home/pi/rrddata/bastu.png",   
			"--start= $start_time",
			"--end= $cur_time",
			"--title= Bastutemperatur",
			"--height= 300",
			"--width= 500",
			"--vertical-label= °C",
	      "DEF:BastuTemp=/home/pi/rrddata/bastu.rrd:BastuTemp:AVERAGE",                          
			"COMMENT:\t\t\t\tNu     Medel    Max    Min\\n",
			"HRULE:0#0000FF",         
	      "LINE2:BastuTemp#0000FF:Temperatur\t\t\t",    
			"GPRINT:BastuTemp:LAST:%6.1lf",
			"GPRINT:BastuTemp:AVERAGE:%6.1lf",
			"GPRINT:BastuTemp:MAX:%6.1lf",
			"GPRINT:BastuTemp:MIN:%6.1lf\\n";

my $err=RRDs::error;
if ($err) {print "problem generating the graph: $err\n";}

print "Done!\n"
Finns det någon gräns på grafen som stannar på 60 grader?

Re: Graf slutar ritas vid 60 grader

Postat: 01 maj 2015, 19:52
av motoz
Du har antagligen skapat databasen bastu.rrd med maxvärdet 60 för BastuTemp.
Du kan köra rrdtool info bastu.rrd så ser du vad som är min och max och annat, maxvärdet kan sedan ändras med rrdtool tune så slipper du göra en ny databas.

Re: Graf slutar ritas vid 60 grader

Postat: 01 maj 2015, 20:13
av 522167
så här ser min fil som skapar rrd filen:

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/"
filename="bastu.rrd"

# Check i file already exists
if [ ! -f "$directory$filename" ]
then
        # File doesn't exist, create new rrd-file
        echo "Creating RRDtool DB for bastu temp sensor"
        rrdtool create $directory$filename \
                 --step 150 \
                 DS:BastuTemp: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
Vad ska jag ändra så det blir max 100?

Re: Graf slutar ritas vid 60 grader

Postat: 01 maj 2015, 20:44
av NiclasF
Du ska ändra raden,

Kod: Markera allt

DS:BastuTemp:GAUGE:300:-50:60
till

Kod: Markera allt

DS:BastuTemp:GAUGE:300:0:160
Nya databasen kommer alltså att kunna hantera temperaturer från 0-160C vilket nästan är rimligt :)
Men som du märkt är det dumt att sätta för snåla gränser från början, så det är lika bra att ta i.

Du kommer att regenerera RRD-databasen, så all historik försvinner. Du kanske visste det redan.
Dock kan man kanske exportera data från nuvarande databas, sedan skapa den nya databasen, och sist importera in gammal data in i den nya databasen.

Re: Graf slutar ritas vid 60 grader

Postat: 01 maj 2015, 23:00
av 522167
Tack för svaret.
Du kommer att regenerera RRD-databasen, så all historik försvinner. Du kanske visste det redan.
Dock kan man kanske exportera data från nuvarande databas, sedan skapa den nya databasen, och sist importera in gammal data in i den nya databasen.
historiken är obefintlig eftersom jag bara testkör sensorn just nu. Ska prova nästa gång jag bastar...typ i morgon :)

Re: Graf slutar ritas vid 60 grader

Postat: 02 maj 2015, 10:11
av motoz
"rrdtool tune" kan ändra min och maxvärdet direkt i en befintlig databas utan att exportera och importera.
Se

Kod: Markera allt

man rrdtune
för alla alternativ. Det är ju inte nödvändigt nu men kan ju vara bra att veta om något behöver ändras då databasen redan innehåller data.

Borde vara såhär:

Kod: Markera allt

rrdtool tune bastu.rrd --maximum BastuTemp:160
För att ändra maxvärdet på "ds-name" BastuTemp till 160 i filen bastu.rrd

Man kan också lämna min och maxvärde odefinierat då man skapar databasen så accepteras sedan alla värden. Fördelen med att definiera ett maxvärde är att inget över det accepteras vilket är bra om man vet vad som är största rimliga värdet, kommer det ett större så är det alltså ett felaktigt värde som man inte vill spara i databasen. Får man in ett värde på hundra miljoner så kommer ju resten av data att bli ett enda streck längs med x-axeln då man plottar en graf.

Kod: Markera allt

DS:BastuTemp:GAUGE:300:U:U

Re: Graf slutar ritas vid 60 grader

Postat: 02 maj 2015, 11:03
av 522167
Tack, är bra att veta... nu vet jag att min bastu aldrig går över 95 grader så jag lägger in ett max på 100.