Calibration against actual meters

Hi,

Sorry if this has been asked but I cannot find what I am looking for when I searched.

On the dashboard I want to place "feedvalue" that tracks both my electric meter reading and solar PV meter reading. I expect the real meter readings to drift from what is recorded but overtime in the logging adjust a calibration constant to reduce the error.

I have tried logging using "Wh Accumulator" but this does seem to help.

While I can see I might be able to get this working for the solar PV meter how do I log only positive values for electric meter reading. I.e. the same as the meter as it does not go backwards?

 

Thanks in advance,

Geoff

Robert Wall's picture

Re: Calibration against actual meters

You need to add into the processing somewhere (probably after you have logged the nett power/energy to its feed) "Allow Positive" to remove the negative values, and then log to the "meter comparison" feed.

Geoff Soord's picture

Re: Calibration against actual meters

Thanks Robert - good idea. I'll give that a try.

Any suggestions on how to keep the cumulative usage so I would be able sync against actual meter readings? I think could be an iterative process to move to better calibration. After all - my electricity provide will only accept reading from their meters and no emon.

Robert Wall's picture

Re: Calibration against actual meters

I don't know the subtle details of the emonCMS processes, so you'll have to experiment. Past reports indicate that by carefully adjusting the calibration, better than 1% discrepancy has been achieved.

Geoff Soord's picture

Re: Calibration against actual meters

My thinking go along the lines of: Take a reading now and say in 10 days from both the meter and emon. In an ideal world the values would be identical. To reduce the difference I would not adjust the firmware but on the logging node add a calibration value. Repeat the exercise over another fixed period of time until the delta between the two meters get close to zero.

RobertK's picture

Re: Calibration against actual meters

I think most people have adjusted the calibration coefficients in the emonTx, but either approach is valid if you don't have an emonGLCD taking the data direct.

dBC's picture

Re: Calibration against actual meters

I've experimented with adding calibration coefficients into the input chain.  One problem I discovered is that if you're trying to be super-accurate, you'll want to tweak the coefficients on a running system (since your revenue meter is always running) and that can be tricky.  I described that problem, and one possible solution here:  http://openenergymonitor.org/emon/node/5214

sumnerboy's picture

Re: Calibration against actual meters

One solution could be to use MQTT retained publishes to send/store configuration parameters to EmonTX modules. I am doing that currently for my MQTT enabled PV router (based on Robins MK2PVRouter running on an EmonTX Arduino shield).

I can publish either 'normal' or 'antiflicker' to the MQTT topic /emontx/config/flickermode and it will dynamically update the state of the PV router (can also enable/disable).

Would be relatively trivial to add another config option to allow me to dynamically change the scale factor so you can alter whenever required.

sumnerboy's picture

Re: Calibration against actual meters

Well I couldn't help myself...I just updated my EmonTX sketch to read an extra MQTT config parameter to set the CT scale factor, so I can now tweak my readings on the fly with no need for re-programming the Arduino.

Here are the 3 config parameters I can adjust now;

/emontx/config/pvrstatus 0
/emontx/config/pvrmode antiflicker
/emontx/config/scalefactor 2.76867

The first allows me to enable/disable the PV router functionality, the second is the PV router output mode, and the third is the new value for setting the scale factor.

By using 'retained' publishes to those topics it means even if my EmonTX restarts for whatever reason, it will reconfigure itself automatically since when you subscribe to an MQTT topic any retained messages are re-published to the client.

Happy to share the sketch if anyone is interested.

 

Robert Wall's picture

Re: Calibration against actual meters

No problems then with timing due to polling the radio and handling the incoming messages?

sumnerboy's picture

Re: Calibration against actual meters

Sorry, probably should have mentioned, I am not using RF at all. I have an Arduino clone with built in ethernet so all meter readings are published over MQTT.

Robert Wall's picture

Re: Calibration against actual meters

Grrr. You said emonTx - guaranteed to throw anybody off the scent!

No problems then with timing due to polling the radio Ethernet and handling the incoming messages?

sumnerboy's picture

Re: Calibration against actual meters

Well in fairness, I did mention in my first message that I am using an EmonTx Arduino shield. Probably should have made it clear it was communicating over Ethernet rather than RF however - apologies.

As for polling, no seems to be fine. I only publish readings every 5s, and so just poll the ethernet/MQTT client each time that bit of code runs for any new config messages. The rest of the time the code is free-wheeling doing the measuring and PV diversion as per normal.

The sketch is also triggering my remote load (for PV diversion) via MQTT, so those messages are being published very quickly and there seems to be no issues there. MQTT is brilliant protocol for this sort of thing!

Geoff Soord's picture

Re: Calibration against actual meters

I plan to modify the logging code I use to split to value read into two feeds. One for positive values and one for negative. I still don't seem to be able to get the "Wh Accumulator" to do anything useful. It is always reporting zero despite other values get recorded as expected.

=========================================
Node1: Consumer unit config

Input processes are executed sequentially with the result being passed back for further processing by the next processor in the input processing list.

Order Process Arg Actions
1 Log to feed null: Consumer unit (feedvalue:-1155.00)
2 Wh Accumulator Node:1: Consumer unit Wh accumulator (feedvalue:0.00)
3 Power to kWh Consumer unit kWh (feedvalue:311.20)
4 Power to kWh/d Consumer unit kWhd (feedvalue:-0.40)

==========================================

Is this correct or am I not with "Wh Accumulator" correctly?

pb66's picture

Re: Calibration against actual meters

The "Wh accumulator" is for tracking an ever increasing energy value that may rollover or get reset to zero by a power cycle etc.

For instance if you have a sketch that starts reporting "total energy used since started in Kwh's" from zero when your meter reads 12345, you can set emoncms to an initial value of 12345 and the incoming increment eg 0,10,12,18 will be added to the WhAccumulator 12345,12355,12367,12385. If you then restart the emonTx (power-outage etc) and it counts from zero again 0,5,15,17 the whAccumulator will continue 12385,12390,12405,12422 effectively working like a ratchet. 

With power readings you just need to "allow positive" and "power to Kwh" to track energy in one direction and "allow negative" and "power to Kwh" for the other. 

log to feed "GRID"

allow positive

power to kwh "IMPORT"

reset2zero

add feed "GRID"

allow negative 

power to kwh "EXPORT"

To set the "initial meter readings" you can use a feed api or alternatively you can create an input for setting, adjusting and calibrating the meter reading tracker feeds.So if in 10 days you use 11kwh and emoncms says 10kwhs you can just submit an input of eg 11 1.1 to correct the feed value from 10 to 11 and indroduce a calibration of 1.1 moving forward.

The calibration  would need to be added to the process chain like this

log to feed "GRID"

allow positive

x feed "IMPORT CAL" eg 1.1

power to kwh "IMPORT"

reset2zero

add feed "GRID"

allow negative 

x feed "EXPORT CAL" eg 0.99

power to kwh "EXPORT"

Paul

Geoff Soord's picture

Re: Calibration against actual meters

Many thanks Paul. I'll will give this a try.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.