alandtse/tesla

Polling and commands fail due to Error 429 - Too Many Requests - Tesla rate limiting

Open

#961 opened on May 9, 2024

View on GitHub
 (67 comments) (0 reactions) (0 assignees)Python (122 forks)github user discovery
carenhancementhelp wantedstaletriage

Repository metrics

Stars
 (741 stars)
PR merge metrics
 (Avg merge 13d 8h) (14 merged PRs in 30d)

Description

Is there an existing issue for this?

  • I have searched both the existing open issues & recently closed issues and did not find a duplicate of this issue.

I have read about the Fleet API and understand I may need to use it

  • I understand issues relating to read only commands will be auto closed if not using the Fleet API.

Version of the Tesla component

3.21.0

Version of the Tesla car software

2024.14.3

Model

Model Y

Current Behavior

I setup the Fleet API via Tesla HTTP Proxy add-on a few days back. The custom integration was working at that point and I could see vehicle status and also issue commands. Today, commands stopped working but stats get updated. The integration been throwing a range of errors. Initially it was throwing UnknownException and since then I have deleted the integration, generated new Refresh Token in Tesla HTTP Proxy and set it up again. See latest log here https://pastebin.com/3R0s2Wcr - this starts from custom integration setup and until includes issue of one command.

Expected Behavior

Commands should work

Debug logs

2024-05-09 17:40:27.467 DEBUG (MainThread) [custom_components.tesla_custom.config_flow] Running in supervised environment
2024-05-09 17:40:27.499 DEBUG (MainThread) [custom_components.tesla_custom.config_flow] Found addon: c0<REDACTED>_tesla_http_proxy
2024-05-09 17:40:41.224 DEBUG (MainThread) [custom_components.tesla_custom.config_flow] Credentials successfully connected to the Tesla API
2024-05-09 17:40:41.227 DEBUG (MainThread) [custom_components.tesla_custom] Trusting CA: {'subject': ((('countryName', 'TR'),), (('localityName', 'Gebze - Kocaeli'),), (('organizationName', 'Turkiye Bilimsel ve Teknolojik Arastirma Kurumu - TUBITAK'),), (('organizationalUnitName', 'Kamu Sertifikasyon Merkezi - Kamu SM'),), (('commonName', 'TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1'),)), 'issuer': ((('countryName', 'TR'),), (('localityName', 'Gebze - Kocaeli'),), (('organizationName', 'Turkiye Bilimsel ve Teknolojik Arastirma Kurumu - TUBITAK'),), (('organizationalUnitName', 'Kamu Sertifikasyon Merkezi - Kamu SM'),), (('commonName', 'TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1'),)), 'version': 3, 'serialNumber': '01', 'notBefore': 'Nov 25 08:25:55 2013 GMT', 'notAfter': 'Oct 25 08:25:55 2043 GMT'}
2024-05-09 17:40:41.242 DEBUG (MainThread) [teslajsonpy.controller] 552 endpoints loaded
2024-05-09 17:40:41.242 DEBUG (MainThread) [teslajsonpy.connection] Token expiration in -19853 days, 6:19:19
2024-05-09 17:40:41.242 DEBUG (MainThread) [teslajsonpy.connection] Oauth expiration detected
2024-05-09 17:40:41.242 DEBUG (MainThread) [teslajsonpy.connection] Refreshing access token with refresh_token
2024-05-09 17:40:42.061 DEBUG (MainThread) [teslajsonpy.connection] Saved new auth info {'access_token': '<REDACTED>', 'refresh_token': '<REDACTED>', 'expires_in': 1715305241}
2024-05-09 17:40:42.061 DEBUG (MainThread) [teslajsonpy.connection] Successfully refreshed oauth
2024-05-09 17:40:42.061 DEBUG (MainThread) [teslajsonpy.connection] get: https://c0<REDACTED>-tesla-http-proxy/api/1/products {}
2024-05-09 17:40:42.867 DEBUG (MainThread) [teslajsonpy.connection] 200: {"response":[{"id":<REDACTED>,"user_id":<REDACTED>,"vehicle_id":<REDACTED>,"vin":"<REDACTED_VIN>","color":null,"access_type":"OWNER","display_name":"shadowfax","option_codes":null,"cached_data":"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","granular_access":{"hide_private":false},"tokens":["a93e355b1a27cf80","ea98435367380ffe"],"state":"offline","in_service":false,"id_s":"<REDACTED>","calendar_enabled":true,"api_version":76,"backseat_token":null,"backseat_token_updated_at":null,"ble_autopair_enrolled":false,"command_signing":"required","release_notes_supported":true}],"count":1}
2024-05-09 17:40:42.867 DEBUG (MainThread) [teslajsonpy.controller] 47947: Changing car_online from {} to False
2024-05-09 17:40:42.867 DEBUG (MainThread) [teslajsonpy.controller] 47947: Resetting last_parked_timestamp to: 1715240441 shift_state None
2024-05-09 17:40:42.867 DEBUG (MainThread) [teslajsonpy.controller] 47947: Sending wake request with deadline of: 1715240502
2024-05-09 17:40:42.867 DEBUG (MainThread) [teslajsonpy.connection] Token expiration in 8:00:00
2024-05-09 17:40:42.868 DEBUG (MainThread) [teslajsonpy.connection] post: https://c0<REDACTED>-tesla-http-proxy/api/1/vehicles/<REDACTED_VIN>/wake_up {}
2024-05-09 17:40:43.072 DEBUG (MainThread) [teslajsonpy.connection] 429: Retry later

