Skip to main content

Python wrapper for OpenEVSE HTTP API

Project description

Codecov branch GitHub commit activity (branch) GitHub last commit GitHub release (latest SemVer)

python-openevse-http

A Python library for communicating with OpenEVSE 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

pip install python_openevse_http

Quick Start

import asyncio
import aiohttp
from openevsehttp import OpenEVSE

async def main():
    async with aiohttp.ClientSession() as session:
        charger = OpenEVSE("192.168.1.30", session=session)
        await charger.update()

        print(f"Charger State: {charger.status}")
        print(f"Current Charge: {charger.charge_current}A")

        if charger.shaper_active:
            print("Shaper is active, disabling...")
        else:
            print("Shaper is inactive, enabling...")

        await charger.toggle_shaper()
        await charger.ws_disconnect()

if __name__ == "__main__":
    asyncio.run(main())

HTTPS and SSL Verification Options

If your OpenEVSE WiFi/ethernet module uses HTTPS, you can configure the client to connect securely using the ssl=True parameter:

        # Connect securely using HTTPS (validating SSL/TLS certificates)
        charger = OpenEVSE(
            "192.168.1.30",
            session=session,
            ssl=True,
        )

Bypassing SSL Verification (Self-Signed Certificates)

[!WARNING] Disabling SSL certificate validation (ssl_verify=False) disables TLS verification and exposes the connection to Man-in-the-Middle (MITM) attacks. Only use this configuration when connecting to an OpenEVSE module with a self-signed certificate over a trusted local network.

To bypass certificate verification:

        # Connect using HTTPS, and disable certificate verification
        charger = OpenEVSE(
            "192.168.1.30",
            session=session,
            ssl=True,
            ssl_verify=False,
        )

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 (Retrieval only)
/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.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python_openevse_http-1.4.0.tar.gz (73.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

python_openevse_http-1.4.0-py3-none-any.whl (31.2 kB view details)

Uploaded Python 3

File details

Details for the file python_openevse_http-1.4.0.tar.gz.

File metadata

  • Download URL: python_openevse_http-1.4.0.tar.gz
  • Upload date:
  • Size: 73.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for python_openevse_http-1.4.0.tar.gz
Algorithm Hash digest
SHA256 673d4562b5abee362f537309f29b511f69547a07052bf254d83d99b93771c1a5
MD5 80f50c442fa6b5952d2a154a9b344967
BLAKE2b-256 9e2c3fa7a741e36368c09f1c36d9a95777def9a55519b04d35b20fcf3c6ec841

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_openevse_http-1.4.0.tar.gz:

Publisher: publish-to-pypi.yml on firstof9/python-openevse-http

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_openevse_http-1.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for python_openevse_http-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0ad06c28ecd8af862c51a8635f9c77ef192b391bcf52e36cfa2029c9a3b21f3a
MD5 15080ebd00dcf2a72169e8e3e2d9ba65
BLAKE2b-256 2be62354748fb3ede85e1d8ce2517d76c338271d14ae983095bffb7f94509d2b

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_openevse_http-1.4.0-py3-none-any.whl:

Publisher: publish-to-pypi.yml on firstof9/python-openevse-http

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page