Spoke too soon: now the integration isn’t working.
Logger: homeassistant.components.websocket_api.http.connection
Source: components/nest/climate_sdm.py:300
Integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 8:29:55 PM (1 occurrences)
Last logged: 8:29:55 PM
[1876802168] Access token failure: 400, message='Bad Request', url=URL('https://www.googleapis.com/oauth2/v4/token')
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/google_nest_sdm/auth.py", line 43, in request
access_token = await self.async_get_access_token()
File "/usr/src/homeassistant/homeassistant/components/nest/api.py", line 28, in async_get_access_token
await self._oauth_session.async_ensure_token_valid()
File "/usr/src/homeassistant/homeassistant/helpers/config_entry_oauth2_flow.py", line 465, in async_ensure_token_valid
new_token = await self.implementation.async_refresh_token(self.token)
File "/usr/src/homeassistant/homeassistant/helpers/config_entry_oauth2_flow.py", line 84, in async_refresh_token
new_token = await self._async_refresh_token(token)
File "/usr/src/homeassistant/homeassistant/helpers/config_entry_oauth2_flow.py", line 175, in _async_refresh_token
new_token = await self._token_request(
File "/usr/src/homeassistant/homeassistant/helpers/config_entry_oauth2_flow.py", line 194, in _token_request
resp.raise_for_status()
File "/usr/local/lib/python3.8/site-packages/aiohttp/client_reqrep.py", line 1002, in raise_for_status
raise ClientResponseError(
aiohttp.client_exceptions.ClientResponseError: 400, message='Bad Request', url=URL('https://www.googleapis.com/oauth2/v4/token')
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 135, in handle_call_service
await hass.services.async_call(
File "/usr/src/homeassistant/homeassistant/core.py", line 1445, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1480, in _execute_service
await handler.job.target(service_call)
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 204, in handle_service
await self.hass.helpers.service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 593, in entity_service_call
future.result() # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 664, in async_request_call
await coro
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 630, in _handle_entity_call
await result
File "/usr/src/homeassistant/homeassistant/components/nest/climate_sdm.py", line 300, in async_set_hvac_mode
await trait.set_mode(api_mode)
File "/usr/local/lib/python3.8/site-packages/google_nest_sdm/thermostat_traits.py", line 94, in set_mode
return await self._cmd.execute(data)
File "/usr/local/lib/python3.8/site-packages/google_nest_sdm/traits.py", line 19, in execute
resp = await self._auth.request(
File "/usr/local/lib/python3.8/site-packages/google_nest_sdm/auth.py", line 45, in request
raise AuthException(f"Access token failure: {err}") from err
google_nest_sdm.exceptions.AuthException: Access token failure: 400, message='Bad Request', url=URL('https://www.googleapis.com/oauth2/v4/token')