[rrd-users] rrdtool and calculations

Simon Hobson linux at thehobsons.co.uk
Sat Jun 23 18:41:48 CEST 2012

Steve Sykes wrote:
>I am working on using rrdtool to log my water heater use.  I have a
>one-wire sensor measuring current and wish to calculate the wattage and
>eventually the KWH used.  The sensor reads from 0.09 for off and 3.36
>for 18 amps.  I am reading the data into the logging screen but don't
>know how to scale it up so that it reads amps instead of volts.

RRD just stores <stuff>

I would suggest calculating power and then storing that. In <your 
preferred flavour of shell> it would be as simple as :

>reading=<some method by which you get the value>
>span=`echo "scale=3 ; ${scale_in} - ${offset}" | bc 2>/dev/null`
>current=`echo "scale=3 ; ${reading} - ${offset} / ${span} * 
>${scale_actual}" | bc 2>/dev/null`
>power=`echo "scale=3 ; ${current} * ${volts}" | bc 2>/dev/null`
>rrdtool update <some file> n:${power}

And you can of course combine all the maths into one formula and one 
call to bc - I've shown it as separate calls to make it clearer how 
you work out the power. Of course, you'll notice that power depends 
on voltage, and that varies - so your power calculation will be a 
little out, basically as accurate as your best estimate of an average 
supply voltage.

At least with a heater you can ignore power factor - I'm assuming 
it's just one or more immersion heaters and hence a resistive load. 
These clip on "energy monitors" that lecky suppliers seems to be 
giving away are even worse - not only do they not account for voltage 
variations, but they cannot measure power factor which can lead to 
some whacky results from them.

Simon Hobson

Visit http://www.magpiesnestpublishing.co.uk/ for books by acclaimed
author Gladys Hobson. Novels - poetry - short stories - ideal as
Christmas stocking fillers. Some available as e-books.

More information about the rrd-users mailing list