Mäta elförbrukning med rrdtool

Från Temperatur.nu
Hoppa till navigeringHoppa till sök

Bakgrund

Du vill ha koll på din elförbrukning och få det presenterat som en graf. Börja då med att läsa om hur du får igång OWFS och hur man loggar med hjälp av RRDtool.

Hårdvara

Installationen av detektorn kan kräva lite intrimmning;

  • Om du köpt delarna var för sig så kopplar du ihop allt enligt denna guide och ser 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.

Skapa databas

rrdtool create /home/energi/db/energi.rrd -s 60 DS:energi:COUNTER:1200:0:U RRA:AVERAGE:0.5:1:43200 RRA:AVERAGE:0.5:30:175200
Det lämnas som övning åt läsaren att räkna ut för hur lång tid data sparas.

Skapa skript

Pulsvärdena skall kompenseras så det är "riktiga" Wh som loggas i databasen för att förenkla grafgenereringen. Räkna ut vilken omräkningsfaktor för Wh dina pulser har genom att ta 1kWh, dvs 1000Wh, delat på antalet pulser/kWh. En elmätare som har 1000blink per kWh får en faktor på 1. En elmätare som har 10000blink per kWh får en faktor på 0.1. En elmätare som har 800blink per kWh får en faktor på 1.25.

Scriptet för att läsa in och korrigera pulsvärdet ser ut så här:

 #!/bin/bash
 #Exempel för en elmätare med 10000 blink per kWh. OBS . i stället för ,
 OMRAKNINGSFAKTOR=0.1
 COUNT=`cat /mnt/1wire/1D.94EC09000000/counters.A|sed -e s/" "//g`
 #Lite magi för att räkna med flyttal i BASH
 VALUE=`echo "$OMRAKNINGSFAKTOR $COUNT" |awk '{printf "%.0f", ($1 * $2)}'`
 /usr/bin/rrdtool update /home/energi/db/energi.rrd N:$VALUE

Inga ändringar eller korrigeringar behöver göras i grafscriptet då konverteringen pulser/kWh är gjord vid insamlandet av data. För att skapa en graf kan man sedan lägga till följande i skriptet:

 /usr/bin/rrdtool graph /var/www/energi-24h.png \
   -E \
   --imgformat PNG \
   --start -24h \
   --end now \
   --width 600 \
   --height 400 \
   --title Exempelgraf \
   --vertical-label 'Watt' \
   -l 0 \
   DEF:energi=/home/energi/db/energi.rrd:energi:AVERAGE \
   CDEF:W=energi,3600,* \
   AREA:W#AAAAee \
   LINE3:W#000000 \
   CDEF:energiK=energi,1000,/ \
   VDEF:value_sum=energiK,TOTAL \
   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 2010"

Energi-24h.png

Observera att du måste ange fullständiga sökvägar till databas och bildfiler om du vill köra skripten från crontab.

Övrigt

Info om när räknaren slår över