Sida 1 av 1
Hjälp skapa .rrd databas för loggning av energiförbrukning.
Postat: 12 okt 2014, 22:18
av popunonkok
Jag har skapat ett antal .rrd filer för att logga temperaturen med 1-wire sensorer.
Jag har använt koden från guiden på m.nu.
Denna:
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/anders/rrddata/"
filename="outside_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 \
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
Nu undrar jag om jag kan använda samma script för att skapa en databas till min energilogger som är en räknare.
Jag har förstått att jag ska använda Counter istället för Avarage när jag sen ska plotta grafen men jag undrar alltså om själva skapandet av databasen.
MVH Peter
Re: Hjälp skapa .rrd databas för loggning av energiförbrukni
Postat: 14 okt 2014, 09:07
av elf98
Här finns en färdig guide för att mäta energi med owfs och rrdtool:
http://wiki.m.nu/index.php/M%C3%A4ta_el ... ch_RRDTool
Re: Hjälp skapa .rrd databas för loggning av energiförbrukni
Postat: 15 okt 2014, 20:57
av popunonkok
Tack.
Jag gjorde som det stod i guiden och försökte ta reda på hur länge datan sparades.
Jag har nu skalat ner den filen från den andra (din?) guiden och försökt göra så att den ska passa på energimätningen.
Anledningen till att jag inte ville ta exemplet du länkade till var att jag vill att energi ska sparas med samma upplösning och samma intervaller som mina tempsensorer.
Så, nu uppdaterar jag frågan.
Ser detta ut som en OK databas att utgå ifrån, ser ni några fel?
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="energi.rrd"
# Check i file already exists
if [ ! -f "$directory$filename" ]
then
# File doesn't exist, create new rrd-file
rrdtool create $directory$filename \
--step 150 \
DS:energi:COUNTER: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
echo "Done!"
else
echo $directory$filename" already exists, delete it first."
fi
MVH Peter F
Re: Hjälp skapa .rrd databas för loggning av energiförbrukni
Postat: 15 okt 2014, 21:29
av elf98
step är det intervall du vill lägga till data med. 150 sekunder/2,5 minuter är krångligt iaf på Linux. Normalt sätter man det värdet till en jämn multiple av 60 så det enkelt går att lägga till insamlingsscript i crontab. med 150sekunder får du skriva ett script som lägger till data, vilar 150 sekunder och sedan repeterar.
Heartbeaten (300) sätter man oftast till en jämn multiple av step + ev ett litet påslag. Du kan aldrig ha ett negativt räknarvärde, så -50 fyller ingen funktion. Mer relevant är att sätta 0 och sedan lagom högt så du filtrerar bort spikar automatiskt. Vad som är lagom högt beror helt på vad du har för elmätare och förbrukning
Det är väldigt liten skillnad mellan RRAernas upplösning. Vad ska du göra med värdena? Du sparar 576 värden med 2,5 minuters mellanrum, 2016 med 5 minuters mellanrum och 52560 med 10 minuters mellanrum. Och sedan 175200 med en h mellanrum. När du skapar grafer tar rrdtool rran med högst upplösning som fyller hela intervallet.
Skapar du en graf för senaste 4 dagarna kommer du att använda 10 min medel. 3 dagar ger 5-min medel. I grafen kommer du inte att se någon skillnad.
Mer logiskt skulle nog vara att sätta step till 120 och heartbeat till 5*120.
Sedan en RRA där du sparar hög upplösning i några dygn, en där du sparar med tex 20 minuter i ett år och sedan 1h i 10 år.
Re: Hjälp skapa .rrd databas för loggning av energiförbrukni
Postat: 16 okt 2014, 21:55
av popunonkok
Nytt försök. =)
Nu har jag mer gått igenom rad för rad.
Kod: Markera allt
#!/bin/bash
# Script to create rrd-file
# Varannan minut i en vecka
# Var 20e minut i 2 år
# En gång i timmen i 15 år
directory="/home/pi/rrddata/"
filename="energi.rrd"
# Check i file already exists
if [ ! -f "$directory$filename" ]
then
# File doesn't exist, create new rrd-file
rrdtool create $directory$filename \
--step 120 \
DS:energi:COUNTER:600:0:30 \
RRA:AVERAGE:0.5:1:5040 \
RRA:AVERAGE:0.5:10:52848 \
RRA:AVERAGE:0.5:30:131400
echo "Done!"
else
echo $directory$filename" already exists, delete it first."
fi
Det enda jag egentligen undrar över är max värdet. Men jag testar kanske så här. Det är bara så tråkigt när det inte går att ändra i efterhand.
Re: Hjälp skapa .rrd databas för loggning av energiförbrukni
Postat: 16 okt 2014, 22:08
av elf98
30 är för lågt - och det går att ändra i efterhand, kommer dock inte ihåg nu vad det var för kommando (tune?).
Om du drar 11kW som är max för ett hus avsäkrat med 16A huvudsäkringar (16*3*230) så får du med en elmätare som ger 1000pulser/kWh 11*1000 = 11000 pulser per timme. Eller 11000/3600 = 3 pulser per sekund. Eller 3*120=360 pulser per två minuter. Om du skulle råka missa en uppdatering får du dubbelt antal pulser. Sen kan det vara bra att ha lite marginal med, så jag skulle nog sätta max till 1000-2000.
Re: Hjälp skapa .rrd databas för loggning av energiförbrukni
Postat: 16 okt 2014, 23:33
av popunonkok
Jag har nu testat Tune kommandot. Jag antar att det fungerade men jag vet inte. Jag hittar inget kommando för att läsa databasens "huvud/innställningar" så att jag kan bekräfta att jag höjt MAX gränsen.
Anledningen till att jag tog 30 var att jag trodde att omräkningen var gjord innan värdet las till i databasen, alltså omvandlingen till kWh.
Så här stod det i guiden du länkade till tidigare.
Inga ändringar eller korrigeringar behöver göras i grafscriptet då konverteringen pulser/kWh är gjord vid insamlandet av data.
Men jag testar så här ska vi se.
Re: Hjälp skapa .rrd databas för loggning av energiförbrukni
Postat: 16 okt 2014, 23:42
av elf98
Ah, så kanske det var ja. Det är ju över 7 år sedan jag skrev grejjerna...

det är kW som lagras, så då kan max vara 11 och 30 bör vara lugnt. Jag har dock satt 1000 och det fungerar bra det med, men jag har åas inte haft några problem med störningar.
Kod: Markera allt
(erik)-(www)-(/special/energi)
(23:37:19)-> rrdtool info energi.rrd
filename = "energi.rrd"
rrd_version = "0003"
step = 600
last_update = 1413495421
header_size = 792
ds[energi].index = 0
ds[energi].type = "DERIVE"
ds[energi].minimal_heartbeat = 1200
ds[energi].min = 0,0000000000e+00
ds[energi].max = 1,0000000000e+05
ds[energi].last_ds = "20054921"
ds[energi].value = 7,3350478325e+01
ds[energi].unknown_sec = 0
rra[0].cf = "AVERAGE"
rra[0].rows = 43200
rra[0].cur_row = 38377
rra[0].pdp_per_row = 1
rra[0].xff = 5,0000000000e-01
rra[0].cdp_prep[0].value = NaN
rra[0].cdp_prep[0].unknown_datapoints = 0
rra[1].cf = "AVERAGE"
rra[1].rows = 175200
rra[1].cur_row = 19838
rra[1].pdp_per_row = 15
rra[1].xff = 5,0000000000e-01
rra[1].cdp_prep[0].value = 0,0000000000e+00
rra[1].cdp_prep[0].unknown_datapoints = 0