Can't force data update anymore
kimme1024 opened this issue · 17 comments
Version of the custom_component
3.19.5
Configuration
/
Describe the bug
I've been using this integration to connect to my Model S and charge it on solar power with the following script: https://github.com/flashg1/TeslaSolarCharger
It's been working fine for a couple of months (with some errors on the script's side) but since this morning I noticed the car not charging. I checked and all data from the integration were available, however I received an unknown error when clicking the force data update
-button. As the script heavily relies on this button to be able to work this seems to be the issue at this point.
I checked the logs and there are multiple API errors (see logs). I tried reinstalling the integration, using a new refresh token. I can add the car without any issues but still the force data update
-button isn't working.
Any idea's?
Debug log
Logger: homeassistant.components.websocket_api.http.connection
Source: components/websocket_api/commands.py:238
Integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 10:37:42 (7 occurrences)
Last logged: 10:54:40
[281472024742976]
[281472023124928]
[281472022096704]
[281472031391424]
[281473202839104]
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 238, in handle_call_service
response = await hass.services.async_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 2149, in async_call
response_data = await coro
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 2186, in _execute_service
return await target(service_call)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 272, in handle_service
return await service.entity_service_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 882, in entity_service_call
single_response = await _handle_entity_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 952, in _handle_entity_call
result = await task
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/button/__init__.py", line 132, in _async_press_action
await self.async_press()
File "/config/custom_components/tesla_custom/button.py", line 84, in async_press
await self.update_controller(wake_if_asleep=True, force=True)
File "/config/custom_components/tesla_custom/base.py", line 82, in update_controller
await self.coordinator.controller.update(
File "/usr/local/lib/python3.11/site-packages/teslajsonpy/controller.py", line 734, in update
cars = await self.get_vehicles()
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/teslajsonpy/controller.py", line 300, in get_vehicles
return (await self.api("VEHICLE_LIST"))["response"]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/teslajsonpy/controller.py", line 1319, in api
return await self.__post_with_retries_except_unavailable(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/tenacity/_asyncio.py", line 88, in async_wrapped
return await fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/tenacity/_asyncio.py", line 47, in __call__
do = self.iter(retry_state=retry_state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/tenacity/__init__.py", line 325, in iter
raise retry_exc.reraise()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/tenacity/__init__.py", line 158, in reraise
raise self.last_attempt.result()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/concurrent/futures/_base.py", line 449, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/usr/local/lib/python3.11/site-packages/tenacity/_asyncio.py", line 50, in __call__
result = await fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/teslajsonpy/controller.py", line 1351, in __post_with_retries_except_unavailable
return await self.__connection.post(command, method=method, data=data, url=url)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/teslajsonpy/connection.py", line 165, in post
return await self.__open(url, method=method, headers=self.head, data=data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/teslajsonpy/connection.py", line 216, in __open
raise TeslaException(resp.status_code)
teslajsonpy.exceptions.TeslaException
Logger: asyncio
Source: components/websocket_api/http.py:151
First occurred: 10:52:35 (4 occurrences)
Last logged: 10:52:35
socket.send() raised exception.
Deze fout is ontstaan door een aangepaste integratie.
Logger: custom_components.tesla_custom
Source: helpers/update_coordinator.py:332
Integration: Tesla Custom Integration (documentation, issues)
First occurred: 10:35:34 (2 occurrences)
Last logged: 10:46:10
Error fetching tesla_custom data: Error communicating with API:
I was hit with this myself this morning, I think it's safe to say this is #774 ?
No this is not really the same as #774. This is caused by a change in the owner API for an endpoint that the Tesla App is not using anymore. For the fleet API they apparently maintain this endpoint for backwards compatibility.
The list of vehicles is no longer available at api/1/vehicles
but part of api/1/products
(which is called by the Tesla App). This call also returns energy products etc so some filter needs to be applied to get vehicles only.
No this is not really the same as #774. This is caused by a change in the owner API for an endpoint that the Tesla App is not using anymore. For the fleet API they apparently maintain this endpoint for backwards compatibility.
The list of vehicles is no longer available at
api/1/vehicles
but part ofapi/1/products
(which is called by the Tesla App). This call also returns energy products etc so some filter needs to be applied to get vehicles only.
Thanks for the info.
Is there a way to fix this myself or do I have to wait for an official update?
Thanks for the info. Is there a way to fix this myself or do I have to wait for an official update?
If you're happy to make a Pull Request to fix it then by all means, otherwise you'll have to wait for someone else to get round to doing it
If I have followed the codeflow correctly, the changes to the API must be made in the external package teslajsonpy (https://github.com/zabuldon/teslajsonpy/blob/master/teslajsonpy/endpoints.json).
As soon as a new version is available, it must be used in this plugin and a new release must be made.
Thanks for the info. Is there a way to fix this myself or do I have to wait for an official update?
If you're happy to make a Pull Request to fix it then by all means, otherwise you'll have to wait for someone else to get round to doing it
Sadly my coding skills are less than basic. Otherwise I’d be happy to do so. Let’s hope someone will come with a solution. If needed I’ll be available to test!
If the wake up command works this might kick off an update. Or turn sentry on/off.
Same issue here. My car will not update I'm HA..
I removed offending step from automation and Steering wheel and seat heater - heat level / auto also prevented script running, issues seems too coincidental. Debug looks similar.
Yesyerday I was having the same issue too... I then tried the teslajosnpy
client to test if there was something wrong with the API and when calling tesla.vehicle_list()
I got:
429 Client Error: Too Many Requests for url: https://owner-api.teslamotors.com/api/1/vehicles
I do use the API a lot when checking for charging rates to make sure I control my charging amps to only use what excess solar is available. So lots of calls every couple of minutes.. starts with a 'force data refresh'..
So thought that may be the issue.. too many calls (as the error message show.. rate limited.. something like than).
This morning tried again with and got this error:
412 Client Error: Endpoint is only available on fleetapi. Visit https://developer.tesla.com/docs for more info for url: https://owner-api.teslamotors.com/api/1/vehicles
Not sure what this means, but I guess they may have changed access to some of the API's?
Hope that helps somehow.
Asleep state also doesn't update since the same date, probably relates to the same issue.
Looks like this problem has been reported at teslajsonpy (where it belongs) as well.
zabuldon/teslajsonpy#448
Seems like only 'leasing' cars have this issue.
I have one Y (owned) and 3 (leased).
Y works fine but issue with 3
That is not the case. My owned Y is not working :( Maybe don’t draw conclusions from a sample of two cars.
That is not the case. My owned Y is not working :( Maybe don’t draw conclusions from a sample of two cars.
Please be advised .. I have mentioned 'seems'. No conclusions drawn... Keep the 'tone' appropriate !!