2024-05-09 17:40:43.072 WARNING (MainThread) [teslajsonpy.controller] Unable to get vehicle data during setup, car will still be added. 429: TOO_MANY_REQUESTS
2024-05-09 17:40:43.073 INFO (MainThread) [custom_components.tesla_custom.teslamate] Un-subbing from all MQTT Topics.
2024-05-09 17:40:43.073 INFO (MainThread) [custom_components.tesla_custom.teslamate] Un-subbed from all MQTT Topics.
2024-05-09 17:40:43.073 DEBUG (MainThread) [custom_components.tesla_custom] Connected to the Tesla API
2024-05-09 17:40:43.073 DEBUG (MainThread) [custom_components.tesla_custom] Saving new tokens in config_entry
2024-05-09 17:40:43.073 DEBUG (MainThread) [custom_components.tesla_custom] Running controller.update()
2024-05-09 17:40:43.074 DEBUG (MainThread) [teslajsonpy.controller] Get vehicles. Force: False Time: 2 Interval 60
2024-05-09 17:40:43.074 DEBUG (MainThread) [teslajsonpy.controller] 47947: Skipping update with state offline. Polling: True. Last update: 1715240443 ago. Last parked: 2 ago. Last wake up 1715240443 ago. 
2024-05-09 17:40:43.074 DEBUG (MainThread) [custom_components.tesla_custom] Finished fetching tesla_custom data in 0.000 seconds (success: True)
2024-05-09 17:40:43.099 DEBUG (MainThread) [custom_components.tesla_custom.teslamate] Got car ID. VIN:<REDACTED_VIN> TeslamateID: None
2024-05-09 17:40:53.076 DEBUG (MainThread) [custom_components.tesla_custom] Running controller.update()
2024-05-09 17:40:53.076 DEBUG (MainThread) [teslajsonpy.controller] Get vehicles. Force: False Time: 12 Interval 60
2024-05-09 17:40:53.076 DEBUG (MainThread) [teslajsonpy.controller] 47947: Skipping update with state offline. Polling: True. Last update: 1715240453 ago. Last parked: 12 ago. Last wake up 1715240453 ago. 
2024-05-09 17:40:53.076 DEBUG (MainThread) [custom_components.tesla_custom] Finished fetching tesla_custom data in 0.000 seconds (success: True)
2024-05-09 17:40:53.122 DEBUG (MainThread) [custom_components.tesla_custom] Running controller.update()
2024-05-09 17:40:53.123 DEBUG (MainThread) [teslajsonpy.controller] Get vehicles. Force: False Time: 12 Interval 60
2024-05-09 17:40:53.123 DEBUG (MainThread) [custom_components.tesla_custom] Finished fetching tesla_custom data in 0.000 seconds (success: True)
2024-05-09 17:41:03.122 DEBUG (MainThread) [custom_components.tesla_custom] Running controller.update()
2024-05-09 17:41:03.122 DEBUG (MainThread) [teslajsonpy.controller] Get vehicles. Force: False Time: 22 Interval 60
2024-05-09 17:41:03.122 DEBUG (MainThread) [custom_components.tesla_custom] Finished fetching tesla_custom data in 0.000 seconds (success: True)
2024-05-09 17:41:03.298 DEBUG (MainThread) [custom_components.tesla_custom] Running controller.update()
2024-05-09 17:41:03.298 DEBUG (MainThread) [teslajsonpy.controller] Get vehicles. Force: False Time: 22 Interval 60
2024-05-09 17:41:03.298 DEBUG (MainThread) [teslajsonpy.controller] 47947: Skipping update with state offline. Polling: True. Last update: 1715240463 ago. Last parked: 22 ago. Last wake up 1715240463 ago. 
2024-05-09 17:41:03.298 DEBUG (MainThread) [custom_components.tesla_custom] Finished fetching tesla_custom data in 0.000 seconds (success: True)
2024-05-09 17:41:13.122 DEBUG (MainThread) [custom_components.tesla_custom] Running controller.update()
2024-05-09 17:41:13.122 DEBUG (MainThread) [teslajsonpy.controller] Get vehicles. Force: False Time: 32 Interval 60
2024-05-09 17:41:13.122 DEBUG (MainThread) [custom_components.tesla_custom] Finished fetching tesla_custom data in 0.000 seconds (success: True)
2024-05-09 17:41:13.296 DEBUG (MainThread) [custom_components.tesla_custom] Running controller.update()
2024-05-09 17:41:13.296 DEBUG (MainThread) [teslajsonpy.controller] Get vehicles. Force: False Time: 32 Interval 60
2024-05-09 17:41:13.296 DEBUG (MainThread) [teslajsonpy.controller] 47947: Skipping update with state offline. Polling: True. Last update: 1715240473 ago. Last parked: 32 ago. Last wake up 1715240473 ago. 
2024-05-09 17:41:13.296 DEBUG (MainThread) [custom_components.tesla_custom] Finished fetching tesla_custom data in 0.000 seconds (success: True)
2024-05-09 17:41:23.124 DEBUG (MainThread) [custom_components.tesla_custom] Running controller.update()
2024-05-09 17:41:23.124 DEBUG (MainThread) [teslajsonpy.controller] Get vehicles. Force: False Time: 42 Interval 60
2024-05-09 17:41:23.124 DEBUG (MainThread) [custom_components.tesla_custom] Finished fetching tesla_custom data in 0.000 seconds (success: True)
2024-05-09 17:41:23.297 DEBUG (MainThread) [custom_components.tesla_custom] Running controller.update()
2024-05-09 17:41:23.297 DEBUG (MainThread) [teslajsonpy.controller] Get vehicles. Force: False Time: 42 Interval 60
2024-05-09 17:41:23.297 DEBUG (MainThread) [teslajsonpy.controller] 47947: Skipping update with state offline. Polling: True. Last update: 1715240483 ago. Last parked: 42 ago. Last wake up 1715240483 ago. 
2024-05-09 17:41:23.297 DEBUG (MainThread) [custom_components.tesla_custom] Finished fetching tesla_custom data in 0.000 seconds (success: True)
2024-05-09 17:41:33.121 DEBUG (MainThread) [custom_components.tesla_custom] Running controller.update()
2024-05-09 17:41:33.122 DEBUG (MainThread) [teslajsonpy.controller] Get vehicles. Force: False Time: 52 Interval 60
2024-05-09 17:41:33.122 DEBUG (MainThread) [custom_components.tesla_custom] Finished fetching tesla_custom data in 0.000 seconds (success: True)
2024-05-09 17:41:33.296 DEBUG (MainThread) [custom_components.tesla_custom] Running controller.update()
2024-05-09 17:41:33.296 DEBUG (MainThread) [teslajsonpy.controller] Get vehicles. Force: False Time: 52 Interval 60
2024-05-09 17:41:33.296 DEBUG (MainThread) [teslajsonpy.controller] 47947: Skipping update with state offline. Polling: True. Last update: 1715240493 ago. Last parked: 52 ago. Last wake up 1715240493 ago. 
2024-05-09 17:41:33.296 DEBUG (MainThread) [custom_components.tesla_custom] Finished fetching tesla_custom data in 0.000 seconds (success: True)
2024-05-09 17:41:43.123 DEBUG (MainThread) [custom_components.tesla_custom] Running controller.update()
2024-05-09 17:41:43.123 DEBUG (MainThread) [teslajsonpy.controller] Get vehicles. Force: False Time: 62 Interval 60
2024-05-09 17:41:43.123 DEBUG (MainThread) [teslajsonpy.connection] Token expiration in 7:58:59
2024-05-09 17:41:43.123 DEBUG (MainThread) [teslajsonpy.connection] get: https://c0<REDACTED>-tesla-http-proxy/api/1/products {}
2024-05-09 17:41:43.296 DEBUG (MainThread) [custom_components.tesla_custom] Running controller.update()
2024-05-09 17:41:43.404 DEBUG (MainThread) [teslajsonpy.connection] 200: {"response":[{"id":<REDACTED>,"user_id":<REDACTED>,"vehicle_id":<REDACTED>,"vin":"<REDACTED_VIN>","color":null,"access_type":"OWNER","display_name":"shadowfax","option_codes":null,"cached_data":"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","granular_access":{"hide_private":false},"tokens":["a93e355b1a27cf80","ea98435367380ffe"],"state":"offline","in_service":false,"id_s":"<REDACTED>","calendar_enabled":true,"api_version":76,"backseat_token":null,"backseat_token_updated_at":null,"ble_autopair_enrolled":false,"command_signing":"required","release_notes_supported":true}],"count":1}
2024-05-09 17:41:43.405 DEBUG (MainThread) [custom_components.tesla_custom] Finished fetching tesla_custom data in 0.282 seconds (success: True)
2024-05-09 17:41:43.405 DEBUG (MainThread) [teslajsonpy.controller] Get vehicles. Force: False Time: 0 Interval 60
2024-05-09 17:41:43.405 DEBUG (MainThread) [teslajsonpy.controller] 47947: Skipping update with state offline. Polling: True. Last update: 1715240503 ago. Last parked: 62 ago. Last wake up 1715240503 ago. 
2024-05-09 17:41:43.405 DEBUG (MainThread) [custom_components.tesla_custom] Finished fetching tesla_custom data in 0.108 seconds (success: True)
2024-05-09 17:41:45.830 DEBUG (MainThread) [teslajsonpy.controller] 47947: Sending wake request with deadline of: 1715240565
2024-05-09 17:41:45.830 DEBUG (MainThread) [teslajsonpy.connection] Token expiration in 7:58:57
2024-05-09 17:41:45.830 DEBUG (MainThread) [teslajsonpy.connection] post: https://c0<REDACTED>-tesla-http-proxy/api/1/vehicles/<REDACTED_VIN>/wake_up {}
2024-05-09 17:41:46.039 DEBUG (MainThread) [teslajsonpy.connection] 429: Retry later

