Ett nytt, enklare sätt att mäta elförbrukningen finns beskrivet i Wikin!
http://wiki.temperatur.nu/index.php/M%C ... ed_rrdtool
Så du vill ha stenkoll på din elförbrukning?
Hårdvara som behövs:
- 1st 1wireadapter (DS9490R är att föredra då du får +5v på "köpet").
- 1st räknare för 1wire.
- 1st LED-puls eller reflexdetektor.
- koppla in allt och se till att detektorn är spänningsmatad
- LED-detektorn skall placeras framför den blinkanden lysidoden
- 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.
- 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.
Varje varv på min elmätare motsvarar 1000Wh/120 = 8.333Wh, vilket motsvarar 8.333*3600 = 30000Joule.
Databasens minsta enhet är därmed 1/30000 Joule / Sekund, eller 1/30000Watt
Så för att få ut W:
Multiplicera räknarvärdet med 30000
För att få ut förbrukad effekt Wh:
Multiplicera med 8.3333 och summera över tid.
Att skivan snurrar så långsamt är ett problem när man inte har tillgång till exakta tider på en rotation, vi har ju bara antalet roteringar per minut (eller rättare sagt; antalet blinkningar eller "mörka" passeringar per minut).
Om databasen skulle sampla varje minut skule det vid 1kW endast hinna bli 2 uppräkningar på en minut, förbrukningen skulle därmed kunna detekteras med 500W intervall.
Jag väljer därför att ha 10 minuter som minsta intervall i databasen. Om din elmätare har en högre rotationshastighet eller blinkhastighet kan du antagligen ha ett kortare intervall men ändå få en hög nogrannhet på effektuttaget.
Med 10 minuters intervall kan jag detektera förbrukningen med en nogrannhet på 50W.
Följande exempel är skrivna för databas- och grafgenererings-mjukvaran Rrdtool.
Skapa databas för rrdtool:
Kod: Markera allt
rrdtool create energi.rrd -s 600 DS:energi:COUNTER:1200:0:U RRA:AVERAGE:0.5:1:52560 RRA:AVERAGE:0.5:6:87600
Uppdatera databasen:
Kod: Markera allt
#!/bin/bash
COUNT=`cat /mnt/1wire/uncached/1D.94EC09000000/counters.A|sed -e s/" "//g`
/usr/bin/rrdtool update energi.rrd N:$COUNT
Grafgenerering: (graph.pl)
Kod: Markera allt
#!/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;
Kod: Markera allt
./graph.pl -s -24h -t 'Elförbrukning Blästadsgatan 12 det senaste dygnet'
Observera att du måste ange fullständiga sökvägar till databas och bildfiler om du vill köra skripten från crontab.