alandtse / alandtse/tesla

Tesla entities unavailable when vehicle data response lacks drive_state

Offen
#1,188 3 Kommentare 2 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
bug car triage
Vorherrschende Sprache
Python
Sterne
780
Forks
127
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

### Is there an existing issue for this?

I searched existing open and closed issues and did not find a duplicate for `KeyError: 'drive_state'`.

### Version of the Tesla component

3.25.5

### Version of Home Assistant

2026.4.4

### teslajsonpy version

Installed package metadata reports `teslajsonpy 3.13.2`, but `teslajsonpy.__version__` reports `3.13.1`.

### Current behavior

All native Tesla Custom Integration entities for one vehicle became unavailable and stayed unavailable. TeslaMate-derived entities for the same vehicle continued to work.

The integration coordinator crashed on every poll because the Tesla vehicle data response did not include `drive_state`, while `teslajsonpy.controller` dereferenced `response["drive_state"]["shift_state"]` unguarded.

This happened while the vehicle was awake, plugged into a DC charger, and likely in/around service mode during charger experiments. It may be a Tesla partial-payload edge case rather than a normal parked/asleep response.

### Expected behavior

A vehicle data response without `drive_state` should not crash the coordinator or make all Tesla entities unavailable. The integration/library should tolerate missing `drive_state`, keep processing the rest of the payload, and only leave drive-state-dependent entities unavailable if needed.

### Relevant log

```text
2026-05-16 20:42:56.806 ERROR (MainThread) [custom_components.tesla_custom] Unexpected error fetching tesla_custom data
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 426, in _async_refresh
self.data = await self._async_update_data()
File "/config/custom_components/tesla_custom/__init__.py", line 466, in _async_update_data
data = await controller.update(
File "/usr/local/lib/python3.14/site-packages/teslajsonpy/controller.py", line 851, in update
result |= bool(await task)
File "/usr/local/lib/python3.14/site-packages/teslajsonpy/controller.py", line 666, in _get_and_process_car_data
!= response["drive_state"]["shift_state"]
~~~~~~~~^^^^^^^^^^^^^^^
KeyError: 'drive_state'
```

### Local hotfix that restored entities

I patched the installed `teslajsonpy/controller.py` locally to use:

```python
drive_state = response.get("drive_state") or {}
shift_state = drive_state.get("shift_state")
```

and to fall back to `time.time()` if the `drive_state` timestamp is absent. After restarting Home Assistant, the native Tesla entities recovered immediately.

### Additional notes

This is probably best fixed in `teslajsonpy`, but I am filing it here because the Home Assistant custom integration issue tracker points here and the user-visible failure is that all `tesla_custom` entities go unavailable.

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.