2024-05-09 17:41:46.039 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140353510598976] Unexpected exception
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 239, in handle_call_service
    response = await hass.services.async_call(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2738, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2779, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 975, in entity_service_call
    single_response = await _handle_entity_call(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 1047, in _handle_entity_call
    result = await task
             ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/button/__init__.py", line 134, in _async_press_action
    await self.async_press()
  File "/config/custom_components/tesla_custom/button.py", line 68, in async_press
    await self._car.wake_up()
  File "/usr/local/lib/python3.12/site-packages/teslajsonpy/car.py", line 1130, in wake_up
    await self._controller.wake_up(car_id=self.id)
  File "/usr/local/lib/python3.12/site-packages/teslajsonpy/controller.py", line 475, in wake_up
    result = await self.api(
             ^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/teslajsonpy/controller.py", line 1375, in api
    return await self.__post_with_retries_except_unavailable(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/tenacity/_asyncio.py", line 88, in async_wrapped
    return await fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/tenacity/_asyncio.py", line 47, in __call__
    do = self.iter(retry_state=retry_state)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/tenacity/__init__.py", line 314, in iter
    return fut.result()
           ^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 449, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/usr/local/lib/python3.12/site-packages/tenacity/_asyncio.py", line 50, in __call__
    result = await fn(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/teslajsonpy/controller.py", line 1407, in __post_with_retries_except_unavailable
    return await self.__connection.post(command, method=method, data=data, url=url)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/teslajsonpy/connection.py", line 166, in post
    return await self.__open(url, method=method, headers=self.head, data=data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/teslajsonpy/connection.py", line 218, in __open
    raise TeslaException(resp.status_code)
teslajsonpy.exceptions.TeslaException
2024-05-09 17:41:53.122 DEBUG (MainThread) [custom_components.tesla_custom] Running controller.update()
2024-05-09 17:41:53.122 DEBUG (MainThread) [teslajsonpy.controller] Get vehicles. Force: False Time: 10 Interval 60
2024-05-09 17:41:53.122 DEBUG (MainThread) [custom_components.tesla_custom] Finished fetching tesla_custom data in 0.000 seconds (success: True)
2024-05-09 17:41:53.297 DEBUG (MainThread) [custom_components.tesla_custom] Running controller.update()
2024-05-09 17:41:53.297 DEBUG (MainThread) [teslajsonpy.controller] Get vehicles. Force: False Time: 10 Interval 60
2024-05-09 17:41:53.297 DEBUG (MainThread) [teslajsonpy.controller] 47947: Skipping update with state offline. Polling: True. Last update: 1715240513 ago. Last parked: 72 ago. Last wake up 1715240513 ago. 
2024-05-09 17:41:53.297 DEBUG (MainThread) [custom_components.tesla_custom] Finished fetching tesla_custom data in 0.000 seconds (success: True)
2024-05-09 17:42:03.121 DEBUG (MainThread) [custom_components.tesla_custom] Running controller.update()
2024-05-09 17:42:03.122 DEBUG (MainThread) [teslajsonpy.controller] Get vehicles. Force: False Time: 20 Interval 60
2024-05-09 17:42:03.122 DEBUG (MainThread) [custom_components.tesla_custom] Finished fetching tesla_custom data in 0.000 seconds (success: True)
2024-05-09 17:42:03.297 DEBUG (MainThread) [custom_components.tesla_custom] Running controller.update()
2024-05-09 17:42:03.298 DEBUG (MainThread) [teslajsonpy.controller] Get vehicles. Force: False Time: 20 Interval 60
2024-05-09 17:42:03.298 DEBUG (MainThread) [teslajsonpy.controller] 47947: Skipping update with state offline. Polling: True. Last update: 1715240523 ago. Last parked: 82 ago. Last wake up 1715240523 ago. 
2024-05-09 17:42:03.298 DEBUG (MainThread) [custom_components.tesla_custom] Finished fetching tesla_custom data in 0.000 seconds (success: True)

Anything else?

I can see Running controller.update() in the logs every 10 seconds or so. Not sure if that has any implications. Polling is at the default 660 seconds.

Contributor guide