Developer guide
July 8, 2026 · View on GitHub
- Architecture — subsystems, the EvseManager client/priority system, RAPI patterns, configuration management, energy logging, coding conventions
- Building the firmware — PlatformIO envs, the two-core tree, debug builds, host-side tests, divert simulator
- Web UI development — gui-nightshift workflow, mock mode, automated screenshots, the submodule embed rules
- Wired Ethernet — Olimex ESP32-Gateway support
API references: HTTP (api.yml) · MQTT (developer guide) · RAPI
AI coding-agent context: AGENTS.md, invariants, feature map.
Change management
Bugs and change requests go through the GitHub issue tracker — one issue per bug/feature. All changes are made on a branch or fork and submitted as a pull request; PRs are reviewed by a repository administrator before merge (administrators' own PRs are reviewed by another administrator).
CI must be green: firmware builds for 15+ board envs (build.yaml), the GUI
build (build_gui.yml), the divert simulator suite (divert_sim.yaml), and
OpenAPI validation (openapi_validate.yaml).
Creating a release
- Ensure GitHub Actions are complete and green.
- Create a new GitHub release
with a semver tag, e.g.
v5.1.0. - Add release notes (start from the auto-generated notes and edit).
- Tick
Pre-releaseand publish — the build workflow attaches the binaries. - Test the uploaded binaries, at minimum:
openevse_wifi_v1.bin,olimex_esp32-gateway-e.bin,adafruit_huzzah32.bin. - Untick
Pre-release, update the release, and confirm the release validation action is green.