Hjälp skapa .rrd databas för loggning av energiförbrukning.

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.
Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
popunonkok
Gillar hemautomation
Inlägg: 36
Blev medlem: 11 apr 2011, 14:56
Ort: Piteå

Hjälp skapa .rrd databas för loggning av energiförbrukning.

Inlägg 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
Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5419
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Re: Hjälp skapa .rrd databas för loggning av energiförbrukni

Inlägg 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
Grundade m.nu & temperatur.nu

Driver temperatur.nu

Bild
popunonkok
Gillar hemautomation
Inlägg: 36
Blev medlem: 11 apr 2011, 14:56
Ort: Piteå

Re: Hjälp skapa .rrd databas för loggning av energiförbrukni

Inlägg 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
Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5419
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Re: Hjälp skapa .rrd databas för loggning av energiförbrukni

Inlägg 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.
Grundade m.nu & temperatur.nu

Driver temperatur.nu

Bild
popunonkok
Gillar hemautomation
Inlägg: 36
Blev medlem: 11 apr 2011, 14:56
Ort: Piteå

Re: Hjälp skapa .rrd databas för loggning av energiförbrukni

Inlägg 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.
Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5419
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Re: Hjälp skapa .rrd databas för loggning av energiförbrukni

Inlägg 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.
Grundade m.nu & temperatur.nu

Driver temperatur.nu

Bild
popunonkok
Gillar hemautomation
Inlägg: 36
Blev medlem: 11 apr 2011, 14:56
Ort: Piteå

Re: Hjälp skapa .rrd databas för loggning av energiförbrukni

Inlägg 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.
Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5419
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Re: Hjälp skapa .rrd databas för loggning av energiförbrukni

Inlägg 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
Grundade m.nu & temperatur.nu

Driver temperatur.nu

Bild
Skriv svar