Перейти к содержимому

Why Three Single-Phase Meters Can't Measure Your 3-Phase Power

Sampling-instant skew, the voltage-reference trap, and the coherent per-phase fix you can build today
29 июля 2026 г. от
Why Three Single-Phase Meters Can't Measure Your 3-Phase Power
Administrator

The setup everyone builds

You have a three-phase supply and you want it in Home Assistant, so you do the obvious thing: three single-phase meters — a PZEM, a Shelly EM, an ATM90E32 board — one per phase, and add the three numbers together. It looks completely reasonable. It's also where the trouble starts, because when each meter looks at the waveform turns out to matter as much as what it measures.

Power is instantaneous — so the sampling instant matters

Voltage and current are waves at 50 or 60 Hz. Instantaneous power is their product at a single moment, p(t) = u(t)·i(t), and real power is the average of that product over a whole cycle. Measure current at one instant on phase A and voltage at a slightly different instant — or on a different device's clock — and you're no longer multiplying values that belong to the same moment. Sum three such mismatched per-phase results and the error doesn't cancel; it compounds. Three meters that each sample correctly on their own still can't be added into an honest three-phase total unless they sampled together.

Three voltage sinusoids offset by 120° — at any given instant all three phases have different voltages, so sampling must be synchronous

Three-phase voltages offset by 120°: at any instant all three differ. The navy dashed line marks one sampling moment — all three phases must be captured here. The red dashed line shows what happens with round-robin: read later, get the wrong value.

Round-robin vs continuous sampling

Many low-cost multi-channel chips don't sample all channels at once — they time-share one ADC, hopping channel to channel ("round-robin"). Each channel is caught on a different slice of the waveform. On the OpenEnergyMonitor forum, dBC measured exactly what that does:

"In one 5-second interval the reported average power was out by 32% … I actually saw 40% at one stage."

and warned about the mechanism:

"If you're doing 'round robin' sampling … you run the risk of some significant errors creeping in, all depending on the luck of which 2 or 3 cycles you picked up."

The multi-chip version of the same problem shows up in the ESPHome/ATM90E32 world, where separate chips report on separate clocks:

"The data from each chip is published at different times, ~20 seconds or so apart … calculated sensor values are incorrect."

Continuous, synchronous sampling — every channel measured on one shared timebase — is what removes this whole class of error. Round-robin trades accuracy for a cheaper ADC.

The voltage-reference trap

Three-phase adds a second, subtler mistake: which voltage goes with which current. Real power on a phase needs that phase's voltage and current together (P = U·I·cosφ). Wire a meter so a current is multiplied by the wrong phase's voltage — or by a single shared voltage sense — and the phase angle is wrong by up to 120°, so cosφ collapses. One installer on the OpenEnergyMonitor forum hit it head-on:

"When I place the CTs on each phase at their final location (not all 3 on the load-test phase), I measure half the power."

And the classic shortcut — measure one phase and multiply by three — only works if the load is perfectly balanced, which real panels never are:

"My system is 3-phase, but I should only need to measure the power of one phase, then multiply it by…"

Both are the same root cause: a current measured against the wrong (or a stand-in) voltage reference isn't real power. It's why a clamp can read high — apparent power, not active:

"The difference is real vs apparent power and will have the clamp meter reading higher than the billed current."

How wrong is it, really? (instantaneous vs energy)

This is the part to be precise about, because the honest answer depends on the timescale — and on which cheap approach you took.

In a single reading / short window, non-synchronous sampling can be off by tens of percent — the 32–40% dBC measured is real, and it's worst on fast-changing and unbalanced loads.

Accumulated over time (the kilowatt-hours on your bill), some short-window noise averages out — but a systematic error does not. How big it is depends on the method. The figures below are engineering estimates from load-imbalance physics (not a bench measurement), for a realistic unbalanced domestic three-phase load — where one phase carries roughly 20–50% of the total instead of an even third, per-phase voltage differs by ~1–5%, and the mix includes switching-supply and reactive loads:

  • Measure one phase and multiply by three → typically 15–50% off, all month. The error is 3·P_measured / P_total − 1, and the measured phase almost never carries exactly a third. Land on a heavy phase (say 50% of the load) and you read 3 × 0.5 = 1.5+50% over; a light phase (20%) → 3 × 0.2 = 0.6−40% under. It's systematic — fixed by how your loads happen to be spread across phases — so it does not average out over a billing period.
  • Round-robin / three independent meters → typically 3–10% off on an unbalanced home. Much better, because all three phases are actually seen — but two residual errors remain: a shared-voltage assumption (~1–5%, the voltage-reference trap above) and non-coincident V/I sampling (a few % up to 10%+ on reactive, fast-switching loads, where P = U·I·cosφ needs samples from the same instant).
  • Coherent per-phase integration → under 1%, limited only by each channel's own calibration — if every phase gets its own voltage-and-current sample set, integrated as true active power, then summed. That's the whole game, and it's the next section.

