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

latest releases: v5.2.4, v5.2.3, v5.2.3b1...
5 months ago

VAG Connect v2.11.0

Cross-brand parser audit against upstream lib source code. Five parallel deep diffs surfaced field-name and parsing bugs that have been silently returning null on every car for some time.

What's new

Fixed (cross-brand parser corrections)

Skoda (myskoda source-verified)

  • Driving range fields: was reading electricRange.distanceInKm / combustionRange.distanceInKm which myskoda's DrivingRange model does NOT include. Now reads primaryEngineRange.remainingRangeInKm + secondaryEngineRange.remainingRangeInKm with engineType discrimination.
  • doors_open / windows_open were reading from non-existent access.doorsOpenedCount. Now reads overall.doors == "OPEN" per Status.Overall model.
  • driving_score was reading non-existent top-level score. Now reads weeklyScore.main.
  • adBlueRange is a flat int upstream, not a dict.

SEAT / CUPRA (pycupra source-verified)

  • Charging path-prefix: canonical is charging.status.charging.* on Born MY24+. charging_power_kw, charging_rate_kmh, charging_type, total_charged_energy_kwh were silently null on newer firmwares.
  • battery_care_target_soc_pct: pycupra reads targetSocPercentage (no underscores).

VW EU / Audi

  • plug_led_color double-write bug: a second unconditional assignment overwrote valid PPE values with None.
  • battery_care parent block order: canonical is batteryChargingCare, not charging.

Added (new endpoint integrations)

Skoda

  • Vehicle-health-report warning lights (/api/v1/vehicle-health-report/warning-lights/{vin}). Canonical source for dashboard warning lamps with per-category breakdown.
  • Trip statistics (/api/v1/trip-statistics/{vin}). Lifetime + avg consumption + last-trip fields.
  • Charging statistics replacement (myskoda PR #586). The legacy /v1/charging/{vin}/history returns HTTP 500 since the 2026-05-15 Skoda app update. New POST to charging.cariad.digital/charging_statistics with VIN-filtered date range. Adopted preemptively because the upstream broken state affects all current-firmware Skoda users.

SEAT / CUPRA

  • Aux-heating status read (/api/auxiliary-heating/v1/{vin}/status). We used this host for start/stop since v1.x; the status read fills in auxiliary_heating_status, aux_heating_active, auxiliary_heating_remaining_min, heater_source.
  • Trip statistics via three OLA endpoints (/v1/vehicles/{vin}/trips/{shortTerm,longTerm,lastrefuel}).
  • min_soc from settings.minBatteryStateOfChargeInPercent.
  • climate_remaining_time_min + derived climate_ready_at.

VW EU / Audi

  • Selectivestatus jobs: activeVentilation, batterySupport, chargingProfiles, chargingTimers (per audi_services.JOBS2QUERY).
  • chargeMode sub-job (volkswagencarnet PR #328): preferredChargeMode + availableChargeModes.
  • Aux-heating legacy fallback at climatisation.auxiliaryHeatingStatus.* for A4 B9 / MIB3.

VW NA (zackcornelius source-verified)

  • SHA-512 SPIN as primary attempt + SHA-1 fallback on 4xx
  • Canada client_id 69eb3c39-...
  • OAuth scope openid profile cars vin
  • Field-name corrections: location (not vehicleLocation), readiness.readinessStatus.value.connectionState.isOnline, currentChargeState, chargePower, targetSOCPercentage, currentSOCPct, climateStatusInd, data.timestamp epoch-ms
  • cruiseRangeUnits == "MI" now converts to km (miles users had ~38% underreported range)

Verified aligned with upstream

  • SEAT / CUPRA app-market: android header already set in _ola_headers.py since v2.1.x.
  • tokentype: IDK_TECHNICAL header never set anywhere in our codebase.
  • VW EU auth situation: refresh tokens dead, Play Integrity required, Python cannot bypass. Confirmed wide community consensus.

Still pending (separate PRs)

  • VW NA write-side full rewrite (lock/unlock PUT + SPIN session URL + subscription parser) - v2.11.1
  • Audi refresh_token defensive (audi_connect_ha PR #749) - v2.11.1
  • Audi IDK discovery URL preference (audi_connect_ha PR #738) - v2.11.1
  • Skoda TripStatistics OverallCost/FuelCost (needs currency-aware sensor wiring) - v2.11.1

Full diff vs v2.10.12

v2.10.12...v2.11.0

Installation / Update

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

Manual install:

  1. Download vag_connect.zip from this release
  2. Unzip and copy custom_components/vag_connect/ to your HA config/custom_components/ folder, replacing any older copy
  3. Restart Home Assistant

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

NewReleases is sending notifications on new releases.