Thanks Alex!&nbsp; With your help I think I&#39;ve got it all figured out.<br><br><div><span class="gmail_quote">On 1/29/07, <b class="gmail_sendername">Alex van den Bogaerdt</b> &lt;<a href="mailto:alex@ergens.op.het.net">alex@ergens.op.het.net
</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">On Mon, Jan 29, 2007 at 05:34:33PM -0500, Ben Griffith wrote:<br>&gt; Hi,
<br>&gt;<br>&gt; I have a RRD that was defined as follows:<br>&gt;<br>&gt; rrdtool create $sensor.rrd -s 3600 \<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DS:minutes:ABSOLUTE:3600:0:60 \<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RRA:MAX:0.5:1:4800<br>&gt;<br>&gt; Once per minute the RRD is updated with a 1 if my boiler is running, or a 0
<br>&gt; if it is not.<br><br>An update at 19:01 describes time 19:00 to 19:01.<br><br>If your boiler was switched off a fraction of a second before you ran<br>your rrdtool command, you will update with a wrong status.<br>
<br>This will of course be countered by the opposite: your boiler switched<br>on a fraction of a second ago and you note &quot;1&quot; where the real status<br>should have been &quot;0&quot;.</blockquote><div><br>I thought of that, but I figured in the end the two cases would cancel each other out.&nbsp; I could try updating more frequently.&nbsp;  I think I&#39;d have to adjust the rate multiplier accordingly.&nbsp; So if I update every 15 seconds I&#39;d have to multiply by 900 (number of seconds in an hour divided by the number of 15 second blocks in a minute) instead of 3600 to get the number of minutes the boiler was on in an hour.
<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Your step size is 3600 seconds.&nbsp;&nbsp;Each minute you add another portion<br>of the hourly statistics, I think using an averaging computation.
<br>(not 100% sure, but pretty sure)</blockquote><div><br>Doesn&#39;t it just add up all the entries to get a total for the hour, then from that a rate per second?&nbsp; Or does it actually compute the rate throughout the hour, on the fly?
<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>&gt; I tried supplying start and end times in the DEF, but the boundaries are
<br>&gt; still always placed at 19:00.&nbsp;&nbsp;How can I change that?<br><br>Find a way to work with 24 hourly values instead of 1 daily value.</blockquote><div><br>This is the method I chose.&nbsp; Here&#39;s what I came up with:<br>
<br>filename=/usr/local/misterhouse/trunk/data/rrd/Burner_Counter.rrd<br>timenow=`date | sed &#39;s/:/\\\:/g&#39;`<br>rrdtool graph /home/griffith/public_html/boiler_day.png \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --end 00\:00 --start end-7d --x-grid DAY:7:DAY:7:DAY:1:86400:%A \
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --height 200 --width 500 --imgformat PNG \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --title &quot;Boiler run-time per day&quot; --vertical-label &quot;minutes&quot; \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEF:day1=$filename:minutes:MAX:start=&quot;midnight yesterday - 6d&quot;:end=start+23h \
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEF:day2=$filename:minutes:MAX:start=&quot;midnight yesterday - 5d&quot;:end=start+23h \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEF:day3=$filename:minutes:MAX:start=&quot;midnight yesterday - 4d&quot;:end=start+23h \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEF:day4=$filename:minutes:MAX:start=&quot;midnight yesterday - 3d&quot;:end=start+23h \
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEF:day5=$filename:minutes:MAX:start=&quot;midnight yesterday - 2d&quot;:end=start+23h \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEF:day6=$filename:minutes:MAX:start=&quot;midnight yesterday - 1d&quot;:end=start+23h \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEF:day7=$filename:minutes:MAX:start=&quot;midnight yesterday&quot;:end=start+23h \
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VDEF:minday1=day1,TOTAL \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VDEF:minday2=day2,TOTAL \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VDEF:minday3=day3,TOTAL \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VDEF:minday4=day4,TOTAL \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VDEF:minday5=day5,TOTAL \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VDEF:minday6=day6,TOTAL \
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VDEF:minday7=day7,TOTAL \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDEF:foo1=day1,minday1,+,day1,- \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDEF:foo2=day2,minday2,+,day2,- \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDEF:foo3=day3,minday3,+,day3,- \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDEF:foo4=day4,minday4,+,day4,- \
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDEF:foo5=day5,minday5,+,day5,- \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDEF:foo6=day6,minday6,+,day6,- \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDEF:foo7=day7,minday7,+,day7,- \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AREA:foo1#ff0000 \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AREA:foo2#0000ff \
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AREA:foo3#ff0000 \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AREA:foo4#0000ff \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AREA:foo5#ff0000 \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AREA:foo6#0000ff \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AREA:foo7#ff0000 \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPRINT:minday1:&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %.0lf&quot;\
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPRINT:minday2:&quot;&nbsp;&nbsp;&nbsp;&nbsp; %.0lf&quot;\<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPRINT:minday3:&quot;&nbsp;&nbsp;&nbsp;&nbsp; %.0lf&quot;\<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPRINT:minday4:&quot;&nbsp;&nbsp;&nbsp;&nbsp; %.0lf&quot;\<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPRINT:minday5:&quot;&nbsp;&nbsp;&nbsp;&nbsp; %.0lf&quot;\
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPRINT:minday6:&quot;&nbsp;&nbsp;&nbsp;&nbsp; %.0lf&quot;\<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPRINT:minday7:&quot;&nbsp;&nbsp;&nbsp;&nbsp; %.0lf\n&quot;\<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; COMMENT:&quot;$timenow&quot;<br><br></div><br></div>Using the CDEFs to add in and subtract out each point seems kind of silly but I couldn&#39;t figure out a better way to constrain each VDEF to the day it belonged in.
<br><br>Thanks again, Alex.<br><br>-Ben<br>