The most useful thing about a home energy monitor is not what it measures. It is the behaviour change that follows. The first week you have one, you discover that your refrigerator pulls 200 watts for fifteen seconds out of every hour, that your gaming PC idles at 110 watts even when nobody is using it, and that the always-on devices in your house add up to roughly a quarter of your monthly bill. None of that shows up on the utility statement; the statement is one number per month, with no story attached.
This project builds an energy monitor that turns the meter into a continuous signal you can read on your phone. Non-invasive current clamps around the supply cable, an ESP32 doing the math, and a dashboard. Total cost around $35. Installs without an electrician, without breaking the seal on the meter, and without touching mains wiring directly.
How the measurement works
240V or 120V] --> Cable[Live wire to home] Cable -.->|magnetic field| Clamp[SCT-013 current clamp
30A or 100A] Clamp -->|small AC voltage| Cond[Conditioning circuit
burden resistor + bias] Cond --> ADC[ESP32 ADC] ADC --> Math[Compute RMS, power, energy] Voltage[ZMPT101B
voltage transformer] --> ADC Math -->|MQTT or HTTP| Cloud[Backend / dashboard] Cloud --> Phone[Phone or web UI]
The clamp sits on the live wire and transforms the magnetic field into a tiny AC voltage proportional to current. The ESP32 reads it, multiplies by mains voltage, and that's instantaneous power.
The non-invasive current clamp (SCT-013-030 for up to 30A, SCT-013-100 for 100A homes) is a current transformer with the primary being whatever cable you clip it around. It outputs a small AC voltage in proportion to the current flowing through that cable. Add a burden resistor and a DC bias circuit, and the ESP32's ADC can read it directly.
For real power (watts) rather than just current (amps), you also need to know the voltage. The ZMPT101B transformer module gives the ESP32 a clean replica of the mains voltage waveform, scaled down to safe levels. Sample both at the same time, multiply, average — that is real power. Without it, you can only measure apparent power, which is wrong for any load with a non-unity power factor (motors, LED drivers, switching power supplies — most modern loads).
Bill of materials
- ESP32 DevKit — $8
- SCT-013-030 current clamp (or -100 for 100A panels) — $8
- ZMPT101B voltage sensor module — $5
- Burden resistor: 33 ohm 1/4W (for SCT-013-030 with 3.3V ADC) — pennies
- 2× 10 kohm + 1× 10 µF capacitor for DC bias — pennies
- USB-C power supply (2A) — $5
- Project enclosure (vented, plastic) — $4
- Optional: 0.96" OLED for local display — $4
About $30–35 for a single-clamp setup. For a three-phase home, multiply the clamp + ZMPT101B count by 3.
Where to install the clamp
The clamp goes around the live wire feeding your distribution board. In most homes that is a single thick cable from the meter to the main breaker. Find it before buying any hardware — if it runs through conduit you cannot easily clip onto, the project gets harder.
Critical safety notes:
- Do not open the meter cabinet. The seal there is the utility's, not yours; tampering is illegal and dangerous. The clamp goes after the meter, on the consumer side.
- Do not clamp around both live and neutral together. The currents cancel and you get zero. One conductor only.
- Only use clamp-on sensors. Splicing into mains wiring directly is not what this article is about and is genuinely dangerous if you don't know what you're doing.
If you cannot reach a single live wire safely, an alternative is to clamp around the live wire feeding individual high-power circuits (oven, AC, EV charger) at the breaker panel. You won't measure total household consumption but you will see the major loads.
Calibration
Calibration is the difference between "I see numbers" and "I see the right numbers". Two coefficients to determine:
- Voltage scale. Plug a known load into a Kill-A-Watt or borrow one from a friend. Adjust the multiplier in code until the ESP32's voltage reading matches the meter's.
- Current scale. Run a known appliance (a 1500W electric kettle is ideal — pure resistive, easy to calculate). Adjust the current multiplier until the ESP32 reports 1500W ± a few percent.
Once calibrated, the readings should track within 2–3% of a commercial energy monitor (which is usually rated at ±1%). Good enough to act on.
What the data tells you
After two weeks of logging, you will see patterns. The fridge cycles. The HVAC ramps. There is always a 30–100W "phantom" baseline from devices that are nominally off. Specific behaviours to look for:
- Idle PCs and consoles. A gaming PC in sleep can draw 60W. Multiplied by 24 hours it is roughly $5/month wasted.
- Hot water tanks. Electric ones cycle at 1500–3000W in 5–15 minute bursts. The cycle frequency tells you about insulation quality.
- Cooling. AC and refrigeration loads correlate with outside temperature; you can see the curve.
- Phantom loads. Things you forgot were plugged in. The 24-hour minimum is your floor; reducing that floor by even 30W saves ~$30/year.
Frequently Asked Questions
Is this safe?
The clamp is non-invasive — you do not break or touch any mains conductor. The ZMPT101B contains a transformer that isolates the mains side from the ESP32 side. As long as you only clip the clamp around an insulated cable and don't open the meter, you are safe. If your installation requires removing covers or splicing, hire an electrician.
How accurate is it compared to a Kill-A-Watt or Sense?
With careful calibration, ±2–3% on real power. Kill-A-Watt is ±0.5% but only works on plugged-in appliances. Sense (the commercial home energy monitor) is ±1% and uses ML to identify individual appliances; this DIY build doesn't do that.
Can I monitor solar generation?
Yes. Add a second clamp on the solar inverter's output. The sign of the current tells you import vs export.
How does it integrate with Home Assistant?
Publish via MQTT. HA picks it up automatically with the MQTT integration and you get history, automations, and alerts.
Get the complete project package
The article above shows the core firmware and the principles behind it. The complete project package — assembled, tested, and ready to flash — is available by email request. We send it manually, and we read every request.
- Complete Arduino sketch (.ino) with full error handling
- List of required libraries with version numbers
- Printable wiring diagram (PDF)
- Bill of materials with current part numbers
- Build guide and troubleshooting tips
- Configuration template (WiFi, MQTT, etc.)
Share your thoughts
Worked with this in production and have a story to share, or disagree with a tradeoff? Email us at support@mybytenest.com — we read everything.