Monitor and control Webasto Next and Ampure / Webasto Unite wallboxes in Home Assistant over Modbus TCP, with an optional REST API connection for extras such as LED control and firmware diagnostics.
This is a community-maintained integration. It is not affiliated with, endorsed by, or supported by Webasto, Ampure, or the Home Assistant project.
- Webasto Next — fully supported in the current release.
- Ampure / Webasto Unite — fully supported since v1.2.0. The Unite uses a different register layout (telemetry on input registers, a few rescaled/widened registers, plus a three-phase switch); pick Webasto / Ampure Unite in the model selector during setup. Confirmed on firmware 3.156 and 3.187 (#37).
The wallbox must be reachable over Modbus TCP (default port 502). The REST API features additionally need the wallbox web-interface credentials.
- Local polling over Modbus TCP through an async update coordinator.
- Sensors for charge point and charging state, currents, power, energy, session data, fault codes and EV limits.
- Controls: dynamic charging current, fail-safe current and timeout, and start/stop/keep-alive buttons.
- A Connected binary sensor that reports reachability even while the wallbox is offline (useful in automations).
- Services for current limit, fail-safe, charging sessions and keep-alive frames.
- Optional REST API integration: LED brightness, free-charging toggle and tag ID, firmware/diagnostics sensors and a restart button.
- Device triggers (charging started/stopped, connection lost/restored, keep-alive sent) and ready-to-use blueprints.
- Automatic "Life Bit" keep-alive handling and resilient reconnect with back-off, so a power-cycled or still-booting wallbox recovers on its own.
- Tested against a virtual wallbox simulator.
- Home Assistant 2026.5.1 or newer (requires Python 3.14.2). On older Home Assistant, stay on release
1.1.5. - A supported wallbox (see Supported hardware) reachable over Modbus TCP.
Or add it manually:
- In HACS, open the three-dot menu and choose Custom repositories.
- Add
https://github.com/tomwellnitz/Webasto-Next-Modbuswith category Integration. - Install Webasto Next and restart Home Assistant.
To test upcoming changes, enable Show beta versions on the integration in HACS.
- Copy
custom_components/webasto_next_modbus/from this repository into your Home Assistantconfig/custom_components/directory. - Restart Home Assistant.
- Go to Settings → Devices & Services → Webasto Next / Unite, open the ⋮ menu on the entry and choose Delete. This removes the device, its entities and stored credentials.
- If you installed via HACS, optionally remove the repository from HACS; for a manual install, delete
custom_components/webasto_next_modbus/. Restart Home Assistant.
Modbus TCP is disabled by default on the Webasto Next / Unite. Enable it first in the wallbox web interface: switch to the expert/installer view, then turn on Modbus TCP (default port 502). Without this the integration cannot connect (#36).
- Go to Settings → Devices & Services → Add Integration and search for Webasto Next.
- Enter your wallbox details:
- Host — IP address or hostname (e.g.
192.168.1.50). - Port — default
502. - Unit ID — default
255. - Model — Webasto Next (default) or Webasto / Ampure Unite. Existing installs stay on Next; pick Unite for an Ampure / Webasto Unite (see Supported hardware — the Unite uses a different register layout).
- Variant — your hardware power rating (11 kW or 22 kW).
- Host — IP address or hostname (e.g.
The wallboxes do not advertise themselves on the network, so they are added manually by IP address; there is no auto-discovery.
The host, port, unit ID and entry name can be changed later without removing the integration via Settings → Devices & Services → Webasto Next / Unite → ⋮ → Reconfigure. Model, variant, scan interval and REST settings live under ⋮ → Configure.
The REST API exposes features that are not available over Modbus (LED control, free charging, firmware info, diagnostics, restart).
- Open the integration entry → three-dot menu → Configure.
- Enable REST API features and enter the wallbox web-interface credentials (username default
admin).
Credentials are stored in the Home Assistant config entry and redacted from downloaded diagnostics. If the wallbox later rejects them, Home Assistant starts a guided reauthentication dialog so you can enter new ones; the Modbus side keeps working regardless. The wallbox's web interface uses a self-signed certificate, so the integration disables TLS verification for that local HTTPS endpoint.
- Modbus telemetry is polled every 10 seconds by default. The interval is configurable via ⋮ → Configure → Scan interval.
- REST API data (firmware info, LED brightness, free charging, diagnostics, active errors) is fetched every 60 seconds. If the wallbox's web interface is unreachable at startup, the integration retries the REST connection every 5 minutes until it succeeds; the Modbus side is independent and keeps working.
- The "Life Bit" keep-alive runs continuously in the background: the integration writes
1to the keep-alive register and polls until the wallbox clears it to0, preventing the wallbox from dropping into fail-safe mode. The cadence follows the wallbox's own clear-cycle.
| Platform | Entities |
|---|---|
| Sensors | Charge point state, charging state, EVSE state, cable state, fault code, per-phase current and power, total energy, session energy and times, EV current limits, smart-vehicle detection. |
| Numbers | Charging current limit (0–32 A), fail-safe current (6–32 A), fail-safe timeout (6–120 s). |
| Buttons | Start charging, Stop charging, Send keep-alive. |
| Binary sensors | Connected (device_class: connectivity), Charging (device_class: battery_charging). |
| Platform | Entities |
|---|---|
| Sensors | Comboard/Powerboard firmware (SW & HW), plug cycles, error counter, signal voltages L1/L2/L3, active errors. |
| Numbers | LED brightness (0–100 %). |
| Switches | Free charging. |
| Text | Free charging tag ID. |
| Buttons | Restart wallbox. |
All services live under the webasto_next_modbus domain.
| Service | Description |
|---|---|
set_current |
Set the dynamic charging current (0–32 A). |
set_failsafe |
Set the fail-safe current (6–32 A) and optional timeout (6–120 s). |
start_session |
Start a charging session. |
stop_session |
Stop the active charging session. |
send_keepalive |
Send a keep-alive frame manually. |
REST API services (when enabled):
| Service | Description |
|---|---|
set_led_brightness |
Set the LED brightness (0–100 %). |
set_free_charging |
Enable or disable free charging. |
restart_wallbox |
Restart the wallbox. |
The "Life Bit" keep-alive is handled automatically in the background to keep the wallbox out of fail-safe mode;
send_keepaliveis only needed for manual control.
Ready-to-import blueprints live under Settings → Automations & Scenes → Blueprints:
- FastCharge / FullCharge control — start or stop charging from
input_booleantoggles. - Charge target (kWh) — charge a set amount of energy, then stop.
- Charge until full — stop automatically once charging power drops below a threshold.
- Solar surplus optimizer — adjust the charging current to grid export to maximise self-consumption.
- Event notifications — send a mobile notification on wallbox events (charging started/stopped, connection lost/restored, keep-alive sent, cable connected/disconnected, fault occurred).
Device triggers for charging start/stop, connection state, cable connected/disconnected and fault occurred are available for your own automations.
For fully custom logic the integration's services and device triggers are usable directly. Replace <your wallbox device id> with the device ID from Developer Tools → States → your wallbox (or pick it interactively in the automation editor).
automation:
- alias: Webasto — cap charging current at night
triggers:
- trigger: time
at: "23:00:00"
actions:
- action: webasto_next_modbus.set_current
data:
amps: 6
- alias: Webasto — fault alert
triggers:
- trigger: device
domain: webasto_next_modbus
device_id: <your wallbox device id>
type: fault_occurred
actions:
- action: notify.mobile_app_my_phone
data:
title: Webasto fault
message: "Fault code {{ trigger.event.data.fault_code }}"- One Modbus client at a time — the Webasto Next / Unite accepts only one Modbus TCP connection. If another client (EVCC, a manual
modbus:block, another HA add-on) is holding the slot, this integration cannot connect. - Modbus is off by default on the wallbox — it must be enabled once in the wallbox web interface (expert / installer view) before setup will succeed (#36).
- No auto-discovery — the wallboxes do not advertise themselves over mDNS / zeroconf, so they are added manually by IP address or hostname.
- Use a static address — configure a DHCP reservation or use a hostname so the wallbox stays reachable; if the address changes, run the integration's Reconfigure flow.
- Unite three-phase switching is firmware-dependent — the holding register used by the switch (
405) is not in the vendor's Modbus spec. Switching and read-back are confirmed on firmware 3.187 (#37); on other Unite firmwares the behavior is unverified. - REST API uses a self-signed certificate — TLS verification is disabled for the wallbox's local web interface (required by the embedded HTTPS endpoint). REST credentials are stored in the config entry and redacted from diagnostics.
- Optional registers vary by firmware — registers a given firmware doesn't implement are auto-detected and dropped from the read plan; the corresponding entities become unavailable rather than spamming errors.
- Firmware downgrades are blocked by the vendor — community reports indicate Webasto does not allow rolling back to an older firmware once updated (#37).
- One device per config entry — to manage several wallboxes, add the integration multiple times (one config entry per wallbox).
- Cannot connect — verify host, port (
502) and unit ID (255), and that the wallbox is reachable. Make sure Modbus TCP is enabled on the wallbox (expert view) — it is off by default. These wallboxes also accept only one Modbus TCP connection at a time, so make sure no other client (e.g. EVCC) holds it. - Values stuck or stale — check the logs; transient errors are retried automatically, and a booting wallbox recovers on its own within a few minutes.
- Diagnostics — integration entry → three-dot menu → Download diagnostics (secrets are redacted).
See docs/support.md for more.
uv sync # install dependencies
uv run pytest # run the test suite
uv run ruff check . # lintA virtual wallbox simulator lets you develop without hardware. See docs/development.md and docs/architecture.md.
Released under the MIT License. Thanks to @cdrfun for the advanced-blueprint inspiration, and to the contributors on #37 for the Unite register readouts.