Getting somewhere with the supplier, but putting together an evidence package for them and I’m now rather confused.
I still think my meter is broken, it doesn’t pulse the rate2 led overnight, continuing to pulse rate1, but rate2 does get the occasional pulse throughout the day.
Where I am concerned that I have something amiss - I took a short term look at daytime base load:
The monitoring through emon indicates ~ 1.3kW
Measurements using a clamp multimeter (3.1A, 240V) indicate ~750W (max resistive load)
However based on short (30 seconds or so) visual observations the daytime base load is about 1 pulse every 5-6 seconds (~700 pulses/hour → 700W) which looks about right. Adding the 3kW kettle I get to ~1pps (3.6kW) which again looks about right.
My input is set up:
1 - Log to feed
2 - Wh Accululator
3 - x 0.001
4 - kWh to Power
And that is fed from a pulse counter script which is mostly the same as that linked in the thread above (though I also fire off another packet on each pulse - that isn’t received anywhere, but it’s a useful debugging tool)…
That script is picking up pulses most of the time, but it seems to miss a pulse every so often, the gaps end up at 5,5,5,6,5,12,5,6,5,6 with a basic packet capture being used to spot the detection events.
The data on 50012 shows:
- Timestamp (to the hundredth of a second
- Node ID (18)
- Counter 1
- Counter 2
And for every UDP packet I see the counter is incremented by two, not one - that would put my actual power at half what is being shown by emon…
One difference to the above script… I have the pulse_id[channel]+
outside the if status
.
BUT - I only see one packet, and the UDP packet I send for debugging is sent at the same level as the counter increment, and I have the event detect for the callback to be GPIO.RISING, not GPIO.BOTH.
Possibly ought to pop over to that thread, but I’m starting to doubt the script - I think I might be double counting yet missing occasional pulses… neither of which are good.
Given that we’ve got callbacks in play - why are we tight looping the process pulse code.