Wallbox
Wallbox EV chargers — Pulsar, Pulsar Plus, Commander 2, and Copper SB — via the myWallbox cloud REST API at api.wall-box.com. Reports per-charger live status (state, charging power, session energy, current limit) and lets you remotely resume, pause, lock, unlock, reboot, trigger firmware updates, and adjust the soft current limit.
One GEM device row = one myWallbox account. One zone per physical charger.
Prerequisites
- A myWallbox account (same credentials you use in the Wallbox mobile app) with at least one charger paired and online.
- The Wallbox unit must be online over Wi-Fi or built-in 4G — there is no public LAN API on Pulsar / Commander hardware. Every command round-trips the Wallbox cloud.
- Remote control must be enabled for the charger in the app (default on for residential commissioning; some commercial sites lock this down at install time).
Setup
- Add the device. Go to System → Devices → Add Device and choose the driver Wallbox (Pulsar / Commander / Copper) (key
wallbox). One device row represents one myWallbox account, so you add a single device even when the account has several chargers. - Credentials. Fill in:
- myWallbox Email (
email) — your myWallbox account email. - myWallbox Password (
password) — your myWallbox password. Stored encrypted (gem-crypt:).
- myWallbox Email (
- Save and reload the device. The driver signs in to the myWallbox cloud, caches the session token for ~2 hours, and the device's status flips to Connected in the Devices list. If it stays disconnected, recheck the email/password and see Troubleshooting below.
- Discover chargers. Open the device and, from its Commands tab, run
get_chargers. The response lists every charger on the account:{chargers: [{id, name, model, serial, software_version, group_name, status_id, max_charging_current, locked}, ...]}. Note the numericidof each charger you want to control — that is the zone address in the next step. - Create one zone per charger. The driver does not create zones for you — discovering a charger with
get_chargersdoes not add it to GEM. For each charger you want to control, add a zone (see Zones) bound to this device, place it in the Power subsystem, and set the zone Address to the charger's numericidfrom the discovery response.
Put charger zones in the Power subsystem — the default GEM subsystem for energy and power gear. The driver advertises an energy placement hint, but GEM ships no subsystem named "energy", so the New Zone editor will not pre-select a subsystem for you; choose Power by hand. Any subsystem works mechanically, but Power keeps chargers alongside panels, meters, and other energy devices.
Attribute Reference
Device
| Attribute | Required | Description |
|---|---|---|
email | yes | myWallbox login email. |
password | yes | myWallbox password — secure, encrypted on disk. |
status_interval | no | Status poll interval in ms. Default 30000. The API is rate-limited; values below ~10 s start drawing throttling and are not recommended. |
request_timeout | no | HTTPS request timeout in ms. Default 15000. Pulsar Plus on 4G has noticeably higher latency, so do not lower this. |
Zone
| Attribute | Description |
|---|---|
max_charging_current | Optional default current (A) used by set_current_limit when called without an amps argument. |
Zone State and Derived Attributes (written by the driver)
| Attribute | Description |
|---|---|
state | Coarse state — ready, disconnected, waiting, paused, scheduled, locked, charging, discharging, updating, error, unknown. |
status_label | Human label derived from the Wallbox status id (e.g. waiting for car demand). For unknown codes the label is code_<n>. |
status_id | Raw Wallbox status code (161-210 range). |
charging_power_kw | Live charging power. |
charging_speed_kmh | Estimated added range per hour (Wallbox cloud calculation). |
session_energy_kwh | Energy added in the current session. |
session_range_km | Range added in the current session. |
session_green_kwh | Portion of session energy attributed to renewable sources, if the account has solar integration. |
session_seconds | Elapsed session time. |
max_charging_current | Current soft cap in amps. |
depot_price | Per-kWh tariff (if configured in the app). |
grid_connection_type | e.g. single_phase / three_phase. |
ocpp_status | OCPP backend status string, when the charger is configured against an OCPP CSMS. |
Zone Address Format
zone.address is the numeric charger id as returned by get_chargers (typically a 5-7 digit integer). Not the serial number, and not the user-assigned name.
Commands
| Command | Args | Notes |
|---|---|---|
get_chargers | — | List every charger visible to the account, with id, name, model, serial, group, status, and current limit. |
get_status | address | Refresh and return raw /chargers/status/<id> payload for one charger. |
resume / start | address | Resume a paused session. POST remote-action 1. |
pause / stop | address | Pause an active session. POST remote-action 2. |
reboot | address | Reboot the charger. Use sparingly. POST remote-action 3. |
update_software | address | Trigger a pending OTA firmware update. POST remote-action 5. |
lock | address | Lock the charger (RFID / app required to start). POST remote-action 7. |
unlock | address | Unlock the charger so a connected car will charge. POST remote-action 8. |
set_current_limit | address, amps | Set the soft current limit in amps (6-80). PUT /v2/charger/<id> {maxChargingCurrent}. Falls back to zone.max_charging_current if no amps arg is given. |
refresh | — | Force an immediate status sweep across every zone. |
Known Limitations
- No native LAN API. Wallbox Pulsar / Commander hardware does not expose a documented local API; everything goes through the cloud. If
api.wall-box.comis unreachable, the driver cannot control or read state. - Status code stability. The 161-210 status code range is observed from the public app and the community ecosystem, not contractually guaranteed by Wallbox. New firmware can add codes. The driver tolerates this — unknown codes surface as
state: 'unknown',status_label: 'code_<n>'. - Current-limit clamp.
set_current_limitis silently clamped server-side to the installer-commissionedmax_available_current. Asking for 80 A on a 32 A install just gets you 32 A — no error. - Power Sharing / Power Boost. On multi-charger installs, current-limit PUTs against a slave charger id are ignored; you must target the master.
- Session history. This driver focuses on live state and control. Historical session export (
/v4/chargers/<id>/sessions) is not yet wired — fetch it directly via REST if needed. - Discharging (V2G).
status_id 196is mapped asdischargingfor forward compatibility, but no Wallbox model in the field exposes a V2G control surface yet. - OCPP backend. If the charger is bound to an external OCPP CSMS rather than myWallbox, some remote actions may return 200 but be ignored by the OCPP layer. Surface this via
ocpp_status.
Troubleshooting
wallbox login http 403/wallbox login http 401— Bad email or password. Reset it via the mobile app, then update the device's password attribute. (A message that startswallbox login failed:instead means the myWallbox cloud was unreachable — a network/DNS/firewall problem, not bad credentials.)wallbox login: no jwt in response— Wallbox occasionally rotates the auth response shape. The driver triesbody.jwt,body.data.attributes.token, andbody.user.token. If you see this after a Wallbox cloud update, raise an issue with the response body (redact email).- Commands return
http 401repeatedly — JWT was rejected. The driver auto-refreshes once per call; if it loops, your account password has been changed elsewhere. http 429— You're being rate-limited. Raisestatus_intervalto 60000+ and stop hammeringrefresh.- State stuck on
disconnected— Charger lost Wi-Fi / 4G. Check the charger LED ring; the cloud only knows what the charger last reported. set_current_limitaccepted but charger does not change — Master/slave install (Power Sharing). Target the masterid, not the slave.
Related documentation
- Zones — create one zone per charger and set its Address to the charger id.
- Subsystems — the Power subsystem these charger zones belong to.
- Devices — adding, reloading, and running commands on the Wallbox device.
- Commands — running
get_chargersand the control commands.