Skillnad mellan versioner av "Mäta elförbrukning med rrdtool"

Från Temperatur.nu
Hoppa till navigeringHoppa till sök
(Skapade sidan med 'Så du vill ha stenkoll på din elförbrukning? Hårdvara som behövs: *[https://www.m.nu/adapter-usb-1wire-ds9490r-p-49.html 1st 1wireadapter (DS9490R är att föredra då du …')
 
(Ersätter sidans innehåll med 'Denna guide har flyttat till [http://wiki.m.nu/index.php/M%C3%A4ta_elf%C3%B6rbrukning_med_OWFS_och_RRDTool http://wiki.m.nu/index.php/M%C3%A4ta_elf%C3%B6rbrukning...')
 
(29 mellanliggande versioner av 5 användare visas inte)
Rad 1: Rad 1:
Så du vill ha stenkoll på din elförbrukning?
+
Denna guide har flyttat till [http://wiki.m.nu/index.php/M%C3%A4ta_elf%C3%B6rbrukning_med_OWFS_och_RRDTool http://wiki.m.nu/index.php/M%C3%A4ta_elf%C3%B6rbrukning_med_OWFS_och_RRDTool]
 
 
Hårdvara som behövs:
 
 
 
*[https://www.m.nu/adapter-usb-1wire-ds9490r-p-49.html 1st 1wireadapter (DS9490R är att föredra då du får +5v på "köpet")]
 
*[https://www.m.nu/raknare-for-anslutning-till-1wirenat-version-2-p-160.html 1st räknare för 1wire]
 
*[https://www.m.nu/ledpuls-detektor-p-57.html 1st LED-puls eller reflexdetektor.]
 
 
 
Installationen av detektorn kan kräva lite intrimmning;
 
 
 
*Koppla in allt och se till att detektorn är spänningsmatad. Lyser den röda lysdioden när sensorn får ljus på sig är spänningsmatningen ok.
 
**LED-detektorn skall placeras framför den blinkande lysdioden.
 
**Reflexdetektorn skall placeras så att den grön/blå lysdioden belyser kanten på den snurrande skivan. Eventuellt kan det vara en bra idé att sätta detektorn på sidan av elmätaren så det inte finns en massa plåt nära skivan som kan reflektera ljuset. Justera detektorn i höjd- och sidled tills lysdioden lyser. Vänta tills den svarta markeringen på skivan passerar, den röda lysdioden skall då slockna. Justera eventuellt läget ytterligare. I bland krävs det att man tejpar en smal springa längs med den roterande skivan för att skärma av övriga reflektioner.
 
 
 
Grundläggande definitioner för att förtydliga tankegången:
 
 
 
*Joule är SI-enheten för energi.
 
*1W=1 Joule/Sekund
 
*1Wh är en Watt per sekund under 3600 sekunder. 1Wh är därmed 3600Joule.[/list]
 
 
 
Enligt information på elmätaren blinkar lysdioden 1000ggr per kWh.
 
Varje blink på min elmätare motsvarar 1000Wh/1000 = 1Wh, vilket motsvarar 1*3600 = 3600Joule.
 
 
 
Databasens minsta enhet är därmed 1/3600 Joule / Sekund, eller 1/3600Watt
 
 
 
Så för att få ut W:
 
Multiplicera antalet pulser med 3600
 
 
 
För att få ut förbrukad effekt Wh:
 
Multiplicera med 1 och summera över tid.
 
 
 
Lämpligt samplingsintervall kan räknas ut så här:
 
 
 
Vid en förbrukning på 1kW blir det 1000blinkningar /60 minuter = 16.67 blinkningar per minut. 1000W/16.67 = minsta enhet 58W. Samplar jag över 3 minuter får jag en upplösning på knappt 20W, vilket jag tycker är lagom.
 
 
 
Följande exempel är skrivna för databas- och grafgenererings-mjukvaran [[Rrdtool].
 
 
 
Skapa databas för rrdtool:
 
rrdtool create energi.rrd -s 600 DS:energi:COUNTER:1200:0:U RRA:AVERAGE:0.5:1:52560 RRA:AVERAGE:0.5:6:87600
 
 
 
Denna databas har ett minsta intervall på 10 minuter. Värden för var 10:de minut sparas i 1 år, och medelvärden över 1h sparas i 10år.
 
 
 
Uppdatera databasen:
 
[code]
 
#!/bin/bash
 
COUNT=`cat /mnt/1wire/uncached/1D.94EC09000000/counters.A|sed -e s/" "//g`
 
/usr/bin/rrdtool update energi.rrd N:$COUNT
 
[/code]
 
Värdet (ej cachat) från ingång A på räknaren läses in och eventuella mellanslag klipps bord. Databasen uppdateras sedan med det inlästa värdet.
 
 
 
Grafgenerering: (graph.pl)
 
[code]
 
#!/usr/bin/perl
 
use Getopt::Std;
 
getopt('st');
 
use RRDp;
 
use CGI;
 
$cgi = new CGI("");                  # Load the CGI routines
 
RRDp::start "/usr/bin/rrdtool";
 
$rrd = "energi.rrd";
 
$starttime = "$opt_s";
 
$endtime = time;
 
$width = "800";
 
$height = "500";
 
RRDp::cmd "graph energi$opt_s.png --imgformat PNG --start '$starttime' --end '$endtime' --width $width --height $height -E --title '$opt_t' --vertical-label 'Watt' -l 0",
 
        "DEF:energi=$rrd:energi:AVERAGE",
 
        "CDEF:W=energi,30000,*",
 
        "CDEF:W_real=energi,8.3333333333333333,*,1000,/",
 
        "VDEF:value_sum=W_real,TOTAL",
 
        "AREA:W#9999ee",
 
        "LINE1:W#000000",
 
        "GPRINT:value_sum:\"Förbrukad mängd\\\: %0.2lfkWh\\n\"",
 
        "GPRINT:W:MIN:\"Momentanförbrukning\\\: Min\\\: %0.2lf%sW\"",
 
        "GPRINT:W:AVERAGE:\"Medel\\\: %0.2lf%sW\"",
 
        "GPRINT:W:MAX:\"Max\\\: %0.2lf%sW\"",
 
        "GPRINT:W:LAST:\"Just nu\\\: %0.2lf%sW\\n\"",
 
        "COMMENT:\"Copyright Freiholtz Consulting 2007\"";
 
$answer=RRDp::read;
 
 
 
print $$answer;
 
 
 
RRDp::end;
 
[/code]
 
Skriptet kan sedan exekveras med:
 
[code]./graph.pl -s -24h -t 'Elförbrukning Blästadsgatan 12 det senaste dygnet' [/code]
 
Varpå en png-fil med namnet energi-24.h skaps.
 
 
 
[img]http://www.temperatur.nu/energi/energi-24h_old.png[/img]
 
 
 
Observera att du måste ange fullständiga sökvägar till databas och bildfiler om du vill köra skripten från crontab.
 

Nuvarande version från 26 september 2014 kl. 19.17