You don’t have to worry about consuming excessive grid energy or pausing charging when conditions aren’t good (e.g. low solar surplus).
EVCM helps Home Assistant charge one or more electric vehicles only when it makes sense and is flexible in how you set it up.
- Starts charging when there is enough excess power (solar export / surplus)
- Pauses charging when you start importing too much from the grid
- Slowly turns the charging amps up or down to match what you have available
- Can stop at a chosen battery percentage (SoC limit)
- Can restrict charging to a time window (planner)
- Can handle more than one wallbox with or without a priority order (who gets to charge first)
- Lets you force charging manually if you just want to plug in and go
- Supports phase switching for even better load balancing
You set a few numbers and switches; it does the boring part.
From your charger integration (e.g. Wallbox) you need:
- Charge power sensor (sensor)
- Charging status / state sensor (sensor)
- Cable connected (binary_sensor)
- Charging enable (switch)
- Lock (lock entity)
- Current setting (number entity to set amps)
- A phase feedback sensor (only required when using the phase switching feature)
From your energy setup:
- Either a single “net power” sensor (positive = export, negative = import)
OR separate export and import sensors
Optional:
- EV battery SoC (%) for use with the SoC limit function
If your setup does not expose these required entities directly (for example when using Modbus), you can create Template Helpers in Home Assistant to bridge the gap.
EVCM is a feedback loop (measure → decide → command → observe).
It was primarily developed and tested with local, low‑latency control (e.g. MQTT on the LAN, typically sub‑second end‑to‑end).
If your charger is controlled through a high‑latency and/or rate‑limited path (e.g. a cloud API), you may experience:
- slower response to changing conditions (export/import),
- less accurate regulation,
- repeated commands because state updates arrive late,
Recommendation: prefer local control when possible. If you must use a cloud integration, instructions are available in: docs/README.md
- Via HACS: search for "EVCM", download and restart Home Assistant
- Or manual: copy
custom_components/evcm/into your Home Assistantconfigdirectory and restart - Add integration: Home Assistant → Settings → Devices & Services → Add Integration → search “EVCM”
During the config flow:
- Pick a name and how you provide net power (single net sensor vs export + import)
- Choose 1‑phase or 3‑phase (affects minimum power math)
- Select your wallbox (optional) and phase switching support (optional)
- Map the charger and grid sensors
- Enter the threshold bands:
- ECO ON (used when the ECO switch is ON)
- ECO OFF (used when the ECO switch is OFF)
- Set the sustain, debounce and scan interval timings
- Submit
- Plug in the EV
- Make sure
Start/Stopis ON - ECO ON uses the ECO ON thresholds; ECO OFF uses the other band (handy for different seasons like summer vs winter)
- Watch it adjust amps up/down as sun/clouds change
- Need to force charging? Turn
ManualON (ignores threshold gating and automatic current regulation) - Want it to stop at 80%? Set the SoC limit number to 80
- Optionally: use the Max peak avg setting to override ECO thresholds if an easy adjustable or automated threshold is needed (e.g. prevent exceeding monthly max peak average)
- Each charger (“entry”) has its own switches
- Turn
Priority ChargingON (any entry’s proxy switch) to let only one charge at a time - Set order numbers (1, 2, 3…). Order 1 is “first in line.”
- When the first finishes or reaches its SoC limit, the next starts if conditions allow
- Full deep-dive (all concepts, events, edge cases): docs/README.md
- Releases / changelog: Releases
- Issues / feedback: GitHub Issues
MIT
Happy smart charging!