Home » smart home » Monitoring Power Consumption with CT Sensor

Monitoring Power Consumption with CT Sensor

Having the capability to monitor power consumption is definitely nice-to-have and plays an important role to reducing energy bill. Since some time ago, I’ve been looking for off-the-shelves wireless solution/product, such as these:



However, looks like they are not something I’m willing to pay that kind of price, especially if I need multiple units – one for each electrical appliance. Then, I came across the non-invasive CT clamps and OpenEnergyMonitor who open-sourced their work on utilising these clamps. So, I happily purchased a couple units of different values, to measure load ranging from 5A to 100A.

The clamp estimate current flowing through the cable via electromagnetic induction (and thereby current generation) on secondary coil. Physically, all I need to do is place the clamp on the Live or Neutral (not both!) wire and then hook it up to a micro-controller to take the readings. Remember Power = Current x Voltage, the easiest way to start with using this clamp is to assume fixed AC voltage (i.e. ~240Vrms in Malaysia).

You can find the theories and guide on OpenEnergyMonitor. I had to slice the outer plastic shell of the cable in order to access the Live/Neutral wire. Here’s a picture of my setup using the ESP8266.

As always, the data will be posted to my MQTT broker and visualised on Grafana.

I did some testing and compared it with a 3-pin plug power consumption meter that I have. On a pure resistive load such as a hair dryer, it seems to agree with each other sometimes.

Meter (Watt) CT Sensor (Watt) Difference (%)
95 150 57.9
290 275 -5.2
345 550 59.4
856 830 -3.0
1050 1050 0
1800 1800 0

However, when having a refrigerator as the load, the power calculated from CT sensor doesn’t agree with the meter at all. Hence, I hook up the CT sensor to an oscilloscope to better understand the load characteristic.

Here’s how a typical resistive load looks like. An almost perfect sine wave.

When the refrigerator is in idle mode, calculation with CT sensor indicates 20W while the meter shows roughly 2W. Current consumption profile on the oscilloscope shows something not resembling a sine wave. Hence, the calculation which assumes sine wave results in massive error.

When the refrigerator’s compressor kick in, the characteristic looks closer to sine wave. Meter reads 120W while calculation based on CT sensor results in 240W.

By the way, this is what happens when I forget the capacitor across the voltage divider and ground.

Well, I still haven’t figure out how to solve this issue. Until this is resolved, the readings can only be for qualitative purpose but not quantitative, which missed the objective of monitoring power consumption.


Leave a Reply

Your email address will not be published. Required fields are marked *