Skip to content

Releases: DrazorV/xpengtoolkit

0.6.38 — upstream sync, per-car service targeting and credential VIN checks

Choose a tag to compare

@DrazorV DrazorV released this 02 Nov 13:03

Synchronizes this fork with upstream 0.6.38 and its latest main commit (d46f035), including 0.6.37.

  • Every xpeng.* service accepts an optional vehicle_entity_id to choose which car it acts on; omitting it keeps the first-entry behaviour, and the HVAC schedule services refuse to guess on multi-car installs.
  • xpeng.import_credentials refuses a credential pair whose VIN belongs to another car, and each config entry signs with its own device id (fixes "Login status expired" with two cars).
  • A REST widget odometer of -1 is treated as "no data" rather than a replay, and never reaches the odometer sensor.
  • While the push stream is silent, the widget is still polled at rest_scan_interval, so a car that starts driving is noticed in minutes.
  • Renewal app 0.1.23: each app slot writes its own last-run log.

The integration, vehicle card, renewal apps and vendored runtime match upstream. The fork retains its issue-tracker URL and publishing configuration, with one consolidated commit ahead of upstream. Previous history is archived under archive/main-before-upstream-sync-20261102; existing release tags are preserved.

Validation: isolated Python regression runner (75/76 scripts, 1 skipped for an optional dependency) and standard unittest discovery (1162 tests) pass on Python 3.12.

Update the integration through HACS and restart Home Assistant. Companion apps are versioned and updated separately.

0.6.36 — upstream sync, map heading and second renewal-app slot

Choose a tag to compare

@DrazorV DrazorV released this 31 Oct 10:01

Synchronizes this fork with upstream 0.6.36 and its latest main commit (adca317).

  • Adds map-marker heading from vehicle telemetry.
  • Includes the renewal 0.1.22 delivery safeguards and optional second renewal-app slot for a second car.
  • Includes upstream's current startup/watchdog fixes, documentation, and regression tests.

The integration, vehicle card, renewal apps and vendored runtime match upstream. The fork retains its issue-tracker URL and publishing configuration, with one consolidated commit ahead of upstream. Previous history is archived; existing release tags are preserved.

Validation: isolated Python regression runner, standard unittest discovery, and all card tests pass.

Update the integration through HACS and restart Home Assistant. Companion apps are versioned and updated separately; this release does not install or configure a second app automatically.

0.6.35 — nonblocking startup and clearer watchdog logs

Choose a tag to compare

@DrazorV DrazorV released this 29 Oct 07:44
73252b6

Fixes XPENG startup blocking-I/O warnings and makes watchdog recovery messages accurately describe the evidence and attempted action.

  • Tenant and fallback token file reads run off Home Assistant's event loop; config-entry updates stay on it.
  • Routine reconnects after a parked report are logged at INFO. Active, unknown and disconnected recovery still warns.
  • Motion recovery reports the evidence's age and acknowledges that current motion is unconfirmed.
  • With waking disabled, logs describe the passive query instead of announcing a force-upload.

Identity selection, recovery timers, wake budgets, permissions, vehicle command payloads and entity IDs are preserved.

Validation: 72 isolated Python regression scripts, 1,110 unit tests (3 existing skips), all 34 card tests and fork CI pass. Eleven new tests cover threading, identity fallback and watchdog diagnostics without contacting the vehicle.

Update through HACS and restart Home Assistant to activate the changes. Historical log entries remain until cleared or Home Assistant restarts.

0.6.34 — readable range and precise tyre pressures

Choose a tag to compare

@DrazorV DrazorV released this 27 Oct 18:56
26064e9

Fixes the bundled XPENG Vehicle card's number formatting:

  • Range now uses up to one decimal: 436.100006103516 km displays as 436.1 km.
  • Tyre pressures retain up to two decimals in bar (for example, 2.34 bar) and one in other pressure units.
  • Selected units and locale-specific decimal separators are preserved; unknown readings remain unknown.

Includes upstream 0.6.33's fix for the tyre-pressure option breaking the Configure dialog. Card version: 0.1.9. Integration version: 0.6.34.

Validation: all 71 isolated Python regression scripts, 1,099 unit tests (3 existing skips), 34 card tests, and fork CI pass.

Update the integration through HACS, restart Home Assistant, and refresh the dashboard. The managed card resource URL changes automatically. Manual card installations need the updated JavaScript and a new resource cache/version URL.

0.6.33 — tyre-pressure units and Configure dialog fix

Choose a tag to compare

@DrazorV DrazorV released this 27 Oct 14:00
0cbdcbd

What's new

  • Choose a default display unit for tyre-pressure sensors: Home Assistant’s unit system, kPa, psi, or bar. Home Assistant performs the conversion; individual entity unit settings still take precedence.
  • Notification sensors and events preserve the original XPENG record, and expose category, title, and message type for automations.
  • Notification latency now reflects the time the notification was collected rather than increasing each time the sensor is read.
  • Update device-tracker imports for current Home Assistant versions.

Includes documentation and translation updates. Existing entity IDs and config entries are preserved.

0.6.32 — configurable tyre-pressure units

Choose a tag to compare

@DrazorV DrazorV released this 27 Oct 18:59
26064e9

What's new

  • Choose a default display unit for tyre-pressure sensors: Home Assistant’s unit system, kPa, psi, or bar. Home Assistant performs the conversion; individual entity unit settings still take precedence.
  • Notification sensors and events preserve the original XPENG record, and expose category, title, and message type for automations.
  • Notification latency now reflects the time the notification was collected rather than increasing each time the sensor is read.
  • Update device-tracker imports for current Home Assistant versions.

