I bought a Level 2 EV charger, mounted it in the garage, and for about a week I was perfectly happy checking my charging in the vendor’s app. Then the app logged me out, made me reset my password, showed me a spinner for thirty seconds, and finally told me my car had charged overnight. It had. I could have learned the same thing by looking at the car. What bothered me was that the one piece of data I actually cared about, how many kilowatt-hours my single largest household load pulled and when, was living on someone else’s server and getting handed back to me on their schedule.
So I did what I do with every important circuit in my house now: I stopped asking the appliance and started measuring the wire. This is the build log for monitoring EV charging locally in Home Assistant, with a current transformer reading the actual draw, off-peak charging logic that runs on my own hardware, and not one dependency on the charger’s cloud. It is the same local-first philosophy I applied to my sump pump and my water shutoff valve, pointed at the biggest number on my electric bill.
Why Not Just Use the Charger’s App
Let me be fair to the boxed chargers first. A modern networked EVSE will show you session history, energy per charge, and often a scheduling feature, all in a decent app. If that is all you want and the app never fails you, you do not need this build.
Here is why it was not enough for me. The charger’s numbers come from the charger’s firmware, reported up to the vendor’s cloud, and handed back through their app on their terms. That is three things I do not own sitting between me and a measurement of my own electricity. When the account system has a bad day, my data stops. When the company decides scheduled charging is now a premium feature, my automation is hostage to a pricing decision. When they sunset the product in four years, as networked hardware companies love to do, the smarts evaporate and I am left with a very expensive dumb relay on the garage wall.
The current on the wire, by contrast, is physics. It does not require a login, it cannot be deprecated, and it does not care whether the vendor still exists. Measuring it directly means my energy history and my charging automations belong to me.
Step 0: Find Out How Your Charger Is Wired Before You Buy Anything
This is the gate that decides which hardware you need, so do it before you order a single part. Go look at how your charger connects to your panel and answer two questions.
Is your charger hardwired, or plugged into a NEMA 14-50 outlet? A lot of Level 2 chargers are hardwired straight into a junction box or the panel on a 240V circuit, usually 40 or 50 amps. Others plug into a NEMA 14-50 receptacle like a welder or an oven. This matters because a plug-in charger gives you a non-invasive option, while a hardwired one means you are clamping inside the panel or a junction box.
Is it a 240V circuit, and what is the breaker size? Almost every Level 2 charger in North America is 240V across two hot legs, commonly on a 40A or 50A breaker delivering a continuous 32A or 40A charge. You need a CT clamp rated comfortably above your continuous draw. A 100A split-core clamp covers any residential EVSE with margin to spare. If you are in a 230V single-phase region, the same logic applies with one leg.
The bad-news case, stated plainly: if you are not qualified and comfortable opening a live electrical panel, do not. A 240V EV circuit is not a doorbell transformer. Either hire an electrician to place the clamp during a twenty-minute visit, or take the whole-home monitor route where a pro installs the clamps once at your main and you never open the panel again.
The Three Ways to Measure It, From Easiest to Nerdiest
There is no single right answer here, so I will give you the three real options and what each one trades away.
Option A: Whole-Home Monitor With a Dedicated Circuit Clamp
The friendliest path is a whole-home energy monitor that supports individual circuit clamps. The Emporia Vue 3 is the community favorite here: it clamps your two mains plus a stack of individual circuits, and crucially it can be flashed with ESPHome to report entirely locally to Home Assistant, with no Emporia cloud in the loop. You dedicate one pair of its circuit clamps to the EV charger’s breaker, and now you have per-circuit EV data alongside whole-home context. If you already wanted whole-home energy monitoring, this is the obvious move because the EV circuit is just one more clamp.
Option B: A Dedicated DIN-Rail Meter on the Charger Circuit
If you want a purpose-built, high-accuracy meter watching only the charger, a Shelly 3EM mounted in a subpanel or enclosure is a clean answer. It is a three-channel energy meter with clamps, one percent accuracy, and it reports locally over your LAN and integrates directly with Home Assistant. Point its clamps at the charger’s legs and you get precise real-time watts, energy totals, and even the ability to drive a contactor. For a 240V North American circuit you use two of its channels for the two hot legs. It is the tidiest install if you have DIN rail space near the charger.
Option C: An ESP32 and a Bare CT Clamp
The nerdiest and cheapest route is the one I take on circuits I already have an ESPHome device near: an ESP32 board reading a split-core current transformer through a burden resistor on an ADC pin. This is the sump-pump approach scaled up: about ten dollars of parts, total control over the firmware, and the satisfaction of a monitor you built yourself. The trade is calibration effort and the fact that a single CT on one leg of a 240V circuit measures current but needs a little math to become accurate power. For a hobbyist who already runs ESPHome, it is a fun afternoon. For everyone else, Option A or B is less fuss.
Wiring the Clamp Safely
Whichever CT route you pick, the placement rule is the same: the clamp goes around one or both hot conductors of the charger circuit, never around the neutral or ground, and never around the whole cable bundle at once, which would cancel out to zero. Kill the breaker before you open anything. If you are using a split-core clamp, you snap it open, place it around the conductor, and snap it shut without ever disconnecting the wire. That non-invasive design is the whole reason CT clamps are the standard for this job.
If any part of that sentence made you uneasy, that is your signal to hand this step to an electrician. There is no shame in it and it is cheaper than a panel fire.
The Home Assistant Side
Once your monitor of choice is reporting, you have a power sensor and an energy sensor for the charger circuit in Home Assistant. The power sensor tells you instantaneous draw in watts, which is how you know a session is active. The energy sensor accumulates kilowatt-hours, which is how you track cost. Add the energy sensor to the Home Assistant Energy dashboard as an individual device and it slots right into your whole-home picture, with a per-session and per-month kilowatt-hour total that no vendor app can take away.
Here is the automation that turned this from a dashboard into something that saves money. My utility charges roughly triple during peak hours, so I want every charge shoved into the cheap overnight window, and I want to know instantly if a session ever runs at peak.
alias: EV charging ran during peak
trigger:
- platform: numeric_state
entity_id: sensor.ev_charger_power
above: 1000
for:
minutes: 2
condition:
- condition: time
after: "16:00:00"
before: "21:00:00"
action:
- service: notify.mobile_app_phone
data:
title: "EV charging during PEAK rates"
message: "The charger is pulling power in the expensive window. Check the schedule."
That alert has caught a silently failed cloud charging schedule twice, each time saving me from a full charge at triple the rate. The monitor pays rent.
Gating the Circuit Locally When You Want Hard Control
Scheduling inside the car or charger is convenient, but it lives in a cloud that can drift. If you want charging that physically cannot happen outside your off-peak window regardless of what any cloud thinks, put a contactor on the circuit and drive it from a local relay. A Zooz ZEN16 MultiRelay gives Home Assistant a dry-contact output to switch a properly rated 240V contactor, so the enable signal for charging comes from your own hardware on your own schedule. Home Assistant closes the contactor at the start of the cheap window and opens it at the end, and no vendor server is anywhere in that decision. This is overkill for most people, whose cars schedule fine, but for anyone whose EVSE has flaky cloud scheduling it is the bulletproof answer.
One honest caution: switching a high-current EV circuit demands a contactor rated for the continuous load and a competent install. This is the tier where an electrician is not optional. But the payoff is charging logic that is as immune to cloud failure as a light switch.
What a Month of Local Data Told Me
The first thing local monitoring showed me was that my charger’s own reported energy was consistently a few percent optimistic compared to the CT clamp on the wire. Not a scandal, just firmware rounding in the vendor’s favor, and exactly the kind of thing you only catch when you measure independently.
The second thing was more useful. By putting the EV circuit on the Energy dashboard, I could finally see charging as a clean line item instead of a lump buried in my whole-home total. It turned out charging was a bigger slice of my bill than I had assumed, which made the off-peak automation an easy financial call. Shifting every session overnight and never missing one, with the peak alert as a backstop, knocked a real and repeating amount off the monthly bill. The hardware paid for itself in the first billing cycle.
The Bottom Line
Your EV charger is the largest single load in most houses, and the factory version reports that load through an app, a login, and a cloud you do not control. You can measure the same electricity directly off the wire for a fraction of the drama, and once you do, the data and the automations belong to you permanently.
If you want the easy path, clamp the charger circuit with an Emporia Vue 3 flashed to ESPHome, or drop in a precise Shelly 3EM on the circuit, and read pure local power in Home Assistant. If you want hard local control over when charging can happen, add a properly rated contactor driven by a Zooz ZEN16 and let your own hardware, not a vendor cloud, decide when your car sips cheap overnight power. Either way, the goal is the same one I chase on every important circuit: measure the physics, own the logic, and never let a company’s server sit between me and my own electrons. For the biggest number on your electric bill, that is the cheapest smart upgrade you can make.