ESP32 Energy tracker using old Efergy Elite CT clamp

 

 


 

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
          

CT Clamp Calibration Calculator









Results:
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

 

 
 
 

 

 

← Back to Projects