Welcome, Paul, to the OEM forum.
First, a disclaimer - I’ve never used an ADS1115, nor the ESP8266, so I can’t give you any technical details of how to instruct those to make the reading and how to pass data between each other to be processed. What I can do is give you an outline of how I’d approach your problem, in the hope that an overview is helpful.
First, I presume you’ve got the ‘standard’ North America system, we prefer to think of this as two legs of the same phase, because each leg is the inversion of the other.
The ADS1115’s maximum sample rate is 860 samples per second, to you that’s 14.33 samples per mains cycle. At this rate, you’re limited to using the discrete sample emonLib, and even with that you’re not realistically going to be able to measure voltage and as a result you can’t measure real power. So what you’ll have is a moderately accurate value of rms current, but only a best guess at apparent power, the accuracy of which depends on the combined power factor of your house loads and the voltage you assume. I think you realise this.
In outline, what I would do is the ESP8266 sets up the ADS1115 by telling it which input pin to enable, then commands the ADS to take readings. As the readings arrive (and this is how emonLib works), it counts the number of readings, squares each and adds them to an accumulator. At the same time, it runs a low pass filter to derive the average d.c. voltage so that it can subtract the offset that’s added by those two equal resistors (nominally but never equal to half the ADC full scale number). Having got the required number of samples (which you must calculate so that you get as close as possible to a whole number of mains cycles, you switch the ADS1115 to the next channel and do the same with the other leg.
Now as you’re writing the code (but probably leaning heavily on emonLib), you can then switch the ADS1115 to the third input and (say) read the pressure, to the fourth and read (say) temperature, then drop into the output department and send the values, before going back to the first and get another 200 ms or so of current, and so on.
Obviously, you need different processing for the relatively static third and fourth inputs.
I have no feel for how fast code runs on the ESP8266, I’d suggest if you’re up to the challenge you don’t use the digital low pass filter in emonLib, but instead do as emonLibCM does (because it avoids the relatively slow division in the maths), and this is first, remove the nominal value of the offset (just to keep the sum squared smaller). Then, calculate the sample squared and accumulate this and the sample itself (minus offset now - I call this the sample ‘delta’ - a small change). When you have the totals for the batch of samples, get the average and then (this is the slow part but you’re no longer gathering samples, so it doesn’t matter so much) remove the offset that remains and do the (very slow) square root to get the true rms value using the equation:
rms of a signal plus an offset = sqrt(signal² + offset²)
The offset in the line above is the average of all the samples (hopefully small and close to zero) and (signal + offset)^2 is the other value you accumulated. The quantity you want out of the equation is “signal”. Rearrange the equation, and remember you also need to divide by the number of samples, so
Irms = sumSampleSquared / sampleCount;
Irms -= sumSampleDeltas / sampleCount * sumSampleDeltas / sampleCount;
Irms = sqrt(Irms);
Irms *= amplitudeCal;
to give you amps.
I wouldn’t try to use emonLib directly because it was written for the Atmel ATMega328P, you’ll probably be totally confused because it is very closely tailored to that. Rather, understand just the small part I’ve outlined above and steal snippets as you need them.