{"id":20107,"name":"OpenEVSE","description":"Firmware for OpenEVSE: Open Source Hardware J1772 Electric Vehicle Supply Equipment.","url":"https://github.com/OpenEVSE/open_evse","last_synced_at":"2026-07-14T16:30:21.007Z","repository":{"id":41846691,"uuid":"45942313","full_name":"OpenEVSE/open_evse","owner":"OpenEVSE","description":"Firmware for Open EVSE","archived":false,"fork":true,"pushed_at":"2026-07-11T00:04:57.000Z","size":27710,"stargazers_count":149,"open_issues_count":5,"forks_count":93,"subscribers_count":24,"default_branch":"master","last_synced_at":"2026-07-11T15:03:43.305Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"lincomatic/open_evse","license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenEVSE.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2015-11-10T21:46:15.000Z","updated_at":"2026-07-11T11:27:28.000Z","dependencies_parsed_at":"2023-09-21T19:56:50.402Z","dependency_job_id":null,"html_url":"https://github.com/OpenEVSE/open_evse","commit_stats":{"total_commits":655,"total_committers":16,"mean_commits":40.9375,"dds":"0.35114503816793896","last_synced_commit":"e30257190365699be8776815d0ec86570235e81a"},"previous_names":[],"tags_count":60,"template":false,"template_full_name":null,"purl":"pkg:github/OpenEVSE/open_evse","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenEVSE%2Fopen_evse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenEVSE%2Fopen_evse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenEVSE%2Fopen_evse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenEVSE%2Fopen_evse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenEVSE","download_url":"https://codeload.github.com/OpenEVSE/open_evse/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenEVSE%2Fopen_evse/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35427836,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-13T02:00:06.543Z","response_time":119,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"OpenEVSE","name":"OpenEVSE","uuid":"14914533","kind":"organization","description":"Open Source Electric Vehicle Charging Station (EVSE)","email":"info@openevse.com","website":"http://www.openevse.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/14914533?v=4","repositories_count":7,"last_synced_at":"2023-03-02T06:25:22.736Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/OpenEVSE","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-12T23:59:20.255Z","updated_at":"2023-03-02T06:25:22.769Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenEVSE","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenEVSE/repositories"},"packages":[],"commits":{"id":1254111,"full_name":"OpenEVSE/open_evse","default_branch":"master","total_commits":724,"total_committers":17,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":42.588235294117645,"dds":0.1795580110497238,"past_year_total_commits":61,"past_year_total_committers":3,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":20.333333333333332,"past_year_dds":0.3114754098360656,"last_synced_at":"2026-07-11T15:01:58.728Z","last_synced_commit":"9eccf4eb524e025afd0b421cd401439e11843e24","created_at":"2023-03-27T10:58:31.416Z","updated_at":"2026-07-11T15:01:26.143Z","committers":[{"name":"lincomatic","email":"lincomatic@hotmail.com","login":"lincomatic","count":594},{"name":"Craig Kirkpatrick","email":"craigk46@comcast.net","login":"craigk46","count":49},{"name":"chris1howell","email":"chris1howell83@gmail.com","login":null,"count":16},{"name":"Dan McGee","email":"dan@archlinux.org","login":"toofishes","count":15},{"name":"Chris Howell","email":"chris1howell@msn.com","login":"chris1howell","count":12},{"name":"Nick Sayer","email":"nsayer","login":"nsayer","count":8},{"name":"KipK","email":"hotlobster75@gmail.com","login":"KipK","count":8},{"name":"Jeremy Poulter","email":"jeremy@bigjungle.net","login":"jeremypoulter","count":6},{"name":"Glyn Hudson","email":"glyn.hudson@gmail.com","login":"glynhudson","count":3},{"name":"Oleksiy Protas","email":"elfy.ua@gmail.com","login":"landswellsong","count":3},{"name":"William McBrine","email":"wmcbrine@gmail.com","login":"wmcbrine","count":3},{"name":"Joakim","email":"skrivtilmegsnart@hotmail.com","login":"jamyrb","count":2},{"name":"Boris Kvid","email":"bkvid@seek.com.au","login":"borhub","count":1},{"name":"LavredisG","email":"90918919+LavredisG","login":"LavredisG","count":1},{"name":"Ryan Press","email":"ryan@presslab.us","login":"presslab-us","count":1},{"name":"steepestdescent","email":"41576661+steepestdescent","login":"steepestdescent","count":1},{"name":"zymurgic","email":"simon.hewison@zymurgy.org","login":"zymurgic","count":1}],"past_year_committers":[{"name":"lincomatic","email":"lincomatic@hotmail.com","login":"lincomatic","count":42},{"name":"chris1howell","email":"chris1howell83@gmail.com","login":null,"count":16},{"name":"Chris Howell","email":"chris1howell@msn.com","login":"chris1howell","count":3}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenEVSE%2Fopen_evse/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-07-13T00:00:36.321Z","repositories_count":6323174,"commits_count":858860802,"contributors_count":35283456,"owners_count":1200427,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"OpenEVSE/open_evse","html_url":"https://github.com/OpenEVSE/open_evse","last_synced_at":"2026-07-11T15:00:38.933Z","status":"active","issues_count":0,"pull_requests_count":26,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":8266865.95,"issues_closed_count":0,"pull_requests_closed_count":20,"pull_request_authors_count":18,"issue_authors_count":0,"avg_comments_per_issue":null,"avg_comments_per_pull_request":1.4615384615384615,"merged_pull_requests_count":9,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":4,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":983188.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":3,"past_year_pull_request_authors_count":3,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":1,"created_at":"2023-05-09T10:37:00.751Z","updated_at":"2026-07-11T15:00:38.933Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenEVSE%2Fopen_evse","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenEVSE%2Fopen_evse/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{},"pull_request_author_associations_count":{"NONE":16,"COLLABORATOR":7,"MEMBER":3},"issue_authors":{},"pull_request_authors":{"jeremypoulter":5,"kimble4":2,"Tifaifai":2,"lincomatic":2,"Tinbum1":2,"sandeen":1,"RAR":1,"zymurgic":1,"linuxkidd":1,"chris1howell":1,"landswellsong":1,"alandpearson":1,"glynhudson":1,"cgalpin":1,"LavredisG":1,"KipK":1,"jerkey":1,"YannCat":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-07-13T00:00:22.962Z","repositories_count":14860436,"issues_count":32106767,"pull_requests_count":105649760,"authors_count":11344599,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{"NONE":3,"MEMBER":1},"past_year_issue_authors":{},"past_year_pull_request_authors":{"Tinbum1":2,"chris1howell":1,"RAR":1},"maintainers":[{"login":"jeremypoulter","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jeremypoulter"},{"login":"lincomatic","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/lincomatic"},{"login":"glynhudson","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/glynhudson"},{"login":"chris1howell","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/chris1howell"},{"login":"KipK","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/KipK"}],"active_maintainers":[{"login":"chris1howell","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/chris1howell"}]},"events":{"total":{"ReleaseEvent":4,"ForkEvent":9,"DiscussionEvent":1,"WatchEvent":16,"IssueCommentEvent":2,"PushEvent":25,"CreateEvent":2},"last_year":{"ReleaseEvent":1,"ForkEvent":1,"DiscussionEvent":1,"WatchEvent":5,"IssueCommentEvent":1,"PushEvent":18,"CreateEvent":2}},"keywords":[],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/build.yml","sha":null,"kind":"manifest","created_at":"2023-01-30T19:45:33.503Z","updated_at":"2023-01-30T19:45:33.503Z","repository_link":"https://github.com/OpenEVSE/open_evse/blob/master/.github/workflows/build.yml","dependencies":[{"id":7253997886,"package_name":"crazy-max/ghaction-dump-context","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/build_arduino.yml","sha":null,"kind":"manifest","created_at":"2023-01-30T19:45:33.609Z","updated_at":"2023-01-30T19:45:33.609Z","repository_link":"https://github.com/OpenEVSE/open_evse/blob/master/.github/workflows/build_arduino.yml","dependencies":[{"id":7253997905,"package_name":"actions/cache","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7253997906,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7253997907,"package_name":"arduino/setup-arduino-cli","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7253997908,"package_name":"actions/upload-artifact","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/build_platformio.yml","sha":null,"kind":"manifest","created_at":"2023-01-30T19:45:33.702Z","updated_at":"2023-01-30T19:45:33.702Z","repository_link":"https://github.com/OpenEVSE/open_evse/blob/master/.github/workflows/build_platformio.yml","dependencies":[{"id":7253997923,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7253997924,"package_name":"actions/cache","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7253997925,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7253997926,"package_name":"actions/upload-artifact","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/release.yml","sha":null,"kind":"manifest","created_at":"2023-01-30T19:45:33.745Z","updated_at":"2023-01-30T19:45:33.745Z","repository_link":"https://github.com/OpenEVSE/open_evse/blob/master/.github/workflows/release.yml","dependencies":[{"id":7253997976,"package_name":"actions/download-artifact","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7253997977,"package_name":"marvinpinto/action-automatic-releases","ecosystem":"actions","requirements":"latest","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/release_validation.yaml","sha":null,"kind":"manifest","created_at":"2023-01-30T19:45:33.785Z","updated_at":"2023-01-30T19:45:33.785Z","repository_link":"https://github.com/OpenEVSE/open_evse/blob/master/.github/workflows/release_validation.yaml","dependencies":[{"id":7253998003,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]}],"score":7.870165946469846,"created_at":"2023-09-11T14:52:09.754Z","updated_at":"2026-07-14T16:30:21.009Z","avatar_url":"https://github.com/OpenEVSE.png","language":"C","category":"Consumption","sub_category":"Mobility and Transportation","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# OpenEVSE — System Overview \u0026 Developer Reference\n\nOpenEVSE is an open-source electric vehicle supply equipment (EVSE) platform consisting of three tightly integrated components: an AVR-based charging controller, an ESP32 WiFi gateway, and a Svelte web interface. Together they deliver a fully featured, locally hosted EV charging station with cloud integration, energy management, and smart-home connectivity.\n\n---\n\n## Architecture Overview\n\n```\n┌─────────────────────────────────────────────────────┐\n│                   Web Browser / App                 │\n│            openevse-gui-v2  (Svelte / Vite)         │\n└────────────────────┬────────────────────────────────┘\n                     │  HTTP REST / WebSocket\n┌────────────────────▼────────────────────────────────┐\n│          ESP32 WiFi Gateway Firmware                │\n│    openevse_esp32_firmware  (C / C++ / ESP-IDF)     │\n│  WiFi · Ethernet · MQTT · OCPP · Home Assistant     │\n└────────────────────┬────────────────────────────────┘\n                     │  Serial RAPI API (UART) 115200\n┌────────────────────▼────────────────────────────────┐\n│      OpenEVSE EV Safety Controller Firmware         │\n│      open_evse  (C++, ATmega328P/ARM SAMD21)        │\n│   J1772 · GMI/GFI · Relay · Pilot · Proximity       │\n└─────────────────────────────────────────────────────┘\n```\n---\n\n## 1. OpenEVSE Controller Firmware\n\n**Repository:** \u003chttps://github.com/OpenEVSE/open_evse\u003e  \n**MCU:** ATmega328P / ATSAMD21G18  \n**Language:** C++ (83.8%), Roff  \n**Standard:** SAE J1772 (Level 1 \u0026 Level 2)\n\n### Key Capabilities\n\n- GFI (Ground Fault Interrupter) protection\n- Pilot signal generation and state machine (A/B/C/D/E/F)\n- Relay control with stuck-relay and no-ground fault detection\n- Time-based scheduled charging\n- Display with 3.5\" TFT or Text RGB backlight\n- Temperature monitoring (MCP9808)\n- Ammeter with calibration\n- Charge time and energy limits\n- Heartbeat supervision for gateway watchdog\n- Mennekes lock control (EU Type 2)\n\n### Build \u0026 Programming\n\n- Pre-compiled binaries available on GitHub Releases\n- Compile with VSCode / PlatformIO using bundled library versions\n- Flash via `avrdude` with USBASP or compatible ISP programmer\n- Hardware definitions in `/boards/`, firmware source in `/firmware/open_evse/`\n\n---\n\n## 2. RAPI Protocol\n\nThe Remote API (RAPI) is a serial ASCII protocol used by the ESP32 gateway (and any host) to control and query the OpenEVSE controller over UART.\n\n**Format:** `$\u003ccmd\u003e [args...]*\u003cchecksum\u003e\\r\\n`  \n**Response:** `$OK [values...]` or `$NK` (not OK)\n\n### Function Commands\n\n| Command | Description | Parameters |\n|---|---|---|\n| `FD` | Disable EVSE | — |\n| `FE` | Enable EVSE | — |\n| `FS` | Sleep EVSE | — |\n| `FR` | Restart EVSE | — |\n| `F0` | Enable/disable display updates | `1`=enable, `0`=disable |\n| `F1` | Simulate front-panel button press | — |\n| `FB` | Set LCD backlight color | `0`=OFF `1`=RED `2`=GREEN `3`=YELLOW `4`=BLUE `5`=VIOLET `6`=TEAL `7`=WHITE |\n| `FP` | Print text on LCD | x, y, text |\n| `FF` | Enable/disable feature flag | feature_id (`B/D/E/F/G/R/T/V`), `0`/`1` |\n\n### Set Commands\n\n| Command | Description | Parameters |\n|---|---|---|\n| `SC` | Set current capacity | amps, `[V\\|M]` |\n| `SL` | Set service level | `1`=L1, `2`=L2, `A`=Auto |\n| `ST` | Set timer | starthr, startmin, endhr, endmin |\n| `S3` | Set charge time limit | cnt × 15 min |\n| `SH` | Set charge limit | kWh |\n| `SK` | Set accumulated Wh | value |\n| `SV` | Set voltage for power calc | millivolts |\n| `SA` | Set ammeter calibration | currentscalefactor, currentoffset |\n| `SM` | Set voltmeter calibration | voltscalefactor, voltoffset |\n| `S1` | Set RTC clock | yr, mo, day, hr, min, sec |\n| `S2` | Enable/disable ammeter cal mode | `0`/`1` |\n| `S4` | Set auth lock | `0`=unlocked, `1`=locked |\n| `S5` | Mennekes lock setting | `A`=auto, `M`=manual, `0`=unlock, `1`=lock |\n| `SB` | Clear boot lock | — |\n| `SY` | Set heartbeat supervision | interval, currentlimit |\n| `S0` | Set LCD type | `0`=monochrome, `1`=RGB |\n\n### Get Commands\n\n| Command | Description | Response |\n|---|---|---|\n| `GS` | Get EVSE state | evsestate, elapsed, pilotstate, vflags |\n| `GG` | Get charging current \u0026 voltage | milliamps, millivolts |\n| `GU` | Get energy usage | Wattseconds, Whacc |\n| `GC` | Get current capacity info | minamps, hmaxamps, pilotamps, cmaxamps |\n| `GE` | Get settings | amps, flags |\n| `GV` | Get firmware \u0026 protocol version | firmware_version, protocol_version |\n| `GT` | Get RTC time | yr, mo, day, hr, min, sec |\n| `GP` | Get temperature sensors | ds3231temp, mcp9808temp, tmp007temp |\n| `GO` | Get overtemperature thresholds | ambientthresh, irthresh |\n| `GH` | Get charge limit | kWh |\n| `G3` | Get charge time limit | cnt |\n| `GD` | Get delay timer | starthr, startmin, endhr, endmin |\n| `GF` | Get fault counters | gfitripcnt, nogndtripcnt, stuckrelaytripcnt |\n| `GA` | Get ammeter settings | currentscalefactor, currentoffset |\n| `GM` | Get voltmeter settings | voltscalefactor, voltoffset |\n| `G0` | Get EV connect state | connectstate (`0`/`1`/`2`) |\n| `G4` | Get auth lock state | lockstate |\n| `G5` | Get Mennekes settings | state, mode |\n| `GI` | Get MCU ID | mcuid |\n| `GY` | Get heartbeat supervision status | interval, currentlimit, trigger |\n\n---\n\n## 3. ESP32 WiFi Gateway Firmware\n\n**Repository:** \u003chttps://github.com/OpenEVSE/openevse_esp32_firmware\u003e  \n**MCU:** ESP32  \n**Language:** C (73%), C++ (24.7%)  \n**License:** GPL v3  \n**Latest Release:** v5.1.5 (October 2025)  \n**Minimum OpenEVSE firmware:** v7.1.3\n\n### Connectivity\n\n- 802.11 b/g/n WiFi (AP + STA modes)\n- Wired Ethernet via ESP32 Gateway board\n- UART to OpenEVSE controller (RAPI)\n\n### Features\n\n| Feature | Status |\n|---|---|\n| Web UI control (start/pause, current, schedules, limits) | Stable |\n| MQTT status \u0026 control | Stable |\n| Emoncms logging (`data.openevse.com` or self-hosted) | Stable |\n| Eco / Solar divert mode | Stable |\n| Power shaper (grid capacity management) | Stable |\n| OTA firmware updates | Stable |\n| OCPP v1.6J | Stable |\n| Home Assistant integration | Stable |\n| Tesla vehicle API | Available |\n\n### REST API\n\nBase URL: `http://\u003cdevice-ip\u003e` (default hostname: `openevse.local`)\n\n#### Status\n\n| Method | Endpoint | Description |\n|---|---|---|\n| `GET` | `/status` | Current EVSE operational state |\n| `POST` | `/status` | Push external data (voltage, power, solar, grid, battery) |\n| `GET` | `/ws` | WebSocket — real-time state stream |\n\n#### Configuration\n\n| Method | Endpoint | Description |\n|---|---|---|\n| `GET` | `/config` | Read WiFi/EVSE settings |\n| `POST` | `/config` | Write config (EmonCMS, solar divert, charging mode, Tesla credentials) |\n\n#### Manual Override\n\n| Method | Endpoint | Description |\n|---|---|---|\n| `GET` | `/override` | Read current override |\n| `POST` | `/override` | Set override with custom parameters |\n| `PATCH` | `/override` | Toggle override state |\n| `DELETE` | `/override` | Clear override |\n\n#### Claims (multi-client current arbitration)\n\n| Method | Endpoint | Description |\n|---|---|---|\n| `GET` | `/claims` | List all client claims |\n| `GET` | `/claims/{client}` | Get specific client claim |\n| `POST` | `/claims/{client}` | Create/update claim |\n| `DELETE` | `/claims/{client}` | Release claim |\n\n#### Scheduling\n\n| Method | Endpoint | Description |\n|---|---|---|\n| `GET` | `/schedule` | List all schedule events |\n| `POST` | `/schedule` | Batch update events |\n| `GET` | `/schedule/{id}` | Get event by ID |\n| `POST` | `/schedule/{id}` | Update event |\n| `DELETE` | `/schedule/{id}` | Remove event |\n| `GET` | `/schedule/plan` | Planned events by day |\n\n#### Limits\n\n| Method | Endpoint | Description |\n|---|---|---|\n| `GET` | `/limit` | Get active charge limit |\n| `POST` | `/limit` | Set charge limit |\n| `DELETE` | `/limit` | Clear charge limit |\n\n#### System\n\n| Method | Endpoint | Description |\n|---|---|---|\n| `POST` | `/restart` | Restart gateway or EVSE (`device` param) |\n| `GET` | `/time` | Get current time and timezone offset |\n| `POST` | `/time` | Set time and timezone |\n| `DELETE` | `/emeter` | Reset energy meter |\n| `GET` | `/logs` | Log block index |\n| `GET` | `/logs/{index}` | Fetch log events for block |\n\n#### Tesla\n\n| Method | Endpoint | Description |\n|---|---|---|\n| `GET` | `/tesla/vehicles` | List vehicles linked to Tesla account |\n\n#### Certificates\n\n| Method | Endpoint | Description |\n|---|---|---|\n| `GET` | `/certificates` | List uploaded TLS certificates |\n| `POST` | `/certificates` | Upload certificate |\n| `GET` | `/certificates/{id}` | Get certificate by ID |\n| `DELETE` | `/certificates/{id}` | Delete certificate |\n\n### Full API Spec\n\nOpenAPI / Swagger specification: `api.yml` in the firmware repository root.  \nInteractive docs: \u003chttps://openevse.stoplight.io/docs/openevse-wifi\u003e\n\n---\n\n## 4. Web Interface (openevse-gui-v2)\n\n**Repository:** \u003chttps://github.com/OpenEVSE/openevse-gui-v2\u003e  \n**License:** BSD-2-Clause  \n**Stack:** Svelte, Vite, Bulma CSS  \n**Language:** Svelte (54.9%), JavaScript (44.2%)\n\n### Features\n\n- Dashboard: live state, current draw, energy session\n- Start / pause charging\n- Current capacity slider\n- Scheduler: create, edit, and delete timed charging events\n- Eco/Solar divert mode controls\n- System configuration (WiFi, MQTT, EmonCMS, limits)\n- Internationalization (i18n)\n\n### Development\n\n```bash\n# Clone with submodules\ngit clone --recurse-submodules https://github.com/OpenEVSE/openevse-gui-v2.git\ncd openevse-gui-v2\n\nnpm install\n\n# Set target device (defaults to openevse.local)\nexport VITE_OPENEVSEHOST=192.168.x.x\n\nnpm run dev        # Dev server on :5173 — proxies API to VITE_OPENEVSEHOST\nnpm run build      # Production build → dist/\n```\n\n---\n\n## 5. Integration Notes\n\n### MQTT\n\nThe ESP32 gateway publishes EVSE state and subscribes to control topics. Configure broker, username, password, and base topic via `/config` or the web UI. Commonly used with Home Assistant MQTT discovery.\n\n### Emoncms\n\nData can be logged to `enoncms.org` or a self-hosted Emoncms instance. Set `emoncms_apikey`, `emoncms_server`, and `emoncms_node` in `/config`.\n\n### Eco / Solar Divert Mode\n\nThe gateway accepts real-time solar generation and grid import data via `POST /status` (fields: `solar`, `grid_ie`, `voltage`) and adjusts the pilot current to charge only from surplus renewable energy.\n\n### Home Assistant\n\nBeta native integration. Alternatively, use MQTT with HA's MQTT integration. The gateway's auto-discovery payloads populate entities automatically.\n\n### OCPP v1.6\n\nBeta support for communicating with a central management system (CMS/CSMS). Configure OCPP server URL and identity via `/config`.\n\n---\n\n## 6. Hardware References\n\n| Component | Link |\n|---|---|\n| OpenEVSE Plus v5 Controller | \u003chttps://github.com/OpenEVSE/OpenEVSE_PLUS\u003e |\n| ESP32 WiFi Kit | \u003chttps://www.openevse.com\u003e |\n| OpenEVSE Hardware Repo | \u003chttps://github.com/OpenEVSE/OpenEVSE_PLUS\u003e |\n\n---\n\n## 7. Useful Links\n\n| Resource | URL |\n|---|---|\n| Main firmware repo | \u003chttps://github.com/OpenEVSE/open_evse\u003e |\n| ESP32 gateway firmware | \u003chttps://github.com/OpenEVSE/openevse_esp32_firmware\u003e |\n| Web interface | \u003chttps://github.com/OpenEVSE/openevse-gui-v2\u003e |\n| Interactive API docs | \u003chttps://openevse.stoplight.io/docs/openevse-wifi\u003e |\n| OpenEnergyMonitor | \u003chttps://openenergymonitor.org\u003e |\n\nTip Jar: Lincomatic developed/maintains this firmware on a volunteer basis. Any donation, no matter how small, is greatly appreciated.\n\n[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.me/lincomatic)\n\n```text\nOpen EVSE is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation; either version 3, or (at your option)\nany later version.\n\nOpen EVSE is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Open EVSE; see the file COPYING.  If not, write to the\nFree Software Foundation, Inc., 59 Temple Place - Suite 330,\nBoston, MA 02111-1307, USA.\n\n* Open EVSE is distributed in the hope that it will be useful,\n* but WITHOUT ANY WARRANTY; without even the implied warranty of\n* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n```\n","funding_links":["https://www.paypal.me/lincomatic"],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["openevse","emonevse","ev","evse","j1772","emoncms","openenergymonitor","wifi","esp8266-arduino","serial"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/20107","html_url":"https://ost.ecosyste.ms/projects/20107"}