Average Power Factor?

Yesterday, someone mentioned wanting to be able to look at “average power factor” for a given time period. I’ve been ruminating on that and have come to realize that I believe I’ve been handling power factor wrong from the beginning.

First a disclaimer: My background isn’t electrical engineering. I’m a programmer. That said, I understand the physics and math related to the data acquisition of electric power at what I consider to be a reasonable practical working level that can be expected to be encountered by the IoTaWatt.

So as I think about “average power factor”, over an hour where we have 360 10second measurements, the question is what are we really looking for? It’s easy to do a time average. Just add up all those 10second measurements and divide by 360.

Going through life up to the past two years, I had no idea what power factor was. I doubt that most people using an IoTaWatt do, and that it has any meaningful use to the ordinary consumer. You pay for real power, and how much reactive power gets pushed around in the process - who cares?

I think this is something that has more meaning in industrial settings, where highly reactive loads like big motors are at work. So if you have a load that draws real power of 2000 watts at a power factor of .80 for half an hour and doesn’t run for an hour, is the average power factor .40? I think .80 would be more useful.

That’s a pretty simple example to make the point. In reality, over any given measurement period, the power and pf will be constantly changing. So how to be able to produce useful averages over arbitrary time periods from a data store?

I go back to the basic definition of power factor:

pf = real power (W) / apparent power. (VA)

We currently store real power (W) and there is no problem with time averaging this measurement. IoTaWatt stores it as cumulative watt-hours (Wh) and over any time period can give you watts as the change in Wh divided by time. You can get an average over any arbitrary period be knowing only the starting and ending Wh.

So I think the proper approach to power factor is to also keep apparent power (VA) in the same way. So that power factor over any given time is:

average W / average VA.

in fact the time can be removed from the calculation and simply use:

change in Wh / change in VAh (sorry I don’t have a math formula editor handy to do deltas and sums and such)

Taking this down to the millisecond level, I think that’s the way IoTaWatt should be doing power factor for the 5 second entry in the data-log. Instantaneous is the PF when reading one AC cycle. After that, everything is an average and probably should be done by bringing forward VA as well as Watts.

Curious if anybody has a different take.

1 Like

+1 for emitting VA

I use PF today to find bad USB chargers and monitor switching power supply efficiency

1 Like

+1 for emitting VA

My office building has three phase, 3 big central heating pumps & big fans etc. along with a mix of switched mode LED PSUs and fluorescent lighting. Plus we do get charged reactive power, not much, but it is charged in the UK on commercial premises. The reason being is that the distribution network has to be sized for that extra reactive energy.

Thanks for your other replies to me Bob re. PVOutput & IoTaWatt power consumption.

An output with the reactive power would be useful IMHO.
It’s true that for domestic use you pay for real power, but Reactive Power becomes very important if you try to do some load disaggregation with the measured data.
Is it dificult to have this output too? Do you foresee it may be available in a future update of the firmware?

I have VA (S) and real power (P) so if you are asking for var (Q) as

then that is pretty easily done. Can you confirm that’s what you are asking for?

As a first approximation yes. This formula is valid only for sinusoidal waveforms, but it would be a first step.
With the sampling frequency of your device it may be possible to calculate the harmonic distorsions and have a more detailed descritpition of what is happening.
(I found this link for the decomposition of power in non-ideal cases, http://www.emo.org.tr/ekler/199d0f8858cae50_ek.pdf)
This would pave the road for load disaggregation, that is a feature of many of the new commercial energy monitoring systems.
I know that your device has 14 channels, that is more than enough to monitor the branches of a moder domestic grid. Unfortunately not all houses have such a system and sometimes a single point of measure and a single channel can be used.
If you think the load analysis and disaggregation could be adirection of development, maybe an open discussion to choose the desidered feature could give some indication.

I don’t see that in IoTaWatt future. There’s not much processing power left and I see using what’s there to improve access to the data that is already collected.

I absolutely agree that there is not enough power on the esp8266.
The elaboration would not be done on the IoTaWatt, but on any edge device, either a raspberry or an Alexa for instance. IoTaWatt would do the measurements, another device will elaborate on the data provided.

Disaggregation is a really difficult problem. People have been looking at it for a long time and have not been able to solve it. It kind of depends on what you hope to gain/learn from it. My brother has a Sense: https://blog.sense.com/how-the-sense-home-energy-monitor-works/

Despite what they say, it does a rather poor job of figuring things out in his house. Having spent a lot of time looking at aggregated (and the equivalent disaggregated) signals it is possible to derive some information from an aggregated signal. For instance, I can fairly reliably see my dehumidifier in the main signal. I can also see my well pump, but it is very similar to my septic pump (they are both 2HP 240V motors and run for about the same amount of time, but the well pump runs more frequently). I think it would be hard to automatically figure out which one was running without extra information.

It is an interesting topic, but it probably requires more processing closer to the data to turn it into something useful.

1 Like

Figuring out what’s running is only half of the problem. If you’re interest lies in reducing energy use, it’s another problem to figure out how much each of those things is using. Maybe with some historical data, you can figure out how much energy that well pump is using, but it’s dependent on head. More of a problem is something like an air source heat pump, which in my case can be half of my usage in the winter. The sense commercial puts a lot of emphasis into knowing how much TV the kids are watching. If that’s the problem you’re trying to solve, I think there are other ways to go about it.

With 14 channels, it’s pretty easy to put a CT on your well pump, and one on the septic pump. End of story.

1 Like

That was my point. I already have one.

1 Like

+1 for having the apparent power or power factor available as an output. My use case is that my meter only reports apparent power in real time. I have set up my 14 CTs to monitor key circuits in the house, and I would like to have a feed labeled “Papp other” which I would calculate as
Apparent power - sum(all 14 Iotawatt apparent powers)


I may not fully understand what you are saying/asking, but to respond:

The “calculator” can produce a “feed” in any of several units. Apparent power is VA. That’s RMS voltage x RMS Amps. Those can be added together to get the total VA for any number of IoTaWatt inputs.

What I don’t get is where you would get the initial value to subtract 14 inputs from. IoTaWatt only has 14 inputs total.

You mention power factor also, and there seem to be several schools of thought about how to combine them and whether such an operation has any real meaning or utility. I suppose to the extent that the PF of a circuit with several loads is *stated, as with the mains, there is some of that going on already. Being primarily a programmer, I don’t claim any reliable insight into this, but it seems to me that it’s a complicated dynamic, with reactive power from one device possibly satisfying the needs of another, while that is unobserved by the common CT. I’ve noticed that frequently the PF of the mains is not just a weighted average of the individual circuits.

Sorry I SJ ould have explained, the apparent power comes into emoncms from my power meter. I also have the active power feeds from IoTaWatt there.
If I had apparent power feeds from IoTaWatt I could subtract them from the meter’s total apparent power to estimate apparent power for the circuits i don’t measure.

After thinking about this again though, I should probably simply dedicated three CTs to the 3 primary mains.

And yes I understand that combining power factors probably doesn’t make much sense, but adding up apparent power should be just fine.


It is incorrect to simple add the magnitude of apparent power together, it is a vector so needs to be a vector addition that takes account of the angle between real and reactive power for each circuit.

Thanks for pointing that out.

The numbers are available for each circuit to compute var, and so with a sqrt function in the calculator, I think it would be possible to develop the sum VA of multiple circuits. But for the same reason, subtracting that from the total VA number also needs to be a vector subtraction.

It’s possible, with the units known to the script evaluator, to do the vector math rather than scalar math when the units are VA, but I can’t see that being anything useful to the typical user.

I should stick to the programming.