Sida 1 av 1

Hjälp med att räkna ut värde - a.k.a jävla CDEF o VDEF

Postat: 06 mar 2013, 23:42
av hellgun
Alltså, jag fattar inte riktigt hur CDEF och VDEF funkar. Jag har nedanstående grafskript för att generera grafen i bilden längst ner.

Kod: Markera allt

function create_graph($output, $start, $end, $title) {
  $options = array(
    "-E",
    "-l 0",
    "--start", $start,
    "--end", $end,
    "--title=$title",
    "--vertical-label=Watt",
    "--height= 400",
    "--width= 900",
    "DEF:el_total=/home/anders/rrddata/huvudmatare.rrd:energi:AVERAGE",
    "DEF:vvb=/home/anders/rrddata/varmvattenberedare.rrd:energi:AVERAGE",

         "CDEF:W=el_total,3600,*",
         "CDEF:W_vvb=vvb,3600,*",

         "CDEF:energiK=el_total,1000,/",
         "VDEF:value_sum=energiK,TOTAL",

         "CDEF:energiK_vvb=vvb,1000,/",
         "VDEF:value_sum_vvb=energiK_vvb,TOTAL",

         "AREA:W#6699ff:Totalt\:    ",
         "LINE1.5:W#336699", 

         "GPRINT:W:MIN:Min\: %0.1lf%sW",
         "GPRINT:W:AVERAGE:Medel\: %0.1lf%sW",
         "GPRINT:W:MAX:Max\: %0.1lf%sW",
         "GPRINT:W:LAST:Just nu\: %0.1lf%sW\\n",
         "GPRINT:value_sum:Förbrukad mängd\: %0.1lfkWh\\n",
         "COMMENT:\t\\n",

         "AREA:W_vvb#1BB5E0:Varmvatten\:",
         "LINE1.5:W_vvb#157B96",


         "GPRINT:W_vvb:AVERAGE:Medel\: %0.1lf%sW",
         "GPRINT:W_vvb:MAX:Max\: %0.1lf%sW",
         "GPRINT:W_vvb:LAST:Just nu\: %0.1lf%sW\\n",
         "GPRINT:value_sum_vvb:Förbrukad mängd\: %0.1lf%skWh",
  );
Jag vill dessutom räkna ut hur mycket varmvattnet står för i procent. Dvs dividera varmvattnets förbrukade mängd med totalt förbrukad mängd. Dessa två värden finns ju redan uträknade i varsin VDEF-mojj och VNAME-variablerna heter value_sum_vvb och value_sum. Jag trodde därför detta skulle funka...

Kod: Markera allt

"VDEF:procent_vvb=value_sum_vvb,value_sum,/",
Men det ger detta fel: Graph error: variable 'value_sum_vvb' not DEF nor CDEF in VDEF 'procent_vvb'

Jag har provat massa andra olika VDEF- och CDEF-lösningar men inget har funkat. Kan någon berätta hur fanken man jag ska göra?
elgraf.png

Re: Hjälp med att räkna ut värde - a.k.a jävla CDEF o VDEF

Postat: 07 mar 2013, 10:53
av hellgun
Ett förtydligande... värdet jag vill räkna ut ska bara skrivas ut med GPRINT och inte grafas.

Re: Hjälp med att räkna ut värde - a.k.a jävla CDEF o VDEF

Postat: 27 mar 2013, 12:45
av hellgun
Verkligen ingen som vet hur man räknar ut och presenterar ett värde?

Re: Hjälp med att räkna ut värde - a.k.a jävla CDEF o VDEF

Postat: 27 mar 2013, 22:38
av elf98
Du gör ju det i din graf? Eller?

Re: Hjälp med att räkna ut värde - a.k.a jävla CDEF o VDEF

Postat: 27 mar 2013, 23:33
av hellgun
Njae... jag vill visa med en siffra hur många procent varmvattnets energiåtgång utgör av totala förbrukningen under den tidsperiod som grafen visar. I den exempelbild jag bifogat i första inlägget är det alltså 6,6/32,9=20%. Vill skriva ut värdet med GPRINT.

Re: Hjälp med att räkna ut värde - a.k.a jävla CDEF o VDEF

Postat: 27 mar 2013, 23:50
av elf98
Var har du lagt den nya VDEFen?

Eftersom du tar resultatet från två VDEFar bör det inte vara några konstigheter...

Re: Hjälp med att räkna ut värde - a.k.a jävla CDEF o VDEF

Postat: 28 mar 2013, 00:09
av hellgun
Minns inte var jag la den från början men testade nu att lägga den efter båda VDEFarna men fick detta:
Graph error: variable 'value_sum_vvb' not DEF nor CDEF in VDEF 'procent_vvb'
Såg alltså ut såhär:

Kod: Markera allt

...
    "DEF:el_total=/home/anders/rrddata/huvudmatare.rrd:energi:AVERAGE",
    "DEF:vvb=/home/anders/rrddata/varmvattenberedare.rrd:energi:AVERAGE",
    "DEF:ute_temp=/home/anders/rrddata/temp_ute.rrd:ute:AVERAGE",

         "CDEF:W=el_total,3600,*",
         "CDEF:W_vvb=vvb,3600,*",

         "CDEF:energiK=el_total,1000,/",
         "VDEF:value_sum=energiK,TOTAL",

         "CDEF:energiK_vvb=vvb,1000,/",
         "VDEF:value_sum_vvb=energiK_vvb,TOTAL",

         "VDEF:procent_vvb=value_sum_vvb,value_sum,/",

         "AREA:W#6699ff:Totalt\:    ",
         "LINE1.5:W#336699",
...

Re: Hjälp med att räkna ut värde - a.k.a jävla CDEF o VDEF

Postat: 28 mar 2013, 07:54
av elf98
Om du lägger den som CDEF, VDEF ska ju köras över ett helt dataset igentligen...

Re: Hjälp med att räkna ut värde - a.k.a jävla CDEF o VDEF

Postat: 28 mar 2013, 14:41
av hellgun
Har testat men får inte det att funka heller.

Kod: Markera allt

"CDEF:procent_vvb=value_sum_vvb,value_sum,/",
Ger följande fel:
Graph error: rpn expressions without DEF or CDEF variables are not supported

Re: Hjälp med att räkna ut värde - a.k.a jävla CDEF o VDEF

Postat: 28 mar 2013, 14:52
av elf98

Kod: Markera allt

"CDEF:procent_vvb=vvb,vvb,-,value_sum_vvb,value_sum,/",
Kanske kan fungera?

Re: Hjälp med att räkna ut värde - a.k.a jävla CDEF o VDEF

Postat: 28 mar 2013, 15:00
av hellgun
Det blev kortare felmeddelande iaf :D
Graph error: RPN final stack size != 1
Jag uppskattar VERKLIGEN hjälpen!

Re: Hjälp med att räkna ut värde - a.k.a jävla CDEF o VDEF

Postat: 28 mar 2013, 15:29
av elf98
Lägg till ", +," efter value_sum_vvb

Re: Hjälp med att räkna ut värde - a.k.a jävla CDEF o VDEF

Postat: 28 mar 2013, 15:48
av hellgun
Wuuuuuuuhuuuuuu!

Det var ju inte så farligt krångligt ;)

Tusen tack!!!

Re: Hjälp med att räkna ut värde - a.k.a jävla CDEF o VDEF

Postat: 28 mar 2013, 16:16
av elf98
Problemet är att rrdtool inte tillåter RPNer när värden hämtade direkt från DEF inte är inblandade. Vad du gör nu är att du tar ett DEF-värde minus samma DEF-värde, och sedan det du egentligen vill beräkna... Du lurar helt enkelt rrdtool!