EmonTX Shield V2.4 and I2C

I have an old EmonTC shield v2.4
and I want to use an SD shield with it and the I2C RTC

I have a Nano based UNO with A6 and A7 available.

it appears I could isolate pin ADC-4 and jumper it to ADC6 and free up the I2C channels.

is that just as simple as changing this "
if (CT4) ct4.current(4, 60.606);

to this :
if (CT4) ct4.current(6, 60.606);

Welcome back!

I’m not familiar with the Arduino range, but if the A6 pin is indeed free, then the change you suggest is all that’s required to read CT4 from a different analogue input. You must of course ensure that this pin is not being used under its alternative function as a digital output (D20?)

I just put the unit it for a week run.
7.5 hp water pump.3-phase, 208 volts, it runs to deliver water, no water tower.
it can run as short as 10 seconds. longer as more water us used.

I am monitoring 3 channels, apparent power only

the thought is to get a handle on reading, but my loop() is set for 10 seconds.
I am thinking to change that to 1 second, or use an interrupt to save start time and end time, or just running time

if (started) {

if (ended) {
run time = millis()-starttime

then data log
30/oct/2021/08:54:16 10123, 547.577.562

the goal is to get an idea how often this run, so how much power it consumes, but also starts per hour.

we are looking to replace with a VFD to limit the spike on start, hopfully to bring down the electric bill a bit.

Where will you get started and ended from?

If your run time is short, plain emonLib won’t give you accurate data, especially as your power factor will be some way from unity. I suggest you use the 3-phase sketch for the emonTx and choose the options for it to run on the emonTx Shield. This monitors continuously, even though it reports every n seconds, and as it will be calculating real power, it should come much closer to your supplier’s meter readings.

Because it’s reading continuously, it should be possible (if the code you add is fast enough and your reporting interval short enough) to also count the number of starts (i.e. the sum of the three powers changes from below some threshold to above) and report that along with the power.

If you’re thinking of a VFD, read this thread: Measuring AC current output from a VFD - #31 by Natashaxh

Have you thought about using a soft starter?



From the page at the link above:

Soft starters are devices used with AC motors to temporarily reduce load and torque during start-up as compared to discrete contactor switching. Soft starters lower energy use and reduce wear and tear on motors and connected mechanical equipment.

Here is what I wast thinking.

if (CT1) { emontx.power1 = ct1.calcIrms(1480) * 240.0; }
if (CT2) { emontx.power2 = ct2.calcIrms(1480) * 240.0; }
if (CT3) { emontx.power3 = ct3.calcIrms(1480) * 240.0; }

if (lastStart = 0) {
if (emontx.power1 >= 500) {
startTime = millis() ;
lastStart = 1;

if (lastStart=1){
if (emontx.power1 <= 200) {
total_time = millis() - startTime;
lastStart = 0;
data(); // calls saving to SD card

I have.
soft starters are a great way to limit the initial spike, and allow a motor that needs to run at full speed to, well, run at full speed.

the problem here is a the 8 story building has 2 bathrooms on each floor. running one sink can cause the pump to run for about 10 seconds.

if those bathrooms are all used at say, noon, then it runs for longer.

I do understand that the power needed to move water in an 8 story building, does require a 3-phase 7.5 hp motor, and that due to power needed, there would not be much to be done about lowering speed, it would always need to run near max.

And a VSD with PID would need a pressure monitoring circuit, with al the sensors and additional stuff.

the wiring for the unit would be the same.
the VSD could be wired as a soft start.
the cost of a 208volt, 3-phase soft start is about $400 USD
the cost of a 208 volt, 3-phase VSD is about $500 USD

I’ll state the obvious again - emonLib is not suited to your circumstances. If you need a reasonably accurate assessment of power, and starting and running times to better than 5 or 10 seconds resolution, which you clearly do, then you need to think in terms of one of the continuous monitoring sketches, and customise it to generate the start time and running time by putting some extra code in at the per cycle level.

I have been looking for the 3-phase sketch, and I can see what you mean about the continuous running sketch.

My immediate goal is not to measure amps or KW, but how many starts per hour. and how long it runs for, within some wide range of accuracy.

if I use the motor efficiency graph, I can assume the motor will follow the typical spike on start, then settle down and run, then efficiency will follow the tables as the load grows.

this ‘phase-1’ of data is to see what the motor is doing, and when it is doing it. and not energy use, at least not yet.

if you can point me to one of the sketches, that would be very welcome.

phase-2 will be to try to get some sort of accuracy of power.

maybe the ‘grand plan revealed’ might be of interest.

the 8 story building has a ‘demand charge’ that is fully half of the electric bill.
with chillers, chilled water pumps, HVAC units. space heaters, computers, a billboard (20 amps at rest, 50amp at peak), lights, elevator, and water heaters on every floor, the grand plan is to try to reduce the load at peak times to bring down the Demand charge.

‘DEMAND’ is the highest power use over a rolling 15 minutes at any point of the month.

80,000 kWh, but 240kWh Demand.
another way, 80,000/30 days/24hrs/15 minutes is about 28.
so, the highest 15minutes use is 10 times the average.

My goal is to try to bring that peak down.
eventually, I hope to be able to limit what can turn on at times during the day.

I am at the very first steps figuring out where the problems are.
I want to log the operation of each of the 15 circuit breaker panels,
then the individual loads on the panels
then automate the ones I can.

the pump is just the first target. I have been running the logger with 10 second increments and I know it is not very good.

the continuous monitoring is infinitely better.

Personally, I would do the two stages for the pump motor in one. It hardly seems worth customising the sketch (you still need to calculate some form of rectified average and check rapidly) to know when the pump is running, when it’s likely to be easier to add in the start and run times to an existing fully proven piece of software. But you’re doing the job, it’s your choice.

If you search the forum here for “Update to 3-Phase PLL sketch”, you should find it. I don’t use Github - it’s too arcane for me.

Likewise, if you search here for “emonLibCM”, you should find the single-phase library and example sketches.

What are the legal or safety considerations with the (potable) water supply? My immediate thought was, might a header tank on the roof be feasible, which you could refill when demand dropped off?


This is looks promising : emonTx V3 3-phase Firmware from github

as with any project there are projects within projects.
my task is to identify and collect the data.

I am just a volunteer in this project for my Church, not being paid, and being very honest that I cannot actually solve anything.

I can, put order into the confusion.
I am getting operational status of every piece of equipment,
Once I determine the possible savings, we will have to hire a licensed engineer to alter anything. I do not pretend to know, and do not have experience that comes with failures, to be able to design a solution.

I can shut off an HVAC system without causing too much upset in the building, but you are correct that safety come before anything else.
I can find things like a space heater running because the air conditioner is putting too much air into an office, etc.

we are looking into how water on demand for hand washing sinks, vs storage tank water heaters. the storage tank units are single phase(120VAC), the on-demand need to by split phase (208VAC)

Header tank on the roof, mid-floor booster pumps, expansion tanks, etc, all sound like they can work, but that is for a professional to determine.

water pressure per floor is on the list of data as some floors have pressure regulator so one does not wash their hands with 120 PSI water pressure.

That’s out of date. I don’t use Github, it was put there by others. Use the version I pointed you towards.

I used a simple data logger with apparent power for a week.
over 306,000 readings, average time between readings was 1- 2 seconds.

I brought the data into a spreadsheet
time of each stop per the time of day
the start time set the timer.
so each line shows how many seconds the pump ran ( vertical axis in seconds)
my computer is sloooow with this much data.
This was Sunday night so the frequency slowed after about 7:00 PM
the sporadic lines overnight might be caused due to leaks. dripping faucet or some such.