Eveus EV Charger — Home Assistant integration (local-only, HACS)

Hi all :waving_hand: I've been maintaining a Home Assistant integration for Eveus EV chargers and wanted to share it with the community. It's local-only — polls the charger directly over your LAN, no cloud account, no telemetry.

Repo: GitHub - ABovsh/eveus: Eveus EV charger integration for Home Assistant (HACS) — local-only, no cloud. Live power/energy/cost, SOC estimates, adaptive charging. · GitHub
HACS: Custom repository (instructions below)

What it does

  • Local polling over LAN via the charger's HTTP API. Supports http:///https://, custom ports, IP or hostname.
  • Live electrical telemetry — voltage, current, power, current-limit setpoint, box/plug temperatures, ground status, internal backup battery voltage.
  • Energy & cost straight from the charger's own counters, so values don't jump when tariffs switch mid-session:
    • Session / Total Energy, resettable Counter A & B (kWh)
    • Session Cost (uses native sessionMoney, integrated at the active rate per moment)
    • Counter A/B Cost, Primary/Active/Rate 2/Rate 3 rate sensors
  • Optional EV battery (SOC) estimates — add four input_number helpers and you get SOC kWh, SOC %, time-to-target, and a device_class: timestamp Charging Finish Time for cards & automations.
  • Adaptive charging & schedule visibility — see which slot the charger is following.
  • Automation-friendly entities out of the box: Car Connected, Charging Finish Time, Session Cost — no template sensors required.
  • Multi-charger support.
  • Optimistic UI — controls feel instant; state reconciles on the next poll.

Why a separate integration?

Eveus has no official HA integration. This one is built around the charger's native fields (especially sessionEnergy and sessionMoney) instead of trying to recompute energy/cost in HA — which means no fragile per-restart baselines and no off-by-one when the day/night tariff flips.

Install (HACS)

  1. HACS → Integrations → ⋮ → Custom repositories
  2. URL: https://github.com/ABovsh/eveus, Category: Integration
  3. Install Eveus, restart Home Assistant
  4. Settings → Devices & services → Add Integration → Eveus, enter host/credentials

Feedback welcome

Issues, feature requests, and PRs all go to the repo. Thanks :folded_hands:

New 4.9.0 version of the integration is out

What's new:

  • Writable schedules. Both on-device slots get a full HA control surface:
    • switch.eveus_schedule_1_enabled / schedule_2_enabled — arm / disarm.
    • time.eveus_schedule_1_start / _stop and schedule_2_start / _stop — native HA time pickers. Shift the window from a card, a script, or an
      automation.
  • Adaptive mode toggle. switch.eveus_adaptive_mode turns the charger's voltage-sag throttle on / off, complementing the existing Adaptive
    Charging / Current Limit / Voltage Threshold diagnostic sensors.
  • Clock & time zone.
    • select.eveus_time_zone — readable/writable time-zone offset (-12..+14).
    • button.eveus_sync_time — push HA's current time to the charger. No more drifting clocks.
  • 3-phase support. New Phases field (1 or 3) in setup and reconfigure. When set to 3, you get four extra sensors: Current Phase 2/3 and
    Voltage Phase 2/3. Existing single-phase setups migrate transparently.
  • Leakage current sensors.
    • sensor.eveus_leakage_current (mA) — live RCD reading.
    • sensor.eveus_leakage_current_peak (mA) — peak-hold, useful for catching transient faults.
  • Quick refresh. button.eveus_force_refresh triggers an immediate coordinator poll instead of waiting for the next tick.
  • Lovelace dashboard. docs/dashboard.yaml in the repo.

Fixes worth calling out:

  • Starting a charging session now reflects in HA within ~10–20 s instead of taking up to a minute for the next idle poll.
  • Connection Quality reports unknown on internal error instead of falsely showing 100%.
  • Reconfigure / reauth / repair flows preserve device_number correctly in multi-charger setups.

Security & UX: masked password fields in setup and reauth; diagnostic dumps redact host and unique_id in addition to credentials; a warning is logged when the charger is configured over plain HTTP.

Heads-up: if you had switch.eveus_reset_counter_a referenced anywhere, it's been replaced by button.eveus_reset_counter_a (proper one-shot
action). button.eveus_reset_counter_b mirrors it.

Release notes & full changelog: Release v4.9.0 · ABovsh/eveus · GitHub

As always — feedback, bug reports, and feature requests very welcome.

Eveus update — 4.9.1 → 4.9.2

Two releases since the 4.9.0 post above. Headline items are two new sensors and a batch of reliability/statistics fixes.

New sensors (4.9.2)

  • sensor.eveus_wifi_signal — WiFi signal strength (dBm) straight from the charger. If you ever see polling hiccups or entities briefly
    going unavailable, this lets you correlate it directly with weak RF at the charger's spot. Nice on a history card next to Connection
    Quality.
  • binary_sensor.eveus_session_active (device_class: running) — turns on whenever a charging session is running, and stays on
    through brief mid-session pauses
    . Use it as a single, clean automation trigger instead of templating on the textual State sensor.

Statistics & cost (4.9.2)

  • Cost sensors now use HA's monetary device class (UAH)Counter A/B Cost and Session Cost accumulate correctly across session
    and counter resets, and the Energy dashboard can pick them up as costs. Per-kWh tariffs still display ₴/kWh. You may see a one-time "units
    changed" notice after upgrading.
  • SOC Energy and Session Energy use valid sensor types — clears an "impossible state class" warning at startup; history is
    unaffected.

Reliability & correctness (4.9.1 + 4.9.2)

  • Corrupt or impossible readings now show unknown instead of plausible-but-wrong values — voltage, current, power, per-phase, leakage,
    battery voltage, WiFi signal, tariffs, and the charger clock. Current Set is also bounded by your model's max (e.g. 40 A on a 16 A unit
    reads unknown).
  • Non-Eveus / partial responses are refused — a captive portal or proxy can no longer bring the integration online with blank or garbage
    values.
  • Controls survive a restart while the charger is offline — Charging Current, schedule pickers, and switches keep their restored value
    through the grace window instead of dropping to unknown/off.
  • Smarter connection handling — transient 5xx/429/network errors back off properly, permanent 4xx command errors fail fast, and a
    401 kicks off reauthentication.
  • A paused-but-active session keeps fast polling — SOC sensors and charging-time estimates no longer slow to the idle cadence when a
    session pauses mid-charge.
  • Time Zone no longer snaps back to the old offset before the next poll, and Car Connected reports unknown (not "unplugged")
    while the charger is in an error state.
  • Connection Quality reads unknown before the first poll / on internal error instead of a misleading 100%.

Privacy

  • Stored password is never echoed back to the reauth/reconfigure form.
  • Logs and connection errors no longer include the charger host/IP.
  • Richer Device page & safer diagnostics — real model/manufacturer/HW/serial on the Devices view, and Download diagnostics ships a
    full sanitized /main snapshot with serial, station ID, LAN IP, firmware CRC, and anything address/SSID/MAC/token-like auto-redacted.

Still local-polling only, HACS-installable, no cloud. Update via HACS and reload — no entities renamed or removed since 4.9.0, so existing
setups upgrade transparently.

Full details: CHANGELOG.md