github its-me-prash/vwgroup-connect-ha v2.8.0rc1
VAG Connect v2.8.0rc1

latest releases: v5.1.1, v5.1.0, v5.0.0...
pre-release4 months ago

VAG Connect v2.8.0rc1

Home Assistant integration for Audi · VW · Škoda · SEAT · CUPRA · Porsche · VW US/CA.

What's new in this release / Was ist neu in diesem Release

First release candidate for v2.8.0. Bundles the five action items from the 2026-05-30 competitive scan with five v3.0 quick wins pulled forward, plus a dead-weight cleanup pass and a roadmap consolidation. README rewritten across all nine supported languages for v2.7.x reality (DAG MVP positioning + honest VW EU Play-Integrity limits).

Action items

  • MFA / Email-OTP config_flow handler (#1). The VW IDP can challenge for a 6-digit code on first sign-in; the flow now captures it cleanly instead of failing with a generic cannot_connect.
  • Coordinator auto-reload watchdog (#2). When all VINs on the hybrid_full strategy show failure_count >= 2 and last_good_at is older than 2x the scan interval, the coordinator silently re-authenticates without dropping entities. Mirrors the upstream community automation pattern but internalised so users do not have to wire it themselves.
  • Headless EU Data Act portal zip scraper (#3). New cariad/auth/_data_act_scraper.py wired as Tier 3.5 (activates only when the active strategy is data_act_portal). Route A probes a research-confirmed JSON endpoint; Route B is fully scaffolded behind a new CONF_ENABLE_DATA_ACT_BROWSER OptionsFlow toggle that drives a headless Chromium via the optional playwright package (NOT in manifest.json — 100 MB Chromium download stays opt-in). Missing-dep surfaces a data_act_browser_missing Repair issue.
  • FCM push channel for Audi and VW now ships live activation (#4). Decoded payloads (lockState, chargingState, climateState, alarm) are fired onto the HA event bus as vag_connect_push_event and trigger a coordinator refresh. The Cariad Firebase sender_id / api_key / app_id are still tester-gated behind a NotImplementedError in _resolve_fcm_credentials until the live APK extraction lands; the OptionsFlow toggle label moves from "EXPERIMENTAL" to "Live (beta)".
  • Repairs flow when DAG degrades to hybrid_full (#5). New auth_strategy_degraded issue surfaces in the HA UI after 3 consecutive successful polls confirm the resolver has silently fallen back, with two guided remediations: re-run the browser-login setup, or pin the read-only Data Act portal mode (via the new CONF_PREFERRED_AUTH_STRATEGY option).
  • MFA / 30-day device-bound IDP cookie persistence. The VW IDP issues a cookie after a successful email-OTP that suppresses the OTP for around 30 days; until now we discarded it on every restart, reload, and 2h re-login. TokenSet, TokenStorage, and IDKAuth all extended to round-trip the cookie. Latent bug-fix included: the storage layer never persisted strategy or auth_cookies, so the watchdog never saw the active strategy after a restart.

Quick wins from the v3.0 roadmap (pulled forward)

  • Standheizung / auxiliary-heating surface (quick win A): switch + duration number (5–60 min) + target-temp number (16–30 °C) + new auxiliary_heating_status + aux_heating_active + auxiliary_heating_remaining_min sensors. Audi + VW EU only; SEAT/CUPRA flow continues to require S-PIN. Capability map declares auxiliaryHeating for the two new brands.
  • vag_connect.open_app service (quick win B). Fires vag_connect_open_app on the HA event bus with {vin, brand, deeplink_url, action} so a Lovelace card can open the brand's native mobile app on the calling device via window.location.href. Deeplink schemes are defined in const.DEEPLINK_SCHEMES; the per-brand scheme strings are marked TODO(2.8.1) for device-side re-verification once the v2.8.1 IPA/smali pass lands.
  • Brake-service + preferred-workshop sensors (quick win C). Six new sensors: brake_fluid_change_due_at, brake_pads_front_inspection_due_at, brake_pads_rear_inspection_due_at, preferred_workshop_name, preferred_workshop_address, preferred_workshop_phone. Populated for VW EU + Audi (CARIAD-BFF serviceCare), Skoda mysmob maintenanceReport, and SEAT/CUPRA OLA maintenance when the dealer has wired up the service plan. Phantom-protected via _DATA_PRESENT_REQUIRED.
  • Parser-health telemetry in diagnostics (quick win D). Each brand client's parser_stats dict records {success, fail, last_error[:200]} per named job (oil_level, charging, climatisation, tyre_pressure, auxiliary_heating, trip_statistics, service_care, etc.) and is exported in the diagnostics dump, so a silent parser regression on one job is visible while the rest of the poll succeeds. PII redaction reuses the existing JWT/VIN/email scrubber.
  • Per-brand capability advertisement in diagnostics (quick win E). New cariad/_capabilities.py declares the expected per-brand capability matrix; coordinator.capabilities_snapshot() adds the observed-this-poll view and a drift list flagging declared-True-but-observed-False. Lets a missing entity be triaged as "brand never supported it" vs "parser dropped a field" without reading source code.

Housekeeping

  • Dead-weight cleanup pass. Removed the v2.2.0 Pydantic dual-write scaffold (one model, return value discarded everywhere, plus a blocking-IO warning on every fresh HA startup), retired the euda.py v2.0 shim that had zero callers, deleted 6 stale v1.x docs and 12 dead probe scripts from the v1.27 research era.
  • Roadmap consolidation. Five overlapping roadmap docs reduced to one canonical top-level ROADMAP.md. New "Won't do" block records the 11 things we have explicitly ruled out (MBB direct-data path, Lamborghini/Bentley/Bugatti commands, VW China, etc.) so future feature requests can point at it.
  • README rewritten for all nine languages. Drops the v2.0 Big-Bang highlights and adds honest "Where we lead" + "Where the limits are" blocks. DE + EN canonical, the other seven languages mechanically synchronised.

Full diff vs v2.2.0 / Kompletter Diff zu v2.2.0

Every commit, file and code change between the two versions:
Jeder Commit, jede Datei und jede Code-Änderung zwischen beiden Versionen:

➜ v2.2.0...v2.8.0rc1

Recent releases / Letzte Releases

If you're upgrading from an older version, also read these notes:

Wenn du von einer älteren Version updatest, lies auch diese Release-Notes:

Full history: CHANGELOG.md

Installation / Update

HACS users: the update notification appears automatically within ~6 hours of the release.

HACS-User: Der Update-Hinweis erscheint automatisch innerhalb von ~6 Stunden nach dem Release.

Manual install / Manuelle Installation:

  1. Download vag_connect.zip from this release / vag_connect.zip aus diesem Release herunterladen
  2. Unzip and copy custom_components/vag_connect/ to your HA config/custom_components/ folder, replacing any older copy / Entpacken und den Ordner custom_components/vag_connect/ in dein HA config/custom_components/ kopieren — alten Ordner ersetzen
  3. Restart Home Assistant / Home Assistant neu starten

Supported brands / Unterstützte Marken

Volkswagen EU · Audi · Škoda · SEAT · CUPRA · Volkswagen US/CA (Beta) · Porsche (Beta)

Found a bug? / Bug gefunden?

Open an issue with the bug-report template: https://github.com/its-me-prash/vwgroup-connect-ha/issues/new/choose

Bug-Report-Template: https://github.com/its-me-prash/vwgroup-connect-ha/issues/new/choose

Please mask your VIN to the last 6 characters and remove email/tokens/GPS before posting.

Bitte VIN auf die letzten 6 Zeichen kürzen und Email/Tokens/GPS vor dem Posten entfernen.

Don't miss a new vwgroup-connect-ha release

NewReleases is sending notifications on new releases.