Your EV charger is one of the biggest energy consumers in your home. Plugging it in and hoping for the best is leaving money on the table. With Home Assistant, you can charge on solar surplus, shift to off-peak rates automatically, prevent breaker trips with load balancing, and track every kWh. This guide covers the best HA-compatible chargers, how to set them up, and the automations that pay for themselves.
Jump to a section
A "dumb" EV charger pulls maximum power the moment you plug in. That might be fine if you have unlimited cheap electricity, but most people do not. Energy prices vary by time of day, solar panels produce free power during daylight hours, and your home electrical connection has limits. Smart charging solves all three problems.
Feed excess solar production directly into your car instead of exporting it to the grid for pennies. On a sunny day, you can add 30 to 50 km of range for free.
Shift charging to night rates automatically. With dynamic tariffs (Tibber, Octopus, ANWB Energie), this can cut your charging costs by 40 to 60 percent.
Prevent breaker trips by dynamically adjusting charger power based on household consumption. Cook dinner and charge your car without worrying about the fuse.
See exactly how much energy your EV consumes per day, week, and month. Track cost per charge and compare solar vs grid charging over time.
Real savings example: A typical EV driver in the Netherlands charges about 3,000 kWh per year. At an average price of 0.30 EUR/kWh, that is 900 EUR. With solar surplus charging covering 40% and off-peak rates cutting the rest by 50%, annual charging costs drop to around 270 EUR. That is 630 EUR saved per year, just from smart scheduling.
Not every charger talks to Home Assistant. Some have native integrations, others need HACS add-ons or MQTT bridges. Here are the best options sorted by how well they integrate.
Best for Home Assistant power users
OpenEVSE is the gold standard for HA integration. It connects over MQTT and HTTP with zero cloud dependency. You get full amperage control, energy metering, temperature monitoring, and a built-in solar divert mode. The hardware is open source, so you can flash custom firmware and tweak everything.
Integration
MQTT + HTTP (local)
Max Power
7.4 kW (1-phase) / 22 kW (3-phase)
Price
450 to 650 EUR
Solar Divert
Built-in
Best for plug-and-play simplicity
Easee is extremely popular in Europe, especially Scandinavia and the Netherlands. The official Home Assistant integration connects through the Easee cloud API. You get start/stop control, amperage adjustment, energy readings, and charger status. The downside: it requires internet. If Easee's servers go down, HA loses control. A HACS local integration exists but is community-maintained.
Integration
Official (cloud)
Max Power
22 kW (3-phase)
Price
600 to 900 EUR
Solar Divert
Via HA automation
Best mid-range charger with good HA support
Wallbox has an official Home Assistant integration via their cloud API. The Pulsar Max also supports local API access through a HACS integration, which is a big win for reliability. Energy metering, charging control, and scheduling all work well. The Eco-Smart feature handles basic solar surplus charging through their own app, but for full control, use HA automations instead.
Integration
Official (cloud) + HACS (local)
Max Power
22 kW (3-phase)
Price
550 to 800 EUR
Solar Divert
Eco-Smart + HA automation
Best local API for tinkerers
The go-e Charger has a well-documented local HTTP API that works without any cloud connection. The Home Assistant integration (via HACS) gives you full control: start, stop, set amperage, read energy, and check status. All locally. Austrian-made, solid build quality, and the Gemini Flex variant is portable for those who want to take it on the road.
Integration
HACS (local HTTP)
Max Power
11 kW (3-phase)
Price
500 to 700 EUR
Solar Divert
Via HA automation
Best if you drive a Tesla
If you drive a Tesla, you control charging through the car itself rather than the charger. The Tesla integration in Home Assistant gives you start/stop, charge limit, amperage control, and battery level. The Wall Connector itself does not have a direct HA integration, but the car-level control means you do not need one. Works with the Tesla Fleet API (you will need to set up your own app credentials since 2024).
Integration
Tesla Fleet API (cloud)
Max Power
11 kW (EU) / 19.2 kW (US)
Price
450 to 550 EUR
Solar Divert
Via HA automation (car API)
Popular in Scandinavia and the Netherlands
Zaptec is growing fast in the European market. A HACS integration connects through their cloud API, giving you start/stop control, energy readings, and status monitoring. The Pro model supports built-in load balancing across multiple chargers, making it popular for apartment buildings. The Go model is the residential option with a compact, weatherproof design.
Integration
HACS (cloud)
Max Power
22 kW (3-phase)
Price
700 to 1,100 EUR
Solar Divert
Via HA automation
Here is how these chargers stack up on the things that matter most for HA integration.
| Charger | Local Control | Energy Metering | Amperage Control | Solar Ready | Price |
|---|---|---|---|---|---|
| OpenEVSE | โ Full | โ | โ 6-32A | โ Built-in | โฌ450-650 |
| go-e Charger | โ Full | โ | โ 6-16A | Via HA | โฌ500-700 |
| Wallbox Pulsar | โ ๏ธ HACS only | โ | โ 6-32A | Eco-Smart + HA | โฌ550-800 |
| Easee | โ Cloud only | โ | โ 6-32A | Via HA | โฌ600-900 |
| Tesla Wall Conn. | โ Car API | Via car | โ Via car | Via HA | โฌ450-550 |
| Zaptec | โ Cloud only | โ | โ 6-32A | Via HA | โฌ700-1,100 |
Our pick: If you want maximum control and local operation, go with OpenEVSE or go-e Charger. If you want something your electrician already knows how to install and you do not mind a cloud connection, Easee or Wallbox are solid choices.
This is where it gets really good. Instead of exporting solar power to the grid for a fraction of what you pay to buy it back, you pump that energy straight into your car. Here is how to set it up.
The basic logic is simple: Solar production minus household consumption equals surplus. When surplus exceeds the minimum charging threshold (about 1.4 kW for single-phase, 4.1 kW for three-phase), Home Assistant tells your charger to start. As surplus changes throughout the day, HA adjusts the charging amperage to match. When clouds roll in and surplus drops below minimum, charging pauses.
solar_production - grid_export gives you the excessThis automation checks surplus every 5 minutes and adjusts charger amperage accordingly. It handles the minimum threshold, smooth ramping, and pausing when surplus drops.
# Solar surplus EV charging automation
automation:
- alias: "EV Solar Surplus Charging"
trigger:
- platform: time_pattern
minutes: "/5"
condition:
- condition: state
entity_id: binary_sensor.ev_connected
state: "on"
- condition: numeric_state
entity_id: sensor.ev_battery_level
below: 80
action:
- variables:
surplus_watts: >-
{{ states('sensor.solar_power') | float(0)
- states('sensor.house_consumption') | float(0)}}
min_watts: 1400
max_amps: 16
amps_needed: >-
{{ ((surplus_watts / 230) | round(0)) | int}}
- choose:
- conditions:
- condition: template
value_template: "{{ surplus_watts > min_watts}}"
sequence:
- service: number.set_value
target:
entity_id: number.ev_charger_amperage
data:
value: >-
{{ [6, [amps_needed, max_amps] | min] | max}}
- condition: state
entity_id: switch.ev_charger
state: "off"
- service: switch.turn_on
target:
entity_id: switch.ev_charger
default:
- condition: state
entity_id: switch.ev_charger
state: "on"
- service: switch.turn_off
target:
entity_id: switch.ev_chargerAdjust entity names to match your setup. The 6A minimum is required by the EV charging standard (IEC 61851). Most cars will not accept less than 6A.
Here is a step-by-step walkthrough to get your charger connected and ready for smart charging.
Go to Settings, Devices and Services, Add Integration. Search for your charger brand. For OpenEVSE, install the HACS integration and enter your charger's local IP. For Easee and Wallbox, log in with your cloud account credentials. For go-e, add the HACS integration and point it at your charger's IP address.
After adding the integration, check Developer Tools and States. You should see entities for charger status (charging, idle, connected), current/voltage/power readings, energy consumed, and a switch or button to start/stop charging. Most integrations also expose a number entity for setting amperage.
Go to Settings, Dashboards, Energy. Under "Individual devices," add your charger's energy sensor. This gives you a breakdown of EV charging vs total household consumption. If your charger does not report energy, put a smart plug with energy monitoring (like Shelly Plug S) inline, though this only works for chargers drawing under 3.5 kW on a single socket.
For Tesla, use the Tesla Fleet API integration. For other EVs, check if your brand has a HACS integration (Hyundai/Kia, BMW, Volkswagen, Renault, and Polestar all have community integrations). Car integrations add battery level, range, and location sensors. This lets you set charge limits and stop charging at a specific percentage.
Beyond solar surplus charging (covered above), here are five more automations that make your EV charging genuinely smarter.
Start charging when rates drop, stop before peak pricing kicks in. Works with dynamic tariffs (Tibber, Octopus) or fixed off-peak windows.
automation:
- alias: "EV Off-Peak Charging"
trigger:
- platform: time
at: "23:00:00"
condition:
- condition: state
entity_id: binary_sensor.ev_connected
state: "on"
- condition: numeric_state
entity_id: sensor.ev_battery_level
below: 80
action:
- service: switch.turn_on
target:
entity_id: switch.ev_charger
- alias: "EV Stop Before Peak"
trigger:
- platform: time
at: "07:00:00"
action:
- service: switch.turn_off
target:
entity_id: switch.ev_chargerPrevent breaker trips by adjusting charger amperage based on household load. Essential if your electrical connection is limited.
automation:
- alias: "EV Load Balancing"
trigger:
- platform: time_pattern
seconds: "/30"
condition:
- condition: state
entity_id: switch.ev_charger
state: "on"
action:
- variables:
main_fuse_amps: 25
headroom: 2
house_amps: >-
{{ states('sensor.grid_current') | float(0)}}
available: >-
{{ main_fuse_amps - headroom - house_amps}}
- service: number.set_value
target:
entity_id: number.ev_charger_amperage
data:
value: "{{ [6, [available | int, 16] | min] | max}}"Stop charging at 80% for daily use (extends battery life), but allow charging to 100% before long trips. Uses an input boolean you flip when planning a road trip.
automation:
- alias: "EV Stop at Charge Limit"
trigger:
- platform: numeric_state
entity_id: sensor.ev_battery_level
above: 79
condition:
- condition: state
entity_id: input_boolean.ev_trip_mode
state: "off"
action:
- service: switch.turn_off
target:
entity_id: switch.ev_charger
- service: notify.mobile_app
data:
message: "EV charged to 80%. Stopping for battery health."If you arrive home with a low battery and do not plug in within 30 minutes, get a reminder. Uses presence detection and car battery level.
automation:
- alias: "EV Forgot to Plug In"
trigger:
- platform: state
entity_id: person.your_name
to: "home"
for: "00:30:00"
condition:
- condition: numeric_state
entity_id: sensor.ev_battery_level
below: 30
- condition: state
entity_id: binary_sensor.ev_connected
state: "off"
action:
- service: notify.mobile_app
data:
message: "Your EV battery is at {{ states('sensor.ev_battery_level')}}%. Don't forget to plug in!"Get a monthly summary of how much energy your EV consumed and what it cost, broken down by solar vs grid.
automation:
- alias: "EV Monthly Charging Report"
trigger:
- platform: time
at: "09:00:00"
condition:
- condition: template
value_template: "{{ now().day == 1}}"
action:
- service: notify.mobile_app
data:
title: "EV Charging Report"
message: >-
Last month: {{ states('sensor.ev_charger_energy_monthly')}} kWh
Cost: โฌ{{ (states('sensor.ev_charger_energy_monthly') | float * 0.25) | round(2)}}
Solar share: {{ states('sensor.ev_solar_charging_percentage')}}%A dedicated EV card on your Home Assistant dashboard gives you a quick overview of charging status, battery level, energy consumed today, and current power draw. Here are the cards worth adding.
Use a gauge card showing your EV's battery percentage. Set severity colors: red below 20%, yellow below 50%, green above 50%. Add the charge limit as a marker line.
The power-flow-card (HACS) shows real-time energy flow between solar, grid, house, and EV charger. Instantly see if your car is charging from the sun or the grid.
An apexcharts-card (HACS) showing daily EV charging energy over the past 30 days. Stack solar vs grid energy in different colors to see your solar utilization trend.
Mushroom chips for start/stop charging, trip mode toggle, and a slider for manual amperage override. One tap to switch between solar-only, off-peak, and full-speed charging modes.
Your situation determines the best choice. Here is a quick decision guide.
Get an OpenEVSE. MQTT and HTTP access, no cloud dependency, built-in solar divert. You need a competent electrician for installation, but after that, everything runs on your network.
Learn about MQTT setup โGo with Wallbox Pulsar Max or go-e Charger. Both have local API options and are widely available through certified installers. Wallbox has the edge on power (22 kW), go-e on local API simplicity.
HACS integration guide โAny HA-compatible charger works for solar surplus charging via automations. OpenEVSE has it built in, others need a simple HA automation (see the YAML above). Make sure your inverter is also integrated.
Solar integration guide โMany popular chargers have integrations. OpenEVSE and go-e Charger connect locally (MQTT/HTTP). Easee, Wallbox, Tesla, and Zaptec work through cloud APIs. Check the Home Assistant integrations page or HACS for your specific brand. If your charger has no integration, you can still use a smart relay or contactor for basic on/off control.
Yes. You need your solar inverter and EV charger both in Home Assistant, plus a sensor calculating surplus power. An automation adjusts charger amperage to match available surplus. The minimum is 1.4 kW (6A at 230V) for single-phase charging. On a good solar day with a 5 kW system, you can add 30 to 50 km of range without touching the grid.
It depends on your energy situation. Solar surplus charging can cover 30 to 50% of your annual EV energy for free. Off-peak scheduling saves another 20 to 40% on grid charging costs. Combined, savings of 400 to 800 EUR per year are realistic for a typical European driver doing 15,000 km annually. The payback on a smart charger vs a dumb one is usually under 2 years.
You need at least 1.4 kW of surplus power to start single-phase charging (6A minimum by EV standard). With a typical 4 to 6 kW residential solar system, you will have enough surplus on sunny days after household base load. Larger systems (8 to 10 kW) provide more consistent surplus and can even charge at higher amperages during peak sun hours.
Yes, but you need per-phase current monitoring (a 3-phase CT clamp or smart meter like the Shelly 3EM). The automation should check the highest loaded phase rather than total power, because a single overloaded phase trips the breaker even if total consumption is within limits. Most chargers that support 3-phase also allow switching to 1-phase mode for lower-power situations.
Only if it supports local control. OpenEVSE (MQTT/HTTP) and go-e Charger (local API) work entirely on your LAN. Easee, Zaptec, and the Tesla integration require internet because they use cloud APIs. Wallbox Pulsar Max has a local API option via HACS, but the official integration is cloud-based. For maximum reliability, choose a charger with local control.
Run a free HomeShift scan to check which of your existing smart home devices work with Home Assistant, then start building your smart charging setup.