So the honest headline isn't "three meters are useless." It's sharper: triple-one-phase can be wrong by 15–50% in the same direction all month; even the smarter round-robin meter is still a few-to-ten percent off on a real unbalanced home; and adding three independently-sampled phases is simply not the same measurement as sampling three phases at once. For live curiosity it's fine. For numbers that reconcile with the utility meter, the phases have to be measured coherently.

The fix: measure every phase coherently

Three-phase load connection topology — per-phase CT clamp and rbAmp module on L1, L2, L3 connected via I²C bus to one ESP32

Per-phase measurement: each phase gets its own CT and rbAmp module, all connected to one ESP32 over a single I²C bus. The load imbalance (L2 heaviest, L3 lightest) is exactly what makes per-phase measurement necessary.

The cure follows straight from the diagnosis. You need two things at once: each phase's current paired with its own phase's voltage (kills the voltage-reference trap), and all phases captured on one shared instant (kills the sampling skew).

That's what a proper per-phase measurement module gives you when you put one on each phase. Each module clamps its CT around a single phase conductor and taps that same phase's voltage, then computes real active power right there — from its own coherent voltage-and-current pair. No shared-voltage stand-in, no wrong-phase multiply; power factor and per-phase energy are real, per phase. Put three on one bus and synchronize them — a single broadcast "latch now" command freezes all three on the same instant, sub-10-microsecond skew — and the three per-phase results finally belong to the same moment. Sum them and the total reconciles with the utility meter to within each channel's calibration: the sub-1% tier, not the 15–50% of the triple-one-phase shortcut.

The key point is that this is a measurement architecture, not a Home Assistant trick. rbAmp's UI modules do the coherent per-phase real-power math on-chip and expose a synchronized fleet-latch over I²C — so you can drive a three-phase setup from whatever fits your stack, all reading the same coherent numbers off the same hardware:

  • Home Assistant / ESPHome — the modules show up as native per-phase voltage / current / power / energy / power-factor entities plus a coherent three-phase total, ready to drop into the Energy Dashboard.
  • Arduino / C++ — the Arduino library reads each module's per-phase real power and issues the fleet broadcast-latch directly, for a standalone controller, logger, or local display.
  • Python (Raspberry Pi / SBC) — the Python library does the same from a Pi, feeding MQTT, a database, or your own dashboard.

The platform is just how you collect the numbers; the coherent per-phase measurement happens in the hardware either way.

A dedicated single-board three-phase module (U3I3) is in development — one board, three phases, one address — for when you'd rather not wire three modules. It's on the roadmap, not shipping yet; subscribe below and we'll say when it lands.

Want to build it? The full hands-on version — bill of materials, wiring, per-module addressing, the complete ESPHome config, and the Energy-Dashboard setup — is in the companion project: Three-phase energy monitoring in Home Assistant: 3× rbAmp UI on one ESP32.

Questions & answers

Why don't my per-phase energy numbers add up to the whole-house meter? Because three independent meters sample at different instants (and sometimes against a stand-in voltage), so their per-phase results don't belong to the same moment. Summing them isn't the same as measuring all phases together — the mismatch shows up as tens of percent in any reading and a persistent gap on unbalanced or reactive loads.

What is continuous vs round-robin sampling in an energy meter? Continuous (synchronous) sampling measures every channel on one shared timebase, so the samples you combine belong to the same moment. Round-robin time-shares a single ADC across channels, catching each on a different slice of the waveform — cheaper, but a source of large short-window error on multi-channel and 3-phase setups.

Why do my three CT clamps read half the power? Almost always a voltage-reference mistake: a phase's current is being multiplied by the wrong phase's voltage (or a single shared voltage), so the phase angle — and cosφ — is wrong. Each current must be paired with its own phase's voltage.

Can I measure one phase and multiply by three? Only if the load is perfectly balanced across all three phases, which real installations aren't. On a typical unbalanced panel the ×3 shortcut runs 15–50% off — and in the same direction all month, so it never averages out.

How accurate is coherent per-phase three-phase metering? When each phase is measured with its own voltage and current, integrated as real active power, and all phases latch on one shared instant, the three-phase total reconciles to within each channel's own calibration — comfortably under 1% on the kinds of unbalanced, reactive loads that make the cheap shortcuts read 15–50% wrong. That's the whole point of measuring the phases together instead of adding three independent meters.

Where to go next


Documentation & source code
📖 rbAmp documentation overview · 💻 rb-amp/rbamp-docs on GitHub
How CT Energy Measurement Really Works — From Clamp to Kilowatt-Hours
Why your energy monitor doesn't match the meter — and what fixes it