Look in the log before you started getting that error and see if you can find the previous error.
There are no immediately proximate errors. The most recent errors thrown by the plugin go back about 3 days:
- Code: Select all
2018-12-16 00:13:29.679 Ecobee 2 Error Thermostat Update Error, exception = HTTPSConnectionPool(host='api.ecobee.com', port=443): Max retries exceeded with url: /1/thermostat?json=%7B%22selection%22%3A%7B%22selectionType%22%3A%22registered%22%2C%22includeRuntime%22%3A%22true%22%2C%22includeSensors%22%3A%22true%22%2C%22includeEvents%22%3A%22true%22%2C%22includeProgram%22%3A%22true%22%2C%22includeEquipmentStatus%22%3A%22true%22%2C%22includeSettings%22%3A%22true%22%7D%7D (Caused by NewConnectionError('<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x10e638710>: Failed to establish a new connection: [Errno 60] Operation timed out',))
and later,
- Code: Select all
2018-12-16 00:30:16.835 Ecobee 2 Debug Token Request with refresh_token = lWEBvNxP0oVdNjBppHy42ibY34LCewfb
2018-12-16 00:30:41.700 Sonos Debug [Sun Dec 16 00:30:41 2018] Received ALIVE message from ZonePlayer: Pub room
2018-12-16 00:30:41.703 Sonos Debug [Sun Dec 16 00:30:41 2018] Received ALIVE message from ZonePlayer: Pub room
2018-12-16 00:31:12.279 Ecobee 2 Error Token Refresh Error, exception = ('Connection aborted.', error(54, 'Connection reset by peer'))
2018-12-16 00:31:14.286 Ecobee 2 Debug Token Request with refresh_token = lWEBvNxP0oVdNjBppHy42ibY34LCewfb
2018-12-16 00:31:30.082 Ecobee 2 Error Ecobee Account (475052933): Token Refresh failed, response = '{
"error": "invalid_request",
"error_description": "The request is malformed. Check parameters.",
"error_uri": "https://tools.ietf.org/html/rfc6749#section-5.2"
}'
Looking further back over the previous days' logs, I see that the token refresh occurs successfully every 45 minutes. However, after the failure on 2018-12-16 00:31:12.279, no further attempts are made by the plugin to refresh the token either later on 2018-12-16 or on subsequent days. In other words, the failed refresh seems to permanently interrupt the refresh cycle.