diff --git a/CloudConnection.py b/CloudConnection.py index 4af855c..75b9d10 100644 --- a/CloudConnection.py +++ b/CloudConnection.py @@ -16,7 +16,7 @@ class CloudConnection: @staticmethod def _retry_one_any_exception(exception): - logging.error(f"An Exception occurred: \n{exception}") + logging.error(f"An Exception occurred: \n{type(exception)}, {exception}") return True @retry(retry_on_exception=_retry_one_any_exception, wait_exponential_multiplier=1000, wait_exponential_max=10000) @@ -30,7 +30,9 @@ class CloudConnection: "username": self.username } post = requests.post(url, data=data) - self._handle_api_return_codes(post) + ret = self._handle_api_return_codes(post) + if ret == False: + return user_token = post.json()["data"]["access_token"] self._user_id = post.json()["data"]["user_id"] self._refresh_token = post.json()["data"]["refresh_token"] @@ -43,7 +45,9 @@ class CloudConnection: "refresh_token": self._refresh_token } result = requests.post(url, data=data, headers=self._auth_header) - self._handle_api_return_codes(result) + ret = self._handle_api_return_codes(result) + if ret == False: + return user_token = result.json()["data"]["access_token"] self._auth_header = {"authorization": f"Bearer {user_token}"} @@ -52,7 +56,9 @@ class CloudConnection: url = f"https://app.api.apsystemsema.com:9223/aps-api-web/api/v2/data/device/ezInverter/realTime/{inverter_id}" while True: result = requests.get(url, headers=self._auth_header) - self._handle_api_return_codes(result) + ret = self._handle_api_return_codes(result) + if ret == False: + continue if result.json()["code"] == 0: data = result.json()["data"] break @@ -63,7 +69,9 @@ class CloudConnection: url = f"https://app.api.apsystemsema.com:9223/aps-api-web/api/v2/data/device/ezInverter/statistic/{inverter_id}" while True: result = requests.get(url, headers=self._auth_header) - self._handle_api_return_codes(result) + ret = self._handle_api_return_codes(result) + if ret == False: + continue if result.json()["code"] == 0: data = result.json()["data"] break @@ -75,7 +83,9 @@ class CloudConnection: inverter = [] while True: result = requests.get(url, headers=self._auth_header) - self._handle_api_return_codes(result) + ret = self._handle_api_return_codes(result) + if ret == False: + continue if result.json()["code"] == 0: data = result.json()["data"] for inv in data["inverter"]: @@ -88,9 +98,10 @@ class CloudConnection: result_api_code = result.json()["code"] if result_api_code == 0: - pass + return True if result_api_code == 3003: self.refresh_user_token() + return True if result_api_code == 3001: logging.error(f"Not authorized {result.url}", ) exit(1) @@ -99,3 +110,4 @@ class CloudConnection: exit(1) else: logging.error(f"Something went wrong in the request. Status code: {result.status_code}") + return False \ No newline at end of file