Includes documentation and translation updates. Existing entity IDs and config entries are preserved.

0.6.29 — audited P7+ commands and Silent Mode

Choose a tag to compare

@DrazorV DrazorV released this 24 Oct 13:20

Fixes verified against the official Android XPENG 3.16.0 app and measured cloud telemetry on a P7+ with Bluetooth off.

  • Fix false command timeouts when vehicle replies correlate through msg_ref.
  • Fix P7+ passenger heating/ventilation position, including delayed model discovery; confirm seat and steering commands before reporting success.
  • Fix trunk cover feedback using the current door snapshot.
  • Add capability-gated Silent Mode to the integration and bundled card (0.1.8), with all seven translations.
  • Surface parking-light failures instead of displaying optimistic success. The P7+ parking-light mapping is still unverified.
  • Scope legacy-service authorization to the receiving vehicle entry.
  • Incorporate upstream 0.6.28 translations and stable English entity naming with shared ancestry.

All 110 prior entity IDs, including evcc status entities, are retained. The card remains optional. Settings were restored after testing. No renewal-app version change is required.

Validation: 66/66 isolated test scripts, 1,046 Python tests (3 optional skips), 30 card tests, zero translation errors, documentation build and GitHub CI passed.

Audit methodology, coverage and known gaps. X-Guard sensitivity and successful HVAC schedule creation still need investigation; actual charging was not tested while unplugged. The emulator failed before login, so live comparisons used the authenticated physical phone.

0.6.27 - upstream sync and watchdog recovery

Choose a tag to compare

@DrazorV DrazorV released this 24 Oct 10:20

Synchronizes this fork with upstream 0.6.27 and its new vehicle-card tutorial. Our command fixes, native controls, climate modes, evcc compatibility and optional vehicle card were accepted upstream in PR #5.

  • The watchdog now uses REST odometer/drive-state evidence to recognize movement while the MQTT push stream is stalled. Confirmed movement can use the existing bounded recovery allowance; a Standby state alone is not treated as driving.
  • Includes upstream's vehicle-card tutorial and documentation updates.
  • Main now follows upstream directly with one small fork-metadata commit: 1 ahead, 0 behind at publication. The old main and complete fork history are preserved at tag archive/main-before-upstream-sync-20261024; existing release tags were kept.

Existing HACS installations update normally. Other local Git clones based on the old fork main need to be deliberately realigned after fetching, rather than merging the archived main history back in.

The optional card still requires Install and manage the XPENG Vehicle dashboard card under Configure. Existing entity IDs and evcc interfaces are preserved. Minimum Home Assistant remains 2024.7. The credential renewal app is versioned independently.

Validation: 65/65 isolated regression scripts, 1,008 discovery tests (3 skipped), 30 card tests, documentation build and GitHub Tests/Docs workflows passed. Runtime code matches upstream exactly apart from the fork's issue-tracker URL. No additional physical vehicle tests are claimed.

0.6.26 - reviewed command and state fixes

Choose a tag to compare

@DrazorV DrazorV released this 23 Oct 20:05
03b0209

Brings the fixes from the upstream PR review into this fork, together with upstream 0.6.25's parked battery/SOC and MQTT baseline fixes.

  • Match command acknowledgements to request identity and report rejected legacy window, charging, charge-port, charge-limit and front-defrost commands.
  • Keep raw fan telemetry in compact mode and preserve measured command feedback across partial MQTT updates.
  • Make bundled-card registration explicitly opt-in, with shared-resource cleanup.
  • Fix unittest discovery, strengthen regression coverage, update permission/service documentation and align dependency minimums.

Card upgrade step: after installing and restarting Home Assistant, open the XPENG integration's Configure options and enable Install and manage the XPENG Vehicle dashboard card. It is off by default. Refresh your dashboard afterward. Your dashboard layouts and card configuration are preserved.

Requires Home Assistant 2024.7+. Existing entity IDs and evcc interfaces are preserved. Review the upgrade and downgrade notes, including config-entry VERSION 2 compatibility, before upgrading or reverting to an older upstream release.

Validation: 65/65 isolated regression scripts; 995 discovery tests with 3 skips; 30 card tests; documentation build; and GitHub CI passed. No additional physical vehicle validation is claimed.

Reviewed merge: fork PR #17. Upstream PR #5 is pending maintainer acceptance. The credential renewal app remains independently versioned.

0.6.25

Choose a tag to compare

@DrazorV DrazorV released this 23 Oct 13:18
9d794da

Consolidated release of the current development fork, aligned to one patch above upstream 0.6.24.

Included

  • All upstream changes through 0.6.24, including GPS fix validity handling and standalone Docker documentation.
  • Corrected window and climate commands, measured command feedback and clearer vehicle errors.
  • Native stateful controls with legacy-entity migration and evcc compatibility.
  • Vehicle-specific capability checks, climate modes, LO/HI targets and vehicle-scoped HVAC schedules.
  • Bundled XPENG Vehicle dashboard card with automatic resource registration and cache updates.

The integration manifest is 0.6.25. The renewal app and dashboard card retain their independent versions.

Validation: 62/62 standalone regression scripts and 30 vehicle-card tests passed. Minimum Home Assistant: 2024.7.

Upstream contribution: xpengtoolkit#5

This release consolidates the earlier fork releases under the 0.6.25 version. Existing unique IDs and evcc interfaces are preserved. Successful remote Pet activation remains unverified on the tested P7+ because Rear Seat Reminder blocked it; other vehicle models need their own physical validation.