|
About
|
This project details how I repurposed the current transformer (CT) clamp sensor from an old Efergy Elite 1.0r energy monitor, connecting it to an ESP32 running ESPHome for real-time home energy monitoring in Home Assistant. |
|
After my Efergy Elite monitor stopped working, I decided to reuse the CT clamp to add energy tracking directly into Home Assistant, using an ESP32 and ESPHome. This project is suitable for anyone who has one of these Efergy units lying around or wants to integrate a CT clamp sensor with ESPHome. |
Parts needed
ESP32 development board
Efergy Elite 1.0r CT clamp and base station
3.5mm jack socket (to connect the CT clamp, if not reusing original wiring)
Resistors (for voltage divider and burden resistor, see below)
Capacitors
Small prototype board or breadboard
Jumper wires
USB power supply for ESP32
|
Calibration |
Before connecting anything to the ESP32, it’s essential to check how much voltage your CT clamp produces under a typical load. This ensures you pick the correct burden resistor and protect your ESP32 from over-voltage.
Safety first: Make sure all connections are insulated and take care around mains wiring.
Ideally if you have a power meter (like this one) your going to be able to calibrate your device much more accuratly.
|
 |
Plug the CT clamp around a single live or neutral wire of a device you know the power rating for—e.g., a 2kW kettle or heater.
Set your multimeter to AC volts.
Connect your multimeter probes across the CT clamp output (unplugged from any other circuit).
Turn on the load and observe the AC voltage reading.
What to expect:
The voltage will typically be quite small (well under 1V AC for most consumer clamps with 2kW loads), but can vary.
Write down this voltage.
For example, if you measure 0.33V AC with a 2kW load, use that for calculating the burden resistor and ADC scaling.
Why This Matters
Too high a voltage: You risk damaging the ESP32 ADC.
Too low a voltage: You’ll get poor resolution or noisy readings.
This real-world check is better than just trusting the clamp’s label/spec (if you even have this info) |
 |
|
Calibration example & calculator
A 2KW fan heater shows exactly 2KW on the power meter.
The mains is 240v
Burden resistor 22R
Voltage across the burden resistor is 0.4V AC rms
Get the current amps if you measured in watts: 2,000 / 240 = 8.33A
So in the calibration section,
0.4v AC -> 8.33 amps
example |
sensor:
- platform: adc
pin: GPIO36
name: "CT Clamp Current"
attenuation: 11db
update_interval: 5s
filters:
- calibrate_linear:
- 0.01 -> 0
- 0.40 -> 8.33
- sliding_window_moving_average:
window_size: 12
send_every: 4
unit_of_measurement: "A"
accuracy_decimals: 2
|
|
The circuit below is exactly what I use.

Use a voltage divider to bias the signal to half the ESP32 ADC range (usually 1.65V for 3.3V logic).
Connect the divided signal to an ESP32 ADC pin (e.g., GPIO 36).
|
Note: Double-check your clamp’s output voltage and ESP32 ADC specs before connecting. Incorrect values can damage your ESP32. Anything going over 3 volts is too much. |
|
|
|
Results
After flashing the ESP32 and wiring it up, you’ll see real-time current measurements in Home Assistant. With some simple templating or ESPHome config tweaks, you can also estimate power (Watts) and daily energy (kWh).

Troubleshooting
Readings seem too high/low: Double-check the burden resistor value and voltage divider.
No readings: Make sure the clamp is around only the live or neutral wire, not both.
Unstable values: Ensure good electrical contact, shield long wires if needed.
|
Originally blogged in 2021 here:
https://community.home-assistant.io/t/energy-tracking-with-esp32-ct-clamp-sensor-from-an-efergy-elite-1-0r/344002
|
|
|
|
|
|
Since writing the original blog, my version now has its own display showing the live power usage.
Over roughly a year, this display is starting to suffer burnout from 24/7 illumination, so now it only comes on when the room is occupied. |
 |
|
Additional things I need to experiment with:
Change the enclosure to something more suitable
Rebuild this circuit
|
|
|
|