Calibration using solar converter

I’ve installed energy monitoring, based on a EmonTx-shield on an Arduino Leonardo ETH and a standard Pi with the oem-image.
I use ethernet-communication for the arduino as I wanted to test it. Also using ethernet, I can easily connect stuff everywhere. Because of ethernet, I had to write a new sketch. Besides usage and solar power, it also takes into account 2 pulse-readings through interrupts (for gas & water).
Now for the calibration. As I have solar panels, I used the convertor for calibration. I’ve connected the 2 probes together on 1 wire coming from the convertor. I followed consumption during 4 days.
After day 1, I noticed a deviation of 2.84% for 1 probe, and 2,92% for the second. I changed the calibration factors for the 2 probes.
I also noticed noise up to 7 Watts while the convertor was off, therefor I changed the sketch to send 0 if power is below 10 Watts.
3 Days and 56 kWhs further, there was a correction of only 0.12% and 0.17% left todo. I’m quite confident that the power reading is rather accurate. Although…
After the solar converter, there is a small consumption meter. I found that there is a difference of 0,8% between the converter and this small meter. The consumption meter is class B which means 1% accuracy. They are still within, but 0,8% is quite big. Maybe I should calibrate the Arduino in the middle between the convertor and the meter.
Another thing I discovered is that sudden changes in power (clouds coming over) made a (very small) difference between the 2 probes. That’s because a measurement takes 1 second (I check 50 samples). A difference of 1 second at 4kW is visible. In practice it’s negligible, but it was surprising.
I guess the calibration done this way is far more accurate then using a kettle and a basic multimeter. The longer the measurement is done, the better the accuracy is. For sure it depends heavily on the accuracy of the converter which is not given in any spec or documentation.

And maybe the converter is 100% accurate and the meter is wrong, or maybe the meter is 100% accurate and the converter is wrong, or maybe both are wrong. You have no way of knowing, without access to some very expensive test equipment.

There’s only one point to add there: the meter that the electricity company uses to bill you is, by definition, correct, even though it might not be!

Your results are not surprising - others who have calibrated their emonTx (often a V2) similarly in the past have reported similar results, of better than 1%. The disadvantage of this method is you need to keep accurate records over a period and it can be very time-consuming. Ultimately, it will offer the best accuracy long-term, as you’ve shown.

You would avoid the ‘clouds’ error by monitoring continuously, like Robin’s energy diverter does. It is not actually the length of the measurement that introduces the error, but the gap between measurements. A shorter measurement (averaging) period, and more frequent measurements, should reduce that error. But it is probably compensated in the long term by a similar error in the opposite direction when the clouds go away.

The electricity company meter is class A or +/-2%, so less accurate then the small one which is class 1. I’m billed on the official one, so towards cost it would be a good idea to take the company one.

Time consumption is not that bad. The Ardiuno measures 1 second every 5 seconds and the graphs in Emoncms allow a readout whenever. The convertor has a daily counter readable by a web-interface. Taking the reading of the small counter is the only thing that needs to be done manually, only once/day or only before and after the calibration period. You just need a few days of patience to make the monitor operational.

Measurement is done during 1 second very 5 seconds, that’s 20% duty cycle. Only sudden changes have an influence, and like you say, they get mostly compensated over the day. The error over 3 days was 0,06%, nothing to worry about.

Hi Joost, I am busy building a Emon Tx-Shield on an Arduino Leonardo Eth, exactly because I want the ethernet communication to the sensor. I would like to see have you have adapted the sketch. Please could you share it.

Many thanks,

Here is the sketch. In the meanwhile it has a link to my alarm-system and bell as well.
And I changed the ethernet connection to a USB-connection to the Arduino, but the Ethernet-code is still in and can be chosen by removing comments. I kept the Leonardo for the number of interrupts, but at the end I don’t use them all as I planned to. Polling is more then fast enough. (7.3 KB)

Thank you Joost!