https://github.com/firstof9/python-openevse-http
Python Library for OpenEVSE HTTP API
https://github.com/firstof9/python-openevse-http
hacktoberfest home-assistant home-automation python python3
Last synced: 10 days ago
JSON representation
Python Library for OpenEVSE HTTP API
- Host: GitHub
- URL: https://github.com/firstof9/python-openevse-http
- Owner: firstof9
- License: apache-2.0
- Created: 2021-08-10T17:38:44.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2026-05-30T03:22:24.000Z (10 days ago)
- Last Synced: 2026-05-30T04:12:17.317Z (10 days ago)
- Topics: hacktoberfest, home-assistant, home-automation, python, python3
- Language: Python
- Homepage:
- Size: 714 KB
- Stars: 6
- Watchers: 2
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README




# python-openevse-http
A Python library for communicating with [OpenEVSE](https://www.openevse.com/) chargers via the HTTP API on ESP8266 and ESP32-based WiFi modules.
## Features
- **Asynchronous**: Built on `aiohttp` for non-blocking I/O.
- **WebSocket Support**: Real-time updates for charger status.
- **Firmware Support**: Compatible with ESP8266 (2.x) and ESP32 (4.x+) WiFi firmware.
- **Comprehensive API**:
- Query status and configuration.
- Manage manual overrides.
- Control charging claims and limits.
- Handle schedules.
- **Shaper Toggle**: Enable or disable the grid shaper feature (requires firmware 4.0.0+).
## Installation
```bash
pip install python_openevse_http
```
## Quick Start
```python
import asyncio
from openevsehttp import OpenEVSE
async def main():
# Initialize the charger
charger = OpenEVSE("192.168.1.30")
# Update state
await charger.update()
print(f"Charger State: {charger.status}")
print(f"Current Charge: {charger.charge_current}A")
# Toggle the Shaper feature
if charger.shaper_active:
print("Shaper is active, disabling...")
else:
print("Shaper is inactive, enabling...")
await charger.toggle_shaper()
# Clean up
await charger.close()
if __name__ == "__main__":
asyncio.run(main())
```
## API Support Matrix
| Endpoint | Methods | Supported | Description |
| :--- | :--- | :---: | :--- |
| `/status` | GET, POST | ✅ | Real-time status, sensors, and **Vehicle SoC** pushing |
| `/config` | GET, POST | ✅ | System and WiFi configuration |
| `/override` | GET, POST, PATCH, DELETE | ✅ | Manual charging overrides & current limits |
| `/claims` | GET, POST, DELETE | ✅ | Client-based charging claims |
| `/schedule` | GET, POST | ✅ | Charging schedule management |
| `/limit` | GET, POST, DELETE | ✅ | Charge limits (Time, Energy, SoC) |
| `/shaper` | POST | ✅ | Grid shaper control (v4.0.0+) |
| `/restart` | POST | ✅ | Reboot WiFi gateway or EVSE module |
| `/divertmode` | POST | ✅ | Solar divert mode control |
| `/r` (RAPI) | POST | ✅ | Direct RAPI command interface |
| `/ws` | GET | ✅ | WebSocket real-time updates |
| `/time` | GET, POST | ❌ | RTC and NTP time settings |
| `/logs` | GET | ❌ | System and debug event logs |
| `/emeter` | DELETE | ❌ | Energy meter reset |
| `/wifi` | GET, POST | ❌ | Network scanning and AP configuration |
| `/tesla` | GET | ❌ | Tesla vehicle integration |
| `/certificates`| GET, POST, DELETE | ❌ | SSL/TLS certificate management |
| `/schedule/plan`| GET | ❌ | Schedule planning and optimization |
| `/update` | POST | ❌ | Firmware update interface |
| `/rfid/add` | POST | ❌ | RFID tag management |
✅ = Fully Supported \| ⚠️ = Partial Support \| ❌ = Not yet implemented
## License
This project is licensed under the Apache-2.0 License.