What you’re reading there is the d.c. offset as everything stabilises and the high pass filter finds its working point. Are you using a recent emonLib? That has a slightly different filter arrangement and when correctly initialised, should offer a much improved start-up. It may well be that emonLib isn’t reading the correct value for the analogue resolution of your ADC, which is what it uses to initialise to.
That’s correct. PhaseCal is intended to correct for the combined effect of both the difference in phase error between voltage and current transformers and for the time difference between taking the voltage and current samples. Your problem, silly as it might sound, could be that the ZMPT101B has almost no phase error (20 minutes of arc). Without checking the sums, here’s something to try: edit your copy of emonLib so that the voltage and current readings are reversed, i.e. just swap the order of these two lines:
sampleV = analogRead(inPinV); //Read in raw voltage signal
sampleI = analogRead(inPinI); //Read in raw current signal
and try that.
Voltage and current calibration constants are the mains voltage and current that gives you 1 V at the ADC input.
For the ZMPT101B, that will obviously depend on the values of multiplier resistor ( R’ ) and burden resitor ( R ) that you have used. You need to tell me what those values are, or calculate the voltages yourself.
For the C.T, it should be 50 as the SCT-013-050 is a voltage-output device: 50 A : 1 V. So something is definitely wrong there - have you used a second, external, burden? (Because to get the voltage output, there is already a burden resistor inside the c.t. case
And if you have done that, that could be contributing to the false current readings you are seeing, because the output voltage will be about ⅓ of what it should be.)
What current does your Arduino give you when the c.t. output is short-circuited? Any reading there is noise picked up, either in your wiring or from the Arduino itself. Better filtering and good earthing on the power supply might help to reduce it.
If you want to abandon the Arduino, for best results you will need three emonTx’s with ESP8266 Wi-Fi adapters, each with one c.t., one a.c. adapter each measuring one phase, and a possibly one 5 V USB power pack each (unless all can share one USB power pack or a powered USB hub).
For slightly less good results, if you can accept the errors caused by using only one voltage measurement of one phase, you can use one emonTx with the 3-phase sketch to measure the three phase currents, again with the ESP8266 adapter to send via Wi-Fi.