Skip to content

Commit

Permalink
Fix for #52
Browse files Browse the repository at this point in the history
  • Loading branch information
jimboca committed Mar 18, 2020
1 parent 480cbf8 commit b9880cd
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 19 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,8 @@ If you already have it installed and want the update before it's in the store.

## Release Notes

- 2.1.15: JimBo 03/17/2016
- Fix for https://github.com/Einstein42/udi-ecobee-poly/issues/52
- 2.1.14: JimBo 02/02/2020
- Add Support for auxHeat https://github.com/Einstein42/udi-ecobee-poly/issues/50
- profile update required, must restart AC after retarting Nodeserver
Expand Down
37 changes: 20 additions & 17 deletions ecobee-poly.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,30 +112,33 @@ def _getRefresh(self):
'grant_type': 'refresh_token',
'client_id': self.serverdata['api_key'],
'refresh_token': self.tokenData['refresh_token']
})
})
if res is False:
self.refreshingTokens = False
self.set_ecobee_st(False)
return False
self.set_ecobee_st(True)
res_data = res['data']
res_code = res['code']
if 'error' in res_data:
LOGGER.error('_getRefresh: Requesting Auth: {} :: {}'.format(res_data['error'], res_data['error_description']))
self.auth_token = None
self.refreshingTokens = False
if res_data['error'] == 'invalid_grant':
# Need to re-auth!
LOGGER.error('Found {}, need to re-authorize'.format(res_data['error']))
cust_data = deepcopy(self.polyConfig['customData'])
del cust_data['tokenData']
self.saveCustomData(cust_data)
self._getPin()
return False
elif 'access_token' in res_data:
self._saveTokens(res_data)
self.refreshingTokens = False
return True
if res_data is False:
LOGGER.error('_getRefresh: No data returned.')
else:
if 'error' in res_data:
LOGGER.error('_getRefresh: Requesting Auth: {} :: {}'.format(res_data['error'], res_data['error_description']))
self.auth_token = None
self.refreshingTokens = False
if res_data['error'] == 'invalid_grant':
# Need to re-auth!
LOGGER.error('Found {}, need to re-authorize'.format(res_data['error']))
cust_data = deepcopy(self.polyConfig['customData'])
del cust_data['tokenData']
self.saveCustomData(cust_data)
self._getPin()
return False
elif 'access_token' in res_data:
self._saveTokens(res_data)
self.refreshingTokens = False
return True
else:
LOGGER.info('Refresh Token not Found...')
self.refreshingTokens = False
Expand Down
7 changes: 6 additions & 1 deletion pgSession.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ def response(self,response,name):
self.l_debug(fname,0,' Got: code=%s' % (response.status_code))
self.l_debug(fname,2,' text=%s' % (response.text))
json_data = False
st = False
if response.status_code == 200:
self.l_debug(fname,0,' All good!')
st = True
Expand All @@ -63,14 +64,18 @@ def response(self,response,name):
self.l_error(fname,"Unauthorized: %s: text: %s" % (response.url,response.text) )
elif response.status_code == 500:
self.l_error(fname,"Server Error: %s %s: text: %s" % (response.status_code,response.url,response.text) )
elif response.status_code == 522:
self.l_error(fname,"Timeout Error: %s %s: text: %s" % (response.status_code,response.url,response.text) )
else:
self.l_error(fname,"Unknown response %s: %s %s" % (response.status_code, response.url, response.text) )
self.l_error(fname,"Check system status: https://status.ecobee.com/")
# No matter what, return the code and error
try:
json_data = json.loads(response.text)
except (Exception) as err:
self.l_error(fname,'Failed to convert to json {0}: {1}'.format(response.text,err), exc_info=True)
# Only complain about this error if we didn't have an error above
if st:
self.l_error(fname,'Failed to convert to json {0}: {1}'.format(response.text,err), exc_info=True)
json_data = False
return { 'code': response.status_code, 'data': json_data }

Expand Down
2 changes: 1 addition & 1 deletion server.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
{
"title": "ecobee: Polyglot NodeServer for Ecobee",
"author": "James Milne (Einstein.42)",
"version": "2.1.14",
"version": "2.1.15",
"date": "July 25, 2018",
"source": "https://github.com/Einstein42/udi-ecobee-poly",
"license": "https://github.com/Einstein42/udi-ecobee-poly/master/LICENSE"
Expand Down

0 comments on commit b9880cd

Please sign in to comment.