Thanks for your interest! Contributions are welcome.
Open an issue first for anything non-trivial. A quick discussion saves everyone time — we might already be working on it, or there might be reasons we went a different direction.
- Install PlatformIO (VS Code extension recommended)
- Clone this repo
- Open the
esp32-wallboxfolder in VS Code - Connect an ESP32-S3 via USB
pio run -e esp32s3 -t uploadto flashpio device monitorto see serial output
Probably the most valuable — test with your charger and open an issue using the
charger_compatibility template. Even reporting "works exactly like Pulsar MAX" is useful.
Pull requests for bug fixes are welcome. Include:
- What the bug is
- How to reproduce it
- What your fix does
- Serial log before/after if relevant
Discuss in an issue first. The project aims to stay focused:
- ✅ Wallbox-specific features
- ✅ Home Assistant integration improvements
- ✅ BLE/WiFi stability
- ✅ Documentation
- ❌ General-purpose ESP32 frameworks
- ❌ Cloud polling (we explicitly don't do this — use the official HA Wallbox integration)
Always appreciated. The HA integration doc especially benefits from real automation examples.
- C++ follows Arduino conventions (camelCase methods, PascalCase classes)
- Short comments explaining why, not what
- JSON serialization uses
ArduinoJsonv7 - Web UI uses inline styles for one-offs, CSS classes for reused patterns
- BAPI method constants in
include/bapi.h, never hardcode strings
The project has an integration test suite — run against a live gateway:
# See previous test runs in conversation history for reference
# Tests expect gateway at http://wallbox-gw.local/ or configured IP
python tests/integration_test.pyBefore submitting a PR:
-
pio run -e esp32s3builds clean - Tested on actual hardware
- CHANGELOG.md updated under
[Unreleased]section - README updated if adding user-visible features
Follow Conventional Commits:
feat: short description of what was added
fix: short description of what was fixed
docs: documentation changes
refactor: code changes with no behavior change
chore: build/release tooling
Keep commits focused — one logical change per commit.
By contributing, you agree your contributions are licensed under the MIT License (same as the project).
Don't submit code you don't own or have rights to. Specifically:
- No decompiled code from the Wallbox APK
- No proprietary protocol documentation
- No BAPI commands copied from non-public sources
The BAPI method names in this project are string constants sent over BLE, not copied source code. They were discovered through legitimate BLE protocol analysis (EU Directive 2009/24/EC Art. 6 — decompilation for interoperability).