Custom component to integrate with OpenEVSE electric vehicle chargers.
The OpenEVSE Home Assistant integration provides direct, local control over your OpenEVSE charging station. It utilizes the local API over WiFi or Ethernet to communicate, ensuring that all data remains local, secure, and fast without any cloud dependencies.
- ⚡ Local Control: Completely local communication over WiFi or Ethernet—no cloud service required.
- 🔍 Auto-Discovery: Automatic discovery of your charger using Zeroconf.
- 🔄 Real-Time Data: Fast updates via WebSockets for real-time status and power monitoring.
- 📈 HA Energy Integration: Out-of-the-box support for the Home Assistant Energy dashboard via dedicated session and total energy sensors.
- ☀️ Solar PV Divert Mode: Dynamically adjust charging current based on your home's excess solar power.
- 🛡️ Claim & Override System: Safely queue, override, or limit charge rates and sessions using Home Assistant services or the UI.
- 🎨 LED Brightness Control: Manage the charger's LED display brightness directly (firmware v4.1.0+).
- 🆙 Firmware Updates: Track, download, and install charger firmware updates directly within Home Assistant.
Click the badge below to open this repository in HACS:
Alternatively, add it manually within HACS:
- Navigate to HACS in your Home Assistant UI.
- Click the three dots in the upper-right corner and select Custom repositories.
- Paste the URL:
https://github.com/firstof9/openevse - Select the category Integration and click Add.
- Find the OpenEVSE integration in HACS and click Install.
- Restart Home Assistant after the installation completes.
Click to view manual installation steps
[!WARNING] Manual installation bypasses HACS updates. It is highly recommended to use HACS unless you have a specific reason to install manually.
- Open your Home Assistant configuration directory (where you find
configuration.yaml). - If it does not exist, create a folder named
custom_components. - Inside
custom_components, create a new folder namedopenevse. - Download the contents of the
custom_components/openevse/directory from this repository and place them inside the new folder. - Restart Home Assistant.
- In the Home Assistant UI, go to Settings -> Devices & Services.
- If your OpenEVSE charger is detected automatically via Zeroconf, click Configure on the discovered device.
- If not, click + Add Integration in the bottom right, search for OpenEVSE, and select it.
- Enter the charger's Host/IP address (default:
openevse.local), and optional Username and Password if your charger requires authentication.
Note
If configuring the integration to use HTTPS / SSL, certificate files must be uploaded to the OpenEVSE device first.
To unlock smart features like Solar PV Divert, Current Shaper, or vehicle and home battery push, configure external sensors in integration options.
- Go to Settings -> Devices & Services -> OpenEVSE.
- Click Configure on the OpenEVSE integration card.
- Configure the following options as needed:
- Grid Sensor: The sensor measuring net grid power (in Watts).
- Solar Sensor: The sensor measuring solar generation power (in Watts).
- Voltage Sensor: The sensor measuring grid voltage (in Volts).
- Shaper Sensor: The sensor measuring live power used by other household appliances (in Watts) for overload protection.
- Vehicle State of Charge Sensor: Sensor providing vehicle battery percentage (%).
- Vehicle Range Sensor: Sensor providing vehicle range remaining.
- Vehicle Time-to-Full-Charge Sensor: Sensor providing vehicle ETA to complete charging.
- Home Battery State of Charge Sensor: Sensor providing home storage battery percentage (%).
- Home Battery Power Sensor: Sensor providing home storage battery power (in Watts).
- Invert Grid: Toggle this if your grid sensor uses negative values for export.
- GitHub Personal Access Token: Optional token for higher GitHub API rate limits when checking firmware releases.
The integration sets up the following platforms and entities:
| Platform | Key Entities | Description |
|---|---|---|
binary_sensor |
• Vehicle Connected • Manual Override • Divert Active • Shaper Active • Limit Active • OTA Update • MQTT Connected |
Real-time binary states and diagnostics. |
button |
• Restart WiFi • Restart EVSE • Learn RFID Tag (v4.0.0+) |
Triggers to restart hardware components or pair new RFID tags. |
calendar |
• Schedule (v4.0.0+) | View and manage scheduled charging events with start/stop times and charge limits. |
light |
• LED Brightness | Control charger screen/LED brightness (v4.1.0+). |
number |
• Charge Rate | Soft-limit current capacity adjustments (in Amps). |
select |
• Charge Rate • Divert Mode ( fast / eco) |
Select charge limits, divert types, or override status. |
sensor |
• Station Status • Charging Status • Charging Voltage / Current • Current Power Usage (Actual & Calc) • Usage this Session (Energy) • Total Usage (Energy) • WiFi Signal Strength • Temperatures (Ambient, ESP32, RTC, IR) • Vehicle Battery Level (SOC) (v4.1.0+) |
Sensor telemetry, stats, and diagnostic measurements. |
switch |
• Sleep Mode • Manual Override (v4.1.0+) • Solar PV Divert (v4.1.0+) • Current Shaper (v4.1.0+) • RFID Access (v4.0.0+) |
Controls to toggle operational modes and RFID access on the EVSE. |
update |
• OpenEVSE Update | Detects controller firmware updates, provides release notes, and installs updates. |
Services are prefixed with openevse. (e.g., openevse.set_override).
openevse.set_override: Sets a manual override on the charger.- Parameters:
state(optional): Set toactive(start charging) ordisabled(stop charging).charge_current(optional, 1-48A): Target charge current.max_current(optional, 1-48A): Maximum allowed current.auto_release(optional, boolean): Automatically release override on vehicle disconnect.
- Parameters:
openevse.clear_override: Clears the active manual override, returning the charger to its normal programmed behavior.
Claims allow multiple automations or external apps to request different charger states safely.
openevse.make_claim: Register or update a state claim on the charger.- Parameters:
state,charge_current,max_current,auto_release.
- Parameters:
openevse.release_claim: Release the current integration claim.openevse.list_claims(Returns Response Data): Returns a dictionary of all active claims on the EVSE.
openevse.set_limit: Set limits for the charging session.- Parameters:
type(required):time(minutes),energy(Wh),soc(%), orrange(km/mi).value(required, integer): Target value.auto_release(optional, boolean): Release limit on vehicle disconnect.
- Parameters:
openevse.clear_limit: Clear any active session limit.openevse.get_limit(Returns Response Data): Retrieve current session limits from the charger.openevse.list_overrides(Returns Response Data): List active overrides on the EVSE.
openevse.get_time(Returns Response Data): Retrieves current date, time, timezone, and SNTP enabled status from the charger.openevse.set_time: Configures date, time, timezone, or SNTP synchronization on the charger.- Parameters:
time(optional): Target date/time in ISO-8601 format (e.g.,2026-03-25T15:30:00Z).timezone(optional): POSIX timezone string or location (e.g.,America/New_York|EST5EDT,M3.2.0,M11.1.0orEurope/London).sntp(optional, boolean): Enable or disable SNTP/NTP time synchronization.
- Parameters:
openevse.sync_time: Triggers an immediate NTP time synchronization on the charger.
openevse.add_rfid_tag: Puts the charger into RFID learning/pairing mode to register the next scanned card/tag (firmware v4.0.0+).openevse.set_rfid_user: Maps an RFID tag ID to a Home Assistant person entity or friendly user name (firmware v5.0.0+).- Parameters:
rfid(required): RFID tag identifier (e.g.,01020304).person(optional): Entity ID of a Home Assistantperson(e.g.,person.john_doe).name(optional): Friendly user name string (e.g.,John Doe).
- Parameters:
openevse.delete_rfid_user: Deletes an RFID tag mapping from the charger (firmware v5.0.0+).- Parameters:
rfid(required): RFID tag identifier to delete.
- Parameters:
openevse.get_rfid_users(Returns Response Data): Retrieves all registered RFID tag mappings from the charger (firmware v5.0.0+).
Here are some examples of how to invoke these services in your Home Assistant automations or scripts (services support targeting either an OpenEVSE entity like sensor.openevse_charging_status or the OpenEVSE device_id directly):
Note
The examples below use the modern Home Assistant action: syntax. The older service: key is also supported by Home Assistant automations.
Start charging immediately at 24 Amps and release the override once the vehicle is disconnected:
action: openevse.set_override
target:
entity_id: sensor.openevse_charging_status
data:
state: active
charge_current: 24
auto_release: trueAlternatively, you can target the charger device directly:
action: openevse.set_override
target:
device_id: <OPENEVSE_DEVICE_ID>
data:
state: active
charge_current: 24
auto_release: trueStop charging once the vehicle's battery level reaches 80%:
action: openevse.set_limit
target:
entity_id: sensor.openevse_charging_status
data:
type: soc
value: 80
auto_release: trueRemove any active time, energy, SoC, or range limit on the charger:
action: openevse.clear_limit
target:
entity_id: sensor.openevse_charging_statusFor the best user experience, it is highly recommended to install the OpenEVSE Card via HACS (Frontend section). It is designed to match this integration perfectly.
This card provides:
- Real-time charger state & power usage charts.
- Quick controls for manual overrides and sleep toggle.
- Simple slider adjustments for charge current limit.
Contributions are welcome! Please read the Contribution Guidelines before submitting pull requests.
If you like this integration, consider supporting the project:
- Add Wiki
- Expand documentation
- Add Schedule Support
- Add tests
- Current / Voltage / Power sensors
- Session & Total Energy sensors
- Temperatures & Status indicators
- Vehicle Connected detection
- RSSI & Wifi Strength
- Max & Charge Current controls
- Solar PV Divert Mode
- Current Shaper support
- Auto-discovery (Zeroconf)
- Setup and reconfiguration via UI
- WebSocket Real-Time updates
- Home Assistant Energy